Bug 514634 General Improvement

Support PlantUML Extension for FML (xLIA) model graphical visualization

Upgrade minimal Java Execution Environment from 1.8 to the Java 11 (LTS)
Upgrade Eclipse Target Platform from 2019-09 to 2021-03

Change-Id: Id7f79984f512ac56b4a2089a576d570844d50c9e
diff --git a/codegen/org.eclipse.efm.modeling.codegen.xlia.sdf.polygraph/.classpath b/codegen/org.eclipse.efm.modeling.codegen.xlia.sdf.polygraph/.classpath
index 0215967..901d118 100644
--- a/codegen/org.eclipse.efm.modeling.codegen.xlia.sdf.polygraph/.classpath
+++ b/codegen/org.eclipse.efm.modeling.codegen.xlia.sdf.polygraph/.classpath
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <classpath>

-	<classpathentry kind="src" path="src"/>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>

 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

-	<classpathentry kind="output" path="bin"/>

+	<classpathentry kind="src" path="src2/"/>

+	<classpathentry kind="output" path="target/classes"/>

 </classpath>

diff --git a/codegen/org.eclipse.efm.modeling.codegen.xlia.sdf.polygraph/META-INF/MANIFEST.MF b/codegen/org.eclipse.efm.modeling.codegen.xlia.sdf.polygraph/META-INF/MANIFEST.MF
index c3c737a..2e5c2b4 100644
--- a/codegen/org.eclipse.efm.modeling.codegen.xlia.sdf.polygraph/META-INF/MANIFEST.MF
+++ b/codegen/org.eclipse.efm.modeling.codegen.xlia.sdf.polygraph/META-INF/MANIFEST.MF
@@ -9,11 +9,7 @@
  org.eclipse.core.resources,
  org.eclipse.efm.formalml.ecore,
  org.eclipse.ui.workbench
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Automatic-Module-Name: org.eclipse.efm.modeling.codegen.xlia.sdf.polygraph
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: %providerName
-Export-Package: org.eclipse.efm.modeling.codegen.xlia.sdf.polygraph.generator,
- org.eclipse.efm.modeling.codegen.xlia.sdf.polygraph.mocc.xlia,
- org.eclipse.efm.modeling.codegen.xlia.sdf.polygraph.test,
- org.eclipse.efm.modeling.codegen.xlia.sdf.polygraph.test.publi
diff --git a/codegen/org.eclipse.efm.modeling.codegen.xlia.test.sd/.classpath b/codegen/org.eclipse.efm.modeling.codegen.xlia.test.sd/.classpath
index b862a29..ca3785c 100644
--- a/codegen/org.eclipse.efm.modeling.codegen.xlia.test.sd/.classpath
+++ b/codegen/org.eclipse.efm.modeling.codegen.xlia.test.sd/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>

 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

 	<classpathentry kind="src" path="src"/>

 	<classpathentry kind="output" path="bin"/>

diff --git a/codegen/org.eclipse.efm.modeling.codegen.xlia.test.sd/META-INF/MANIFEST.MF b/codegen/org.eclipse.efm.modeling.codegen.xlia.test.sd/META-INF/MANIFEST.MF
index 9a1b976..4b3cfad 100644
--- a/codegen/org.eclipse.efm.modeling.codegen.xlia.test.sd/META-INF/MANIFEST.MF
+++ b/codegen/org.eclipse.efm.modeling.codegen.xlia.test.sd/META-INF/MANIFEST.MF
@@ -3,4 +3,4 @@
 Bundle-Name: Sd
 Bundle-SymbolicName: org.eclipse.efm.modeling.codegen.xlia.test.sd
 Bundle-Version: 1.0.0.qualifier
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
diff --git a/codegen/org.eclipse.efm.modeling.codegen.xlia.ui/.classpath b/codegen/org.eclipse.efm.modeling.codegen.xlia.ui/.classpath
index 2f5ffb2..e769fec 100644
--- a/codegen/org.eclipse.efm.modeling.codegen.xlia.ui/.classpath
+++ b/codegen/org.eclipse.efm.modeling.codegen.xlia.ui/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="src" path="xtend-gen"/>
diff --git a/codegen/org.eclipse.efm.modeling.codegen.xlia.ui/.settings/org.eclipse.jdt.core.prefs b/codegen/org.eclipse.efm.modeling.codegen.xlia.ui/.settings/org.eclipse.jdt.core.prefs
index 0c68a61..7adc0fb 100644
--- a/codegen/org.eclipse.efm.modeling.codegen.xlia.ui/.settings/org.eclipse.jdt.core.prefs
+++ b/codegen/org.eclipse.efm.modeling.codegen.xlia.ui/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,10 @@
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
+org.eclipse.jdt.core.compiler.compliance=11
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
diff --git a/codegen/org.eclipse.efm.modeling.codegen.xlia.ui/META-INF/MANIFEST.MF b/codegen/org.eclipse.efm.modeling.codegen.xlia.ui/META-INF/MANIFEST.MF
index 0b08875..77e81f2 100644
--- a/codegen/org.eclipse.efm.modeling.codegen.xlia.ui/META-INF/MANIFEST.MF
+++ b/codegen/org.eclipse.efm.modeling.codegen.xlia.ui/META-INF/MANIFEST.MF
@@ -21,6 +21,6 @@
  org.eclipse.papyrus.designer.languages.common.base,
  org.eclipse.papyrus.designer.languages.common.extensionpoints,
  org.eclipse.efm.ui
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.efm.formalml.xtext.generator
diff --git a/codegen/org.eclipse.efm.modeling.codegen.xlia/.classpath b/codegen/org.eclipse.efm.modeling.codegen.xlia/.classpath
index f538363..4bf9079 100644
--- a/codegen/org.eclipse.efm.modeling.codegen.xlia/.classpath
+++ b/codegen/org.eclipse.efm.modeling.codegen.xlia/.classpath
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>

 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

-	<classpathentry excluding="org/eclipse/efm/modeling/codegen/xlia/interaction/TransformConstraint.java|org/eclipse/efm/modeling/codegen/xlia/interaction/SdUtil.java|org/eclipse/efm/modeling/codegen/xlia/interaction/SdSystemBehavior.java" kind="src" path="src"/>

+	<classpathentry kind="src" path="src/"/>

 	<classpathentry kind="output" path="target/classes"/>

 </classpath>

diff --git a/codegen/org.eclipse.efm.modeling.codegen.xlia/.settings/org.eclipse.jdt.core.prefs b/codegen/org.eclipse.efm.modeling.codegen.xlia/.settings/org.eclipse.jdt.core.prefs
index 295926d..11265a3 100644
--- a/codegen/org.eclipse.efm.modeling.codegen.xlia/.settings/org.eclipse.jdt.core.prefs
+++ b/codegen/org.eclipse.efm.modeling.codegen.xlia/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,10 @@
 eclipse.preferences.version=1

 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8

-org.eclipse.jdt.core.compiler.compliance=1.8

+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11

+org.eclipse.jdt.core.compiler.compliance=11

 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled

 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

-org.eclipse.jdt.core.compiler.source=1.8

+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning

+org.eclipse.jdt.core.compiler.release=enabled

+org.eclipse.jdt.core.compiler.source=11

diff --git a/codegen/org.eclipse.efm.modeling.codegen.xlia/META-INF/MANIFEST.MF b/codegen/org.eclipse.efm.modeling.codegen.xlia/META-INF/MANIFEST.MF
index 9f5f8f8..0c72bd7 100644
--- a/codegen/org.eclipse.efm.modeling.codegen.xlia/META-INF/MANIFEST.MF
+++ b/codegen/org.eclipse.efm.modeling.codegen.xlia/META-INF/MANIFEST.MF
@@ -10,7 +10,7 @@
  org.eclipse.uml2.uml,
  org.eclipse.efm.formalml,
  org.eclipse.efm.formalml.ecore
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.efm.modeling.codegen.scxml,
  org.eclipse.efm.modeling.codegen.xlia.core,
diff --git a/core/org.eclipse.efm.formalml.service.types/.settings/org.eclipse.jdt.core.prefs b/core/org.eclipse.efm.formalml.service.types/.settings/org.eclipse.jdt.core.prefs
index 295926d..e2860e9 100644
--- a/core/org.eclipse.efm.formalml.service.types/.settings/org.eclipse.jdt.core.prefs
+++ b/core/org.eclipse.efm.formalml.service.types/.settings/org.eclipse.jdt.core.prefs
@@ -4,4 +4,5 @@
 org.eclipse.jdt.core.compiler.compliance=1.8

 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

+org.eclipse.jdt.core.compiler.release=disabled

 org.eclipse.jdt.core.compiler.source=1.8

diff --git a/core/org.eclipse.efm.formalml.service.types/META-INF/MANIFEST.MF b/core/org.eclipse.efm.formalml.service.types/META-INF/MANIFEST.MF
index eb03170..e01cc93 100644
--- a/core/org.eclipse.efm.formalml.service.types/META-INF/MANIFEST.MF
+++ b/core/org.eclipse.efm.formalml.service.types/META-INF/MANIFEST.MF
@@ -3,9 +3,12 @@
 Bundle-Name: Types
 Bundle-SymbolicName: org.eclipse.efm.formalml.service.types;singleton:=true
 Bundle-Version: 0.0.1.qualifier
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Require-Bundle: org.eclipse.papyrus.infra.types.core,
  org.eclipse.papyrus.views.properties,
  org.eclipse.papyrus.infra.newchild,
  org.eclipse.uml2.uml;bundle-version="5.2.0",
  org.eclipse.efm.formalml
+Import-Package: org.eclipse.gmf.runtime.common.core.command,
+ org.eclipse.gmf.runtime.emf.type.core.edithelper,
+ org.eclipse.gmf.runtime.emf.type.core.requests
diff --git a/core/org.eclipse.efm.formalml.tests/.classpath b/core/org.eclipse.efm.formalml.tests/.classpath
index 95f1f75..3b3f47c 100644
--- a/core/org.eclipse.efm.formalml.tests/.classpath
+++ b/core/org.eclipse.efm.formalml.tests/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>

 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

 	<classpathentry kind="src" path="src">

 		<attributes>

diff --git a/core/org.eclipse.efm.formalml.tests/.settings/org.eclipse.jdt.core.prefs b/core/org.eclipse.efm.formalml.tests/.settings/org.eclipse.jdt.core.prefs
index 0c68a61..7adc0fb 100644
--- a/core/org.eclipse.efm.formalml.tests/.settings/org.eclipse.jdt.core.prefs
+++ b/core/org.eclipse.efm.formalml.tests/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,10 @@
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
+org.eclipse.jdt.core.compiler.compliance=11
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
diff --git a/core/org.eclipse.efm.formalml.tests/META-INF/MANIFEST.MF b/core/org.eclipse.efm.formalml.tests/META-INF/MANIFEST.MF
index 343cbcb..eebdd0a 100644
--- a/core/org.eclipse.efm.formalml.tests/META-INF/MANIFEST.MF
+++ b/core/org.eclipse.efm.formalml.tests/META-INF/MANIFEST.MF
@@ -13,6 +13,5 @@
  org.eclipse.ui.workbench,
  org.eclipse.osgi,
  org.eclipse.core.runtime;bundle-version="3.12.0"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.pde.internal.core.plugin
diff --git a/core/org.eclipse.efm.formalml/.classpath b/core/org.eclipse.efm.formalml/.classpath
index b6058b8..8ad9193 100644
--- a/core/org.eclipse.efm.formalml/.classpath
+++ b/core/org.eclipse.efm.formalml/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>

 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

 	<classpathentry kind="src" path="src/"/>

 	<classpathentry kind="src" path="src-gen/"/>

diff --git a/core/org.eclipse.efm.formalml/.settings/org.eclipse.jdt.core.prefs b/core/org.eclipse.efm.formalml/.settings/org.eclipse.jdt.core.prefs
index a698e59..a58ebdc 100644
--- a/core/org.eclipse.efm.formalml/.settings/org.eclipse.jdt.core.prefs
+++ b/core/org.eclipse.efm.formalml/.settings/org.eclipse.jdt.core.prefs
@@ -1,12 +1,15 @@
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
diff --git a/core/org.eclipse.efm.formalml/META-INF/MANIFEST.MF b/core/org.eclipse.efm.formalml/META-INF/MANIFEST.MF
index 9e7abd2..f140c36 100644
--- a/core/org.eclipse.efm.formalml/META-INF/MANIFEST.MF
+++ b/core/org.eclipse.efm.formalml/META-INF/MANIFEST.MF
@@ -6,7 +6,7 @@
 Bundle-ClassPath: .
 Bundle-Vendor: CEA LIST
 Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Export-Package: org.eclipse.efm.modeling.formalml,
  org.eclipse.efm.modeling.formalml.helpers,
  org.eclipse.efm.modeling.formalml.impl,
diff --git a/core/org.eclipse.efm.modeling/.classpath b/core/org.eclipse.efm.modeling/.classpath
index 8c8a32c..d0b112c 100644
--- a/core/org.eclipse.efm.modeling/.classpath
+++ b/core/org.eclipse.efm.modeling/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src-gen/"/>
 	<classpathentry kind="src" path="src/main/java"/>
diff --git a/core/org.eclipse.efm.modeling/.settings/org.eclipse.jdt.core.prefs b/core/org.eclipse.efm.modeling/.settings/org.eclipse.jdt.core.prefs
index a698e59..a58ebdc 100644
--- a/core/org.eclipse.efm.modeling/.settings/org.eclipse.jdt.core.prefs
+++ b/core/org.eclipse.efm.modeling/.settings/org.eclipse.jdt.core.prefs
@@ -1,12 +1,15 @@
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
diff --git a/core/org.eclipse.efm.modeling/META-INF/MANIFEST.MF b/core/org.eclipse.efm.modeling/META-INF/MANIFEST.MF
index 58d844b..9e22ac5 100644
--- a/core/org.eclipse.efm.modeling/META-INF/MANIFEST.MF
+++ b/core/org.eclipse.efm.modeling/META-INF/MANIFEST.MF
@@ -11,7 +11,7 @@
  org.eclipse.uml2.types;visibility:=reexport;bundle-version="[2.0.0,3.0.0)",
  org.eclipse.uml2.uml;visibility:=reexport;bundle-version="[5.1.0,6.0.0)",
  org.eclipse.uml2.uml.resources;bundle-version="[5.1.0,6.0.0)"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Export-Package: org.eclipse.efm.modeling
 Bundle-ActivationPolicy: lazy
 Bundle-Localization: plugin
diff --git a/diagram/org.eclipse.efm.modeling.diagram.blockdefinition/.settings/org.eclipse.jdt.core.prefs b/diagram/org.eclipse.efm.modeling.diagram.blockdefinition/.settings/org.eclipse.jdt.core.prefs
index 295926d..e2860e9 100644
--- a/diagram/org.eclipse.efm.modeling.diagram.blockdefinition/.settings/org.eclipse.jdt.core.prefs
+++ b/diagram/org.eclipse.efm.modeling.diagram.blockdefinition/.settings/org.eclipse.jdt.core.prefs
@@ -4,4 +4,5 @@
 org.eclipse.jdt.core.compiler.compliance=1.8

 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

+org.eclipse.jdt.core.compiler.release=disabled

 org.eclipse.jdt.core.compiler.source=1.8

diff --git a/diagram/org.eclipse.efm.modeling.diagram.blockdefinition/META-INF/MANIFEST.MF b/diagram/org.eclipse.efm.modeling.diagram.blockdefinition/META-INF/MANIFEST.MF
index a403a51..60d3235 100644
--- a/diagram/org.eclipse.efm.modeling.diagram.blockdefinition/META-INF/MANIFEST.MF
+++ b/diagram/org.eclipse.efm.modeling.diagram.blockdefinition/META-INF/MANIFEST.MF
@@ -10,5 +10,5 @@
  org.eclipse.efm.formalml.service.types;bundle-version="[0.0.1,1.0.0)",
  org.eclipse.papyrus.uml.service.types;bundle-version="2.0.0",
  org.eclipse.papyrus.uml.diagram.composite;bundle-version="2.0.0"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Bundle-ActivationPolicy: lazy
diff --git a/diagram/org.eclipse.efm.modeling.diagram.common/.settings/org.eclipse.jdt.core.prefs b/diagram/org.eclipse.efm.modeling.diagram.common/.settings/org.eclipse.jdt.core.prefs
index 295926d..e2860e9 100644
--- a/diagram/org.eclipse.efm.modeling.diagram.common/.settings/org.eclipse.jdt.core.prefs
+++ b/diagram/org.eclipse.efm.modeling.diagram.common/.settings/org.eclipse.jdt.core.prefs
@@ -4,4 +4,5 @@
 org.eclipse.jdt.core.compiler.compliance=1.8

 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

+org.eclipse.jdt.core.compiler.release=disabled

 org.eclipse.jdt.core.compiler.source=1.8

diff --git a/diagram/org.eclipse.efm.modeling.diagram.common/META-INF/MANIFEST.MF b/diagram/org.eclipse.efm.modeling.diagram.common/META-INF/MANIFEST.MF
index 077a150..af03a78 100644
--- a/diagram/org.eclipse.efm.modeling.diagram.common/META-INF/MANIFEST.MF
+++ b/diagram/org.eclipse.efm.modeling.diagram.common/META-INF/MANIFEST.MF
@@ -4,7 +4,7 @@
 Bundle-SymbolicName: org.eclipse.efm.modeling.diagram.common
 Bundle-Version: 0.0.1.qualifier
 Bundle-Vendor: CEA - LIST
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Import-Package: org.eclipse.core.runtime,
  org.eclipse.emf.common.util,
  org.eclipse.emf.ecore,
diff --git a/diagram/org.eclipse.efm.modeling.diagram.internalblock/.settings/org.eclipse.jdt.core.prefs b/diagram/org.eclipse.efm.modeling.diagram.internalblock/.settings/org.eclipse.jdt.core.prefs
index 295926d..e2860e9 100644
--- a/diagram/org.eclipse.efm.modeling.diagram.internalblock/.settings/org.eclipse.jdt.core.prefs
+++ b/diagram/org.eclipse.efm.modeling.diagram.internalblock/.settings/org.eclipse.jdt.core.prefs
@@ -4,4 +4,5 @@
 org.eclipse.jdt.core.compiler.compliance=1.8

 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

+org.eclipse.jdt.core.compiler.release=disabled

 org.eclipse.jdt.core.compiler.source=1.8

diff --git a/diagram/org.eclipse.efm.modeling.diagram.internalblock/META-INF/MANIFEST.MF b/diagram/org.eclipse.efm.modeling.diagram.internalblock/META-INF/MANIFEST.MF
index 3157ca6..72f8574 100644
--- a/diagram/org.eclipse.efm.modeling.diagram.internalblock/META-INF/MANIFEST.MF
+++ b/diagram/org.eclipse.efm.modeling.diagram.internalblock/META-INF/MANIFEST.MF
@@ -10,5 +10,5 @@
  org.eclipse.efm.formalml.service.types;bundle-version="[0.0.1,1.0.0)",
  org.eclipse.papyrus.uml.service.types;bundle-version="2.0.0",
  org.eclipse.papyrus.uml.diagram.composite;bundle-version="2.0.0"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Bundle-ActivationPolicy: lazy
diff --git a/diagram/org.eclipse.efm.modeling.diagram.statemachine/.settings/org.eclipse.jdt.core.prefs b/diagram/org.eclipse.efm.modeling.diagram.statemachine/.settings/org.eclipse.jdt.core.prefs
index 295926d..e2860e9 100644
--- a/diagram/org.eclipse.efm.modeling.diagram.statemachine/.settings/org.eclipse.jdt.core.prefs
+++ b/diagram/org.eclipse.efm.modeling.diagram.statemachine/.settings/org.eclipse.jdt.core.prefs
@@ -4,4 +4,5 @@
 org.eclipse.jdt.core.compiler.compliance=1.8

 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

+org.eclipse.jdt.core.compiler.release=disabled

 org.eclipse.jdt.core.compiler.source=1.8

diff --git a/diagram/org.eclipse.efm.modeling.diagram.statemachine/META-INF/MANIFEST.MF b/diagram/org.eclipse.efm.modeling.diagram.statemachine/META-INF/MANIFEST.MF
index fb69ab4..e0fac97 100644
--- a/diagram/org.eclipse.efm.modeling.diagram.statemachine/META-INF/MANIFEST.MF
+++ b/diagram/org.eclipse.efm.modeling.diagram.statemachine/META-INF/MANIFEST.MF
@@ -11,9 +11,8 @@
  org.eclipse.papyrus.uml.service.types;bundle-version="2.0.0",
  org.eclipse.papyrus.uml.xtext.integration.ui,
  org.eclipse.papyrus.uml.diagram.statemachine;bundle-version="2.0.0"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Bundle-ActivationPolicy: lazy
 Import-Package: org.eclipse.efm.modeling.diagram.common.factory,
  org.eclipse.efm.modeling.formalml.helpers,
- org.eclipse.papyrus.uml.diagram.clazz.part,
- org.eclipse.papyrus.uml.diagram.statemachine.part
+ org.eclipse.papyrus.uml.diagram.clazz.part
diff --git a/doc/org.eclipse.efm.modeling.doc.architecture/.classpath b/doc/org.eclipse.efm.modeling.doc.architecture/.classpath
index 54f561c..f656d57 100644
--- a/doc/org.eclipse.efm.modeling.doc.architecture/.classpath
+++ b/doc/org.eclipse.efm.modeling.doc.architecture/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>

 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

 	<classpathentry kind="src" path="src"/>

 	<classpathentry kind="output" path="target/classes"/>

diff --git a/doc/org.eclipse.efm.modeling.doc.architecture/.settings/org.eclipse.jdt.core.prefs b/doc/org.eclipse.efm.modeling.doc.architecture/.settings/org.eclipse.jdt.core.prefs
index 295926d..11265a3 100644
--- a/doc/org.eclipse.efm.modeling.doc.architecture/.settings/org.eclipse.jdt.core.prefs
+++ b/doc/org.eclipse.efm.modeling.doc.architecture/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,10 @@
 eclipse.preferences.version=1

 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8

-org.eclipse.jdt.core.compiler.compliance=1.8

+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11

+org.eclipse.jdt.core.compiler.compliance=11

 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled

 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

-org.eclipse.jdt.core.compiler.source=1.8

+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning

+org.eclipse.jdt.core.compiler.release=enabled

+org.eclipse.jdt.core.compiler.source=11

diff --git a/doc/org.eclipse.efm.modeling.doc.architecture/META-INF/MANIFEST.MF b/doc/org.eclipse.efm.modeling.doc.architecture/META-INF/MANIFEST.MF
index f6b824a..9401d13 100644
--- a/doc/org.eclipse.efm.modeling.doc.architecture/META-INF/MANIFEST.MF
+++ b/doc/org.eclipse.efm.modeling.doc.architecture/META-INF/MANIFEST.MF
@@ -3,6 +3,6 @@
 Bundle-Name: Architecture
 Bundle-SymbolicName: org.eclipse.efm.modeling.doc.architecture
 Bundle-Version: 0.0.1.qualifier
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Require-Bundle: org.eclipse.core.runtime;bundle-version="3.12.0",
  org.eclipse.ui.workbench
diff --git a/doc/org.eclipse.efm.modeling.doc.helpcontents/.classpath b/doc/org.eclipse.efm.modeling.doc.helpcontents/.classpath
index 54f561c..f656d57 100644
--- a/doc/org.eclipse.efm.modeling.doc.helpcontents/.classpath
+++ b/doc/org.eclipse.efm.modeling.doc.helpcontents/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>

 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

 	<classpathentry kind="src" path="src"/>

 	<classpathentry kind="output" path="target/classes"/>

diff --git a/doc/org.eclipse.efm.modeling.doc.helpcontents/.settings/org.eclipse.jdt.core.prefs b/doc/org.eclipse.efm.modeling.doc.helpcontents/.settings/org.eclipse.jdt.core.prefs
index 295926d..11265a3 100644
--- a/doc/org.eclipse.efm.modeling.doc.helpcontents/.settings/org.eclipse.jdt.core.prefs
+++ b/doc/org.eclipse.efm.modeling.doc.helpcontents/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,10 @@
 eclipse.preferences.version=1

 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8

-org.eclipse.jdt.core.compiler.compliance=1.8

+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11

+org.eclipse.jdt.core.compiler.compliance=11

 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled

 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

-org.eclipse.jdt.core.compiler.source=1.8

+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning

+org.eclipse.jdt.core.compiler.release=enabled

+org.eclipse.jdt.core.compiler.source=11

diff --git a/doc/org.eclipse.efm.modeling.doc.helpcontents/META-INF/MANIFEST.MF b/doc/org.eclipse.efm.modeling.doc.helpcontents/META-INF/MANIFEST.MF
index 87f1d70..18f1612 100644
--- a/doc/org.eclipse.efm.modeling.doc.helpcontents/META-INF/MANIFEST.MF
+++ b/doc/org.eclipse.efm.modeling.doc.helpcontents/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.efm.modeling.doc.helpcontents;singleton:=true
 Bundle-Version: 0.0.1.qualifier
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Import-Package: org.eclipse.ui.plugin
 Require-Bundle: org.eclipse.core.runtime
 Bundle-Vendor: %pluginVendor
diff --git a/doc/org.eclipse.efm.modeling.doc.xlia/.classpath b/doc/org.eclipse.efm.modeling.doc.xlia/.classpath
index b862a29..ca3785c 100644
--- a/doc/org.eclipse.efm.modeling.doc.xlia/.classpath
+++ b/doc/org.eclipse.efm.modeling.doc.xlia/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>

 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

 	<classpathentry kind="src" path="src"/>

 	<classpathentry kind="output" path="bin"/>

diff --git a/doc/org.eclipse.efm.modeling.doc.xlia/META-INF/MANIFEST.MF b/doc/org.eclipse.efm.modeling.doc.xlia/META-INF/MANIFEST.MF
index ab0c1d2..ebf50eb 100644
--- a/doc/org.eclipse.efm.modeling.doc.xlia/META-INF/MANIFEST.MF
+++ b/doc/org.eclipse.efm.modeling.doc.xlia/META-INF/MANIFEST.MF
@@ -7,5 +7,5 @@
 Bundle-Vendor: %providerName
 Require-Bundle: org.eclipse.ui,

  org.eclipse.core.runtime
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Bundle-ActivationPolicy: lazy
diff --git a/editor/sew/org.eclipse.efm.sew.ecore/.classpath b/editor/sew/org.eclipse.efm.sew.ecore/.classpath
index e9b9bf7..7a8d12e 100644
--- a/editor/sew/org.eclipse.efm.sew.ecore/.classpath
+++ b/editor/sew/org.eclipse.efm.sew.ecore/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>

 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

 	<classpathentry kind="src" path="src/"/>

 	<classpathentry kind="src" path="src-gen"/>

diff --git a/editor/sew/org.eclipse.efm.sew.ecore/.settings/org.eclipse.jdt.core.prefs b/editor/sew/org.eclipse.efm.sew.ecore/.settings/org.eclipse.jdt.core.prefs
index 295926d..11265a3 100644
--- a/editor/sew/org.eclipse.efm.sew.ecore/.settings/org.eclipse.jdt.core.prefs
+++ b/editor/sew/org.eclipse.efm.sew.ecore/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,10 @@
 eclipse.preferences.version=1

 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8

-org.eclipse.jdt.core.compiler.compliance=1.8

+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11

+org.eclipse.jdt.core.compiler.compliance=11

 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled

 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

-org.eclipse.jdt.core.compiler.source=1.8

+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning

+org.eclipse.jdt.core.compiler.release=enabled

+org.eclipse.jdt.core.compiler.source=11

diff --git a/editor/sew/org.eclipse.efm.sew.ecore/META-INF/MANIFEST.MF b/editor/sew/org.eclipse.efm.sew.ecore/META-INF/MANIFEST.MF
index c4281e5..9b91fdf 100644
--- a/editor/sew/org.eclipse.efm.sew.ecore/META-INF/MANIFEST.MF
+++ b/editor/sew/org.eclipse.efm.sew.ecore/META-INF/MANIFEST.MF
@@ -12,7 +12,7 @@
  org.eclipse.core.runtime,
  org.eclipse.emf.ecore;visibility:=reexport,
  org.eclipse.efm.sew.ecore;visibility:=reexport
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Export-Package: org.eclipse.efm.ecore.sew,
  org.eclipse.efm.ecore.sew.expression,
  org.eclipse.efm.ecore.sew.expression.impl,
diff --git a/editor/sew/org.eclipse.efm.sew.xtext.ide/.classpath b/editor/sew/org.eclipse.efm.sew.xtext.ide/.classpath
index 026e45b..d0c5d81 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext.ide/.classpath
+++ b/editor/sew/org.eclipse.efm.sew.xtext.ide/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>

 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

 	<classpathentry kind="src" path="src/"/>

 	<classpathentry kind="src" path="src-gen/"/>

diff --git a/editor/sew/org.eclipse.efm.sew.xtext.ide/.settings/org.eclipse.jdt.core.prefs b/editor/sew/org.eclipse.efm.sew.xtext.ide/.settings/org.eclipse.jdt.core.prefs
index 295926d..11265a3 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext.ide/.settings/org.eclipse.jdt.core.prefs
+++ b/editor/sew/org.eclipse.efm.sew.xtext.ide/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,10 @@
 eclipse.preferences.version=1

 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8

-org.eclipse.jdt.core.compiler.compliance=1.8

+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11

+org.eclipse.jdt.core.compiler.compliance=11

 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled

 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

-org.eclipse.jdt.core.compiler.source=1.8

+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning

+org.eclipse.jdt.core.compiler.release=enabled

+org.eclipse.jdt.core.compiler.source=11

diff --git a/editor/sew/org.eclipse.efm.sew.xtext.ide/META-INF/MANIFEST.MF b/editor/sew/org.eclipse.efm.sew.xtext.ide/META-INF/MANIFEST.MF
index 5d1eb49..c5c7027 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext.ide/META-INF/MANIFEST.MF
+++ b/editor/sew/org.eclipse.efm.sew.xtext.ide/META-INF/MANIFEST.MF
@@ -10,7 +10,7 @@
  org.eclipse.xtext.ide,

  org.eclipse.xtext.xbase.ide,

  org.antlr.runtime;bundle-version="[3.2.0,3.2.1)"

-Bundle-RequiredExecutionEnvironment: JavaSE-1.8

+Bundle-RequiredExecutionEnvironment: JavaSE-11

 Export-Package: org.eclipse.efm.sew.xtext.ide.contentassist.antlr.internal,

  org.eclipse.efm.sew.xtext.ide.contentassist.antlr

 Automatic-Module-Name: org.eclipse.efm.sew.xtext.ide

diff --git a/editor/sew/org.eclipse.efm.sew.xtext.ide/src-gen/org/eclipse/efm/sew/xtext/ide/AbstractSEWIdeModule.java b/editor/sew/org.eclipse.efm.sew.xtext.ide/src-gen/org/eclipse/efm/sew/xtext/ide/AbstractSEWIdeModule.java
index a00d78f..3d7645e 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext.ide/src-gen/org/eclipse/efm/sew/xtext/ide/AbstractSEWIdeModule.java
+++ b/editor/sew/org.eclipse.efm.sew.xtext.ide/src-gen/org/eclipse/efm/sew/xtext/ide/AbstractSEWIdeModule.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.sew.xtext.ide;
 
diff --git a/editor/sew/org.eclipse.efm.sew.xtext.ide/src-gen/org/eclipse/efm/sew/xtext/ide/contentassist/antlr/PartialSEWContentAssistParser.java b/editor/sew/org.eclipse.efm.sew.xtext.ide/src-gen/org/eclipse/efm/sew/xtext/ide/contentassist/antlr/PartialSEWContentAssistParser.java
index 8d850a9..e4c9fb5 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext.ide/src-gen/org/eclipse/efm/sew/xtext/ide/contentassist/antlr/PartialSEWContentAssistParser.java
+++ b/editor/sew/org.eclipse.efm.sew.xtext.ide/src-gen/org/eclipse/efm/sew/xtext/ide/contentassist/antlr/PartialSEWContentAssistParser.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.sew.xtext.ide.contentassist.antlr;
 
@@ -20,10 +20,9 @@
 import org.eclipse.xtext.AbstractRule;
 import org.eclipse.xtext.ide.editor.contentassist.antlr.FollowElement;
 import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
-import org.eclipse.xtext.ide.editor.partialEditing.IPartialEditingContentAssistParser;
 import org.eclipse.xtext.util.PolymorphicDispatcher;
 
-public class PartialSEWContentAssistParser extends SEWParser implements IPartialEditingContentAssistParser {
+public class PartialSEWContentAssistParser extends SEWParser {
 
 	private AbstractRule rule;
 
diff --git a/editor/sew/org.eclipse.efm.sew.xtext.ide/src-gen/org/eclipse/efm/sew/xtext/ide/contentassist/antlr/SEWParser.java b/editor/sew/org.eclipse.efm.sew.xtext.ide/src-gen/org/eclipse/efm/sew/xtext/ide/contentassist/antlr/SEWParser.java
index ad7c58e..55ef8c9 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext.ide/src-gen/org/eclipse/efm/sew/xtext/ide/contentassist/antlr/SEWParser.java
+++ b/editor/sew/org.eclipse.efm.sew.xtext.ide/src-gen/org/eclipse/efm/sew/xtext/ide/contentassist/antlr/SEWParser.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.sew.xtext.ide.contentassist.antlr;
 
diff --git a/editor/sew/org.eclipse.efm.sew.xtext.ide/src-gen/org/eclipse/efm/sew/xtext/ide/contentassist/antlr/internal/InternalSEW.g b/editor/sew/org.eclipse.efm.sew.xtext.ide/src-gen/org/eclipse/efm/sew/xtext/ide/contentassist/antlr/internal/InternalSEW.g
index 838e408..d029a72 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext.ide/src-gen/org/eclipse/efm/sew/xtext/ide/contentassist/antlr/internal/InternalSEW.g
+++ b/editor/sew/org.eclipse.efm.sew.xtext.ide/src-gen/org/eclipse/efm/sew/xtext/ide/contentassist/antlr/internal/InternalSEW.g
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 grammar InternalSEW;
 
diff --git a/editor/sew/org.eclipse.efm.sew.xtext.ide/src-gen/org/eclipse/efm/sew/xtext/ide/contentassist/antlr/internal/InternalSEWParser.java b/editor/sew/org.eclipse.efm.sew.xtext.ide/src-gen/org/eclipse/efm/sew/xtext/ide/contentassist/antlr/internal/InternalSEWParser.java
index 8884363..7ad9929 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext.ide/src-gen/org/eclipse/efm/sew/xtext/ide/contentassist/antlr/internal/InternalSEWParser.java
+++ b/editor/sew/org.eclipse.efm.sew.xtext.ide/src-gen/org/eclipse/efm/sew/xtext/ide/contentassist/antlr/internal/InternalSEWParser.java
@@ -33,7 +33,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 @SuppressWarnings("all")
 public class InternalSEWParser extends AbstractInternalContentAssistParser {
diff --git a/editor/sew/org.eclipse.efm.sew.xtext.tests/.classpath b/editor/sew/org.eclipse.efm.sew.xtext.tests/.classpath
index c461527..9a77662 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext.tests/.classpath
+++ b/editor/sew/org.eclipse.efm.sew.xtext.tests/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>

 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

 	<classpathentry kind="src" path="src/">

 		<attributes>

diff --git a/editor/sew/org.eclipse.efm.sew.xtext.tests/.settings/org.eclipse.jdt.core.prefs b/editor/sew/org.eclipse.efm.sew.xtext.tests/.settings/org.eclipse.jdt.core.prefs
index 295926d..11265a3 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext.tests/.settings/org.eclipse.jdt.core.prefs
+++ b/editor/sew/org.eclipse.efm.sew.xtext.tests/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,10 @@
 eclipse.preferences.version=1

 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8

-org.eclipse.jdt.core.compiler.compliance=1.8

+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11

+org.eclipse.jdt.core.compiler.compliance=11

 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled

 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

-org.eclipse.jdt.core.compiler.source=1.8

+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning

+org.eclipse.jdt.core.compiler.release=enabled

+org.eclipse.jdt.core.compiler.source=11

diff --git a/editor/sew/org.eclipse.efm.sew.xtext.tests/META-INF/MANIFEST.MF b/editor/sew/org.eclipse.efm.sew.xtext.tests/META-INF/MANIFEST.MF
index 7ed1c7f..99654ce 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext.tests/META-INF/MANIFEST.MF
+++ b/editor/sew/org.eclipse.efm.sew.xtext.tests/META-INF/MANIFEST.MF
@@ -13,7 +13,7 @@
  org.eclipse.xtext.xbase.lib;bundle-version="2.14.0",

  org.eclipse.xtext.testing,

  org.eclipse.xtext.xbase.testing

-Bundle-RequiredExecutionEnvironment: JavaSE-1.8

+Bundle-RequiredExecutionEnvironment: JavaSE-11

 Export-Package: org.eclipse.efm.sew.xtext.tests;x-internal=true

 Import-Package: org.hamcrest.core,

  org.junit;version="4.5.0",

diff --git a/editor/sew/org.eclipse.efm.sew.xtext.tests/src-gen/org/eclipse/efm/sew/xtext/tests/SEWInjectorProvider.java b/editor/sew/org.eclipse.efm.sew.xtext.tests/src-gen/org/eclipse/efm/sew/xtext/tests/SEWInjectorProvider.java
index d1f72a2..73ed940 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext.tests/src-gen/org/eclipse/efm/sew/xtext/tests/SEWInjectorProvider.java
+++ b/editor/sew/org.eclipse.efm.sew.xtext.tests/src-gen/org/eclipse/efm/sew/xtext/tests/SEWInjectorProvider.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.sew.xtext.tests;
 
diff --git a/editor/sew/org.eclipse.efm.sew.xtext.ui.tests/.classpath b/editor/sew/org.eclipse.efm.sew.xtext.ui.tests/.classpath
index c461527..c7f7faa 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext.ui.tests/.classpath
+++ b/editor/sew/org.eclipse.efm.sew.xtext.ui.tests/.classpath
@@ -1,18 +1,17 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">

+		<attributes>

+			<attribute name="module" value="true"/>

+		</attributes>

+	</classpathentry>

 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

-	<classpathentry kind="src" path="src/">

+	<classpathentry kind="src" path="src">

 		<attributes>

 			<attribute name="test" value="true"/>

 		</attributes>

 	</classpathentry>

-	<classpathentry kind="src" path="src-gen/">

-		<attributes>

-			<attribute name="test" value="true"/>

-		</attributes>

-	</classpathentry>

-	<classpathentry kind="src" path="xtend-gen/">

+	<classpathentry kind="src" path="src-gen">

 		<attributes>

 			<attribute name="test" value="true"/>

 		</attributes>

diff --git a/editor/sew/org.eclipse.efm.sew.xtext.ui.tests/META-INF/MANIFEST.MF b/editor/sew/org.eclipse.efm.sew.xtext.ui.tests/META-INF/MANIFEST.MF
index 6a33fb3..a6e134a 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext.ui.tests/META-INF/MANIFEST.MF
+++ b/editor/sew/org.eclipse.efm.sew.xtext.ui.tests/META-INF/MANIFEST.MF
@@ -15,7 +15,7 @@
  org.eclipse.xtext.testing,

  org.eclipse.xtext.xbase.testing,

  org.eclipse.xtext.ui.testing

-Bundle-RequiredExecutionEnvironment: JavaSE-1.8

+Bundle-RequiredExecutionEnvironment: JavaSE-11

 Export-Package: org.eclipse.efm.sew.xtext.ui.tests;x-internal=true

 Import-Package: org.hamcrest.core,

  org.junit;version="4.5.0",

diff --git a/editor/sew/org.eclipse.efm.sew.xtext.ui.tests/src-gen/org/eclipse/efm/sew/xtext/ui/tests/SEWUiInjectorProvider.java b/editor/sew/org.eclipse.efm.sew.xtext.ui.tests/src-gen/org/eclipse/efm/sew/xtext/ui/tests/SEWUiInjectorProvider.java
index ee2f322..6fccd25 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext.ui.tests/src-gen/org/eclipse/efm/sew/xtext/ui/tests/SEWUiInjectorProvider.java
+++ b/editor/sew/org.eclipse.efm.sew.xtext.ui.tests/src-gen/org/eclipse/efm/sew/xtext/ui/tests/SEWUiInjectorProvider.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.sew.xtext.ui.tests;
 
diff --git a/editor/sew/org.eclipse.efm.sew.xtext.ui/.classpath b/editor/sew/org.eclipse.efm.sew.xtext.ui/.classpath
index 026e45b..d0c5d81 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext.ui/.classpath
+++ b/editor/sew/org.eclipse.efm.sew.xtext.ui/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>

 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

 	<classpathentry kind="src" path="src/"/>

 	<classpathentry kind="src" path="src-gen/"/>

diff --git a/editor/sew/org.eclipse.efm.sew.xtext.ui/.settings/org.eclipse.jdt.core.prefs b/editor/sew/org.eclipse.efm.sew.xtext.ui/.settings/org.eclipse.jdt.core.prefs
index 295926d..11265a3 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext.ui/.settings/org.eclipse.jdt.core.prefs
+++ b/editor/sew/org.eclipse.efm.sew.xtext.ui/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,10 @@
 eclipse.preferences.version=1

 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8

-org.eclipse.jdt.core.compiler.compliance=1.8

+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11

+org.eclipse.jdt.core.compiler.compliance=11

 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled

 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

-org.eclipse.jdt.core.compiler.source=1.8

+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning

+org.eclipse.jdt.core.compiler.release=enabled

+org.eclipse.jdt.core.compiler.source=11

diff --git a/editor/sew/org.eclipse.efm.sew.xtext.ui/META-INF/MANIFEST.MF b/editor/sew/org.eclipse.efm.sew.xtext.ui/META-INF/MANIFEST.MF
index 567e5ab..f3008e3 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext.ui/META-INF/MANIFEST.MF
+++ b/editor/sew/org.eclipse.efm.sew.xtext.ui/META-INF/MANIFEST.MF
@@ -19,7 +19,7 @@
  org.eclipse.xtend.lib;bundle-version="2.14.0";resolution:=optional,

  org.eclipse.xtext.xbase.lib;bundle-version="2.14.0"

 Import-Package: org.apache.log4j

-Bundle-RequiredExecutionEnvironment: JavaSE-1.8

+Bundle-RequiredExecutionEnvironment: JavaSE-11

 Export-Package: org.eclipse.efm.sew.xtext.ui.internal,

  org.eclipse.efm.sew.xtext.ui.quickfix,

  org.eclipse.efm.sew.xtext.ui.contentassist

diff --git a/editor/sew/org.eclipse.efm.sew.xtext.ui/plugin.xml_gen b/editor/sew/org.eclipse.efm.sew.xtext.ui/plugin.xml_gen
index a81863b..0c13f6e 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext.ui/plugin.xml_gen
+++ b/editor/sew/org.eclipse.efm.sew.xtext.ui/plugin.xml_gen
@@ -313,7 +313,7 @@
 	<!-- Quick Outline -->
 	<extension
 		point="org.eclipse.ui.handlers">
-		<handler 
+		<handler
 			class="org.eclipse.efm.sew.xtext.ui.SEWExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
 			commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
 			<activeWhen>
@@ -373,7 +373,7 @@
 	</extension>
 	<!-- Rename Refactoring -->
 	<extension point="org.eclipse.ui.handlers">
-		<handler 
+		<handler
 			class="org.eclipse.efm.sew.xtext.ui.SEWExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
 			commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
 			<activeWhen>
diff --git a/editor/sew/org.eclipse.efm.sew.xtext.ui/src-gen/org/eclipse/efm/sew/xtext/ui/AbstractSEWUiModule.java b/editor/sew/org.eclipse.efm.sew.xtext.ui/src-gen/org/eclipse/efm/sew/xtext/ui/AbstractSEWUiModule.java
index 86d75aa..1c02325 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext.ui/src-gen/org/eclipse/efm/sew/xtext/ui/AbstractSEWUiModule.java
+++ b/editor/sew/org.eclipse.efm.sew.xtext.ui/src-gen/org/eclipse/efm/sew/xtext/ui/AbstractSEWUiModule.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.sew.xtext.ui;
 
diff --git a/editor/sew/org.eclipse.efm.sew.xtext.ui/src-gen/org/eclipse/efm/sew/xtext/ui/SEWExecutableExtensionFactory.java b/editor/sew/org.eclipse.efm.sew.xtext.ui/src-gen/org/eclipse/efm/sew/xtext/ui/SEWExecutableExtensionFactory.java
index 3016972..a9a561b 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext.ui/src-gen/org/eclipse/efm/sew/xtext/ui/SEWExecutableExtensionFactory.java
+++ b/editor/sew/org.eclipse.efm.sew.xtext.ui/src-gen/org/eclipse/efm/sew/xtext/ui/SEWExecutableExtensionFactory.java
@@ -11,15 +11,15 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.sew.xtext.ui;
 
 import com.google.inject.Injector;
-import org.eclipse.core.runtime.Platform;
 import org.eclipse.efm.sew.xtext.ui.internal.XtextActivator;
 import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;
 import org.osgi.framework.Bundle;
+import org.osgi.framework.FrameworkUtil;
 
 /**
  * This class was generated. Customizations should only happen in a newly
@@ -29,7 +29,7 @@
 
 	@Override
 	protected Bundle getBundle() {
-		return Platform.getBundle(XtextActivator.PLUGIN_ID);
+		return FrameworkUtil.getBundle(XtextActivator.class);
 	}
 	
 	@Override
diff --git a/editor/sew/org.eclipse.efm.sew.xtext.ui/src-gen/org/eclipse/efm/sew/xtext/ui/contentassist/AbstractSEWProposalProvider.java b/editor/sew/org.eclipse.efm.sew.xtext.ui/src-gen/org/eclipse/efm/sew/xtext/ui/contentassist/AbstractSEWProposalProvider.java
index 829b3f5..d270d9a 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext.ui/src-gen/org/eclipse/efm/sew/xtext/ui/contentassist/AbstractSEWProposalProvider.java
+++ b/editor/sew/org.eclipse.efm.sew.xtext.ui/src-gen/org/eclipse/efm/sew/xtext/ui/contentassist/AbstractSEWProposalProvider.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.sew.xtext.ui.contentassist;
 
diff --git a/editor/sew/org.eclipse.efm.sew.xtext.ui/src-gen/org/eclipse/efm/sew/xtext/ui/internal/XtextActivator.java b/editor/sew/org.eclipse.efm.sew.xtext.ui/src-gen/org/eclipse/efm/sew/xtext/ui/internal/XtextActivator.java
index c02c4dd..d69e9ac 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext.ui/src-gen/org/eclipse/efm/sew/xtext/ui/internal/XtextActivator.java
+++ b/editor/sew/org.eclipse.efm.sew.xtext.ui/src-gen/org/eclipse/efm/sew/xtext/ui/internal/XtextActivator.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.sew.xtext.ui.internal;
 
diff --git a/editor/sew/org.eclipse.efm.sew.xtext/.classpath b/editor/sew/org.eclipse.efm.sew.xtext/.classpath
index 026e45b..d0c5d81 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext/.classpath
+++ b/editor/sew/org.eclipse.efm.sew.xtext/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>

 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

 	<classpathentry kind="src" path="src/"/>

 	<classpathentry kind="src" path="src-gen/"/>

diff --git a/editor/sew/org.eclipse.efm.sew.xtext/.settings/org.eclipse.jdt.core.prefs b/editor/sew/org.eclipse.efm.sew.xtext/.settings/org.eclipse.jdt.core.prefs
index 295926d..11265a3 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext/.settings/org.eclipse.jdt.core.prefs
+++ b/editor/sew/org.eclipse.efm.sew.xtext/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,10 @@
 eclipse.preferences.version=1

 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8

-org.eclipse.jdt.core.compiler.compliance=1.8

+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11

+org.eclipse.jdt.core.compiler.compliance=11

 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled

 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

-org.eclipse.jdt.core.compiler.source=1.8

+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning

+org.eclipse.jdt.core.compiler.release=enabled

+org.eclipse.jdt.core.compiler.source=11

diff --git a/editor/sew/org.eclipse.efm.sew.xtext/META-INF/MANIFEST.MF b/editor/sew/org.eclipse.efm.sew.xtext/META-INF/MANIFEST.MF
index 777a978..bcbe87d 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext/META-INF/MANIFEST.MF
+++ b/editor/sew/org.eclipse.efm.sew.xtext/META-INF/MANIFEST.MF
@@ -13,7 +13,7 @@
  org.antlr.runtime;bundle-version="[3.2.0,3.2.1)",

  org.eclipse.xtext.util,

  org.eclipse.xtend.lib;bundle-version="2.14.0"

-Bundle-RequiredExecutionEnvironment: JavaSE-1.8

+Bundle-RequiredExecutionEnvironment: JavaSE-11

 Export-Package: org.eclipse.efm.sew.xtext.services,

  org.eclipse.efm.sew.xtext.parser.antlr.internal,

  org.eclipse.efm.sew.xtext,

diff --git a/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/AbstractSEWRuntimeModule.java b/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/AbstractSEWRuntimeModule.java
index b3dda5d..751e59d 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/AbstractSEWRuntimeModule.java
+++ b/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/AbstractSEWRuntimeModule.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.sew.xtext;
 
diff --git a/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/SEWStandaloneSetupGenerated.java b/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/SEWStandaloneSetupGenerated.java
index 586f716..df7bebf 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/SEWStandaloneSetupGenerated.java
+++ b/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/SEWStandaloneSetupGenerated.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.sew.xtext;
 
diff --git a/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/parser/antlr/SEWAntlrTokenFileProvider.java b/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/parser/antlr/SEWAntlrTokenFileProvider.java
index c6e392d..e48ae85 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/parser/antlr/SEWAntlrTokenFileProvider.java
+++ b/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/parser/antlr/SEWAntlrTokenFileProvider.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.sew.xtext.parser.antlr;
 
diff --git a/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/parser/antlr/SEWParser.java b/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/parser/antlr/SEWParser.java
index d6e25a4..7bf0629 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/parser/antlr/SEWParser.java
+++ b/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/parser/antlr/SEWParser.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.sew.xtext.parser.antlr;
 
diff --git a/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/parser/antlr/internal/InternalSEW.g b/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/parser/antlr/internal/InternalSEW.g
index 592d56e..dce5362 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/parser/antlr/internal/InternalSEW.g
+++ b/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/parser/antlr/internal/InternalSEW.g
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 grammar InternalSEW;
 
diff --git a/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/parser/antlr/internal/InternalSEWParser.java b/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/parser/antlr/internal/InternalSEWParser.java
index 0dec6bd..18c33d9 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/parser/antlr/internal/InternalSEWParser.java
+++ b/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/parser/antlr/internal/InternalSEWParser.java
@@ -32,7 +32,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 @SuppressWarnings("all")
 public class InternalSEWParser extends AbstractInternalAntlrParser {
diff --git a/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/scoping/AbstractSEWScopeProvider.java b/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/scoping/AbstractSEWScopeProvider.java
index 379f420..9d19260 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/scoping/AbstractSEWScopeProvider.java
+++ b/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/scoping/AbstractSEWScopeProvider.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.sew.xtext.scoping;
 
diff --git a/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/serializer/SEWSemanticSequencer.java b/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/serializer/SEWSemanticSequencer.java
index 0e8822d..06d34a3 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/serializer/SEWSemanticSequencer.java
+++ b/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/serializer/SEWSemanticSequencer.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.sew.xtext.serializer;
 
diff --git a/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/serializer/SEWSyntacticSequencer.java b/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/serializer/SEWSyntacticSequencer.java
index 631643b..9f257e6 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/serializer/SEWSyntacticSequencer.java
+++ b/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/serializer/SEWSyntacticSequencer.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.sew.xtext.serializer;
 
diff --git a/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/services/SEWGrammarAccess.java b/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/services/SEWGrammarAccess.java
index a71142d..b4c3078 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/services/SEWGrammarAccess.java
+++ b/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/services/SEWGrammarAccess.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.sew.xtext.services;
 
@@ -30,11 +30,11 @@
 import org.eclipse.xtext.RuleCall;
 import org.eclipse.xtext.TerminalRule;
 import org.eclipse.xtext.common.services.TerminalsGrammarAccess;
-import org.eclipse.xtext.service.AbstractElementFinder.AbstractGrammarElementFinder;
+import org.eclipse.xtext.service.AbstractElementFinder;
 import org.eclipse.xtext.service.GrammarProvider;
 
 @Singleton
-public class SEWGrammarAccess extends AbstractGrammarElementFinder {
+public class SEWGrammarAccess extends AbstractElementFinder.AbstractGrammarElementFinder {
 	
 	public class WorkflowElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.efm.sew.xtext.SEW.Workflow");
@@ -67,41 +67,65 @@
 		//////////////////////////////////////////////////////////////////////////////////
 		//// Symbolic Execution Workflow Specification
 		//////////////////////////////////////////////////////////////////////////////////
-		//Workflow sew::SEWorkflow:
-		//	{sew::SEWorkflow} Prolog? (type=('workflow' | 'symbex-workflow') name=UFI? description=EString?
-		//	'{'
-		//	element+=(Object | Property)*
-		//	'}'
-		//	// for Xtext Embeded Editor
-		//	| element+=(Object | Property)*
-		//	// Deprecated Object as FAVM Workflow
-		//	| element+=DeprecatedObject);
+		//Workflow returns sew::SEWorkflow
+		//: {sew::SEWorkflow}
+		//    ( Prolog )?
+		//    ( type=( 'workflow' | 'symbex-workflow' )
+		//        ( name=UFI )?  ( description=EString )?
+		//        '{'
+		//            ( element+=( Object | Property ) )*
+		//        '}'
+		//    // for Xtext Embeded Editor
+		//    | ( element+=( Object | Property ) )*
+		//    // Deprecated Object as FAVM Workflow
+		//    | element+=DeprecatedObject
+		//    )
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{sew::SEWorkflow} Prolog? (type=('workflow' | 'symbex-workflow') name=UFI? description=EString? '{' element+=(Object |
-		//Property)* '}' // for Xtext Embeded Editor
-		//| element+=(Object | Property)* // Deprecated Object as FAVM Workflow
-		//| element+=DeprecatedObject)
+		//{sew::SEWorkflow}
+		//   ( Prolog )?
+		//   ( type=( 'workflow' | 'symbex-workflow' )
+		//       ( name=UFI )?  ( description=EString )?
+		//       '{'
+		//           ( element+=( Object | Property ) )*
+		//       '}'
+		//   // for Xtext Embeded Editor
+		//   | ( element+=( Object | Property ) )*
+		//   // Deprecated Object as FAVM Workflow
+		//   | element+=DeprecatedObject
+		//   )
 		public Group getGroup() { return cGroup; }
 		
 		//{sew::SEWorkflow}
 		public Action getSEWorkflowAction_0() { return cSEWorkflowAction_0; }
 		
-		//Prolog?
+		//( Prolog )?
 		public RuleCall getPrologParserRuleCall_1() { return cPrologParserRuleCall_1; }
 		
-		//(type=('workflow' | 'symbex-workflow') name=UFI? description=EString? '{' element+=(Object | Property)* '}' // for Xtext Embeded Editor
-		//| element+=(Object | Property)* // Deprecated Object as FAVM Workflow
-		//| element+=DeprecatedObject)
+		//( type=( 'workflow' | 'symbex-workflow' )
+		//    ( name=UFI )?  ( description=EString )?
+		//    '{'
+		//        ( element+=( Object | Property ) )*
+		//    '}'
+		//// for Xtext Embeded Editor
+		//| ( element+=( Object | Property ) )*
+		//// Deprecated Object as FAVM Workflow
+		//| element+=DeprecatedObject
+		//)
 		public Alternatives getAlternatives_2() { return cAlternatives_2; }
 		
-		//type=('workflow' | 'symbex-workflow') name=UFI? description=EString? '{' element+=(Object | Property)* '}'
+		//type=( 'workflow' | 'symbex-workflow' )
+		//       ( name=UFI )?  ( description=EString )?
+		//       '{'
+		//           ( element+=( Object | Property ) )*
+		//       '}'
 		public Group getGroup_2_0() { return cGroup_2_0; }
 		
-		//type=('workflow' | 'symbex-workflow')
+		//type=( 'workflow' | 'symbex-workflow' )
 		public Assignment getTypeAssignment_2_0_0() { return cTypeAssignment_2_0_0; }
 		
-		//('workflow' | 'symbex-workflow')
+		//( 'workflow' | 'symbex-workflow' )
 		public Alternatives getTypeAlternatives_2_0_0_0() { return cTypeAlternatives_2_0_0_0; }
 		
 		//'workflow'
@@ -110,13 +134,13 @@
 		//'symbex-workflow'
 		public Keyword getTypeSymbexWorkflowKeyword_2_0_0_0_1() { return cTypeSymbexWorkflowKeyword_2_0_0_0_1; }
 		
-		//name=UFI?
+		//( name=UFI )?
 		public Assignment getNameAssignment_2_0_1() { return cNameAssignment_2_0_1; }
 		
 		//UFI
 		public RuleCall getNameUFIParserRuleCall_2_0_1_0() { return cNameUFIParserRuleCall_2_0_1_0; }
 		
-		//description=EString?
+		//( description=EString )?
 		public Assignment getDescriptionAssignment_2_0_2() { return cDescriptionAssignment_2_0_2; }
 		
 		//EString
@@ -125,10 +149,10 @@
 		//'{'
 		public Keyword getLeftCurlyBracketKeyword_2_0_3() { return cLeftCurlyBracketKeyword_2_0_3; }
 		
-		//element+=(Object | Property)*
+		//( element+=( Object | Property ) )*
 		public Assignment getElementAssignment_2_0_4() { return cElementAssignment_2_0_4; }
 		
-		//(Object | Property)
+		//( Object | Property )
 		public Alternatives getElementAlternatives_2_0_4_0() { return cElementAlternatives_2_0_4_0; }
 		
 		//Object
@@ -140,10 +164,10 @@
 		//'}'
 		public Keyword getRightCurlyBracketKeyword_2_0_5() { return cRightCurlyBracketKeyword_2_0_5; }
 		
-		//element+=(Object | Property)*
+		//( element+=( Object | Property ) )*
 		public Assignment getElementAssignment_2_1() { return cElementAssignment_2_1; }
 		
-		//(Object | Property)
+		//( Object | Property )
 		public Alternatives getElementAlternatives_2_1_0() { return cElementAlternatives_2_1_0; }
 		
 		//Object
@@ -177,14 +201,19 @@
 		private final RuleCall cEStringParserRuleCall_3_2 = (RuleCall)cAlternatives_3.eContents().get(2);
 		private final Keyword cGreaterThanSignColonKeyword_4 = (Keyword)cGroup.eContents().get(4);
 		
-		//Prolog:
-		//	('@sew' | '@favm') '<' ('workflow' | 'sew') (',' 'version:'? EDouble | UFI | EString)? '>:';
+		//Prolog
+		//: ( '@sew' | '@favm' ) '<'
+		//    ( 'workflow' | 'sew' )
+		//    ( ',' ( 'version:' )?  EDouble | UFI | EString )? '>:'
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//('@sew' | '@favm') '<' ('workflow' | 'sew') (',' 'version:'? EDouble | UFI | EString)? '>:'
+		//( '@sew' | '@favm' ) '<'
+		//   ( 'workflow' | 'sew' )
+		//   ( ',' ( 'version:' )?  EDouble | UFI | EString )? '>:'
 		public Group getGroup() { return cGroup; }
 		
-		//('@sew' | '@favm')
+		//( '@sew' | '@favm' )
 		public Alternatives getAlternatives_0() { return cAlternatives_0; }
 		
 		//'@sew'
@@ -196,7 +225,7 @@
 		//'<'
 		public Keyword getLessThanSignKeyword_1() { return cLessThanSignKeyword_1; }
 		
-		//('workflow' | 'sew')
+		//( 'workflow' | 'sew' )
 		public Alternatives getAlternatives_2() { return cAlternatives_2; }
 		
 		//'workflow'
@@ -205,16 +234,16 @@
 		//'sew'
 		public Keyword getSewKeyword_2_1() { return cSewKeyword_2_1; }
 		
-		//(',' 'version:'? EDouble | UFI | EString)?
+		//( ',' ( 'version:' )?  EDouble | UFI | EString )?
 		public Alternatives getAlternatives_3() { return cAlternatives_3; }
 		
-		//',' 'version:'? EDouble
+		//',' ( 'version:' )?  EDouble
 		public Group getGroup_3_0() { return cGroup_3_0; }
 		
 		//','
 		public Keyword getCommaKeyword_3_0_0() { return cCommaKeyword_3_0_0; }
 		
-		//'version:'?
+		//( 'version:' )?
 		public Keyword getVersionKeyword_3_0_1() { return cVersionKeyword_3_0_1; }
 		
 		//EDouble
@@ -239,13 +268,15 @@
 		//////////////////////////////////////////////////////////////////////////////////
 		//// [ Qualified ] Identifier
 		//////////////////////////////////////////////////////////////////////////////////
-		//ReservedWord:
-		//	'workflow' | 'sew'
-		//	// Deprecated
-		//	| DeprecatedReservedWord;
+		// ReservedWord
+		//: 'workflow' | 'sew'
+		//// Deprecated
+		//| DeprecatedReservedWord
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//'workflow' | 'sew' // Deprecated
+		// 'workflow' | 'sew'
+		//// Deprecated
 		//| DeprecatedReservedWord
 		public Alternatives getAlternatives() { return cAlternatives; }
 		
@@ -264,8 +295,9 @@
 		private final RuleCall cReservedWordParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
 		private final RuleCall cXIDENDIFIERTerminalRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
 		
-		//XID:
-		//	ReservedWord | XIDENDIFIER;
+		//XID returns ecore::EString
+		//: ReservedWord | XIDENDIFIER
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
 		//ReservedWord | XIDENDIFIER
@@ -287,20 +319,21 @@
 		private final Keyword cFullStopKeyword_1_0_1 = (Keyword)cAlternatives_1_0.eContents().get(1);
 		private final RuleCall cXIDParserRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
 		
-		//UFI:
-		//	XID (('::' | '.') XID)*;
+		//UFI returns ecore::EString
+		//: XID ( ( '::' | '.' ) XID )*
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//XID (('::' | '.') XID)*
+		//XID ( ( '::' | '.' ) XID )*
 		public Group getGroup() { return cGroup; }
 		
 		//XID
 		public RuleCall getXIDParserRuleCall_0() { return cXIDParserRuleCall_0; }
 		
-		//(('::' | '.') XID)*
+		//( ( '::' | '.' ) XID )*
 		public Group getGroup_1() { return cGroup_1; }
 		
-		//('::' | '.')
+		//( '::' | '.' )
 		public Alternatives getAlternatives_1_0() { return cAlternatives_1_0; }
 		
 		//'::'
@@ -351,22 +384,37 @@
 		//////////////////////////////////////////////////////////////////////////////////
 		//// Object Configuration Specification
 		//////////////////////////////////////////////////////////////////////////////////
-		//Object sew::WObject:
-		//	{sew::WObject} type=UFI name=UFI? description=EString?
-		//	'{'
-		//	element+=(Object | Property)*
-		//	'}'
-		//	| {sew::WObject} name=UFI (':=' | '+:=') (type=UFI description=EString?)?
-		//	'{'
-		//	element+=(Object | Property)*
-		//	'}';
+		//Object returns sew::WObject
+		//: {sew::WObject}
+		//    type=UFI  ( name=UFI )?  ( description=EString )?
+		//    '{'
+		//        ( element+=( Object | Property ) )*
+		//    '}'
+		//| {sew::WObject}
+		//    name=UFI  ( ':=' | '+:=' )  ( type=UFI  ( description=EString )? )?
+		//    '{'
+		//        ( element+=( Object | Property ) )*
+		//    '}'
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{sew::WObject} type=UFI name=UFI? description=EString? '{' element+=(Object | Property)* '}' | {sew::WObject} name=UFI
-		//(':=' | '+:=') (type=UFI description=EString?)? '{' element+=(Object | Property)* '}'
+		// {sew::WObject}
+		//    type=UFI  ( name=UFI )?  ( description=EString )?
+		//    '{'
+		//        ( element+=( Object | Property ) )*
+		//    '}'
+		//| {sew::WObject}
+		//    name=UFI  ( ':=' | '+:=' )  ( type=UFI  ( description=EString )? )?
+		//    '{'
+		//        ( element+=( Object | Property ) )*
+		//    '}'
 		public Alternatives getAlternatives() { return cAlternatives; }
 		
-		//{sew::WObject} type=UFI name=UFI? description=EString? '{' element+=(Object | Property)* '}'
+		//{sew::WObject}
+		//   type=UFI  ( name=UFI )?  ( description=EString )?
+		//   '{'
+		//       ( element+=( Object | Property ) )*
+		//   '}'
 		public Group getGroup_0() { return cGroup_0; }
 		
 		//{sew::WObject}
@@ -378,13 +426,13 @@
 		//UFI
 		public RuleCall getTypeUFIParserRuleCall_0_1_0() { return cTypeUFIParserRuleCall_0_1_0; }
 		
-		//name=UFI?
+		//( name=UFI )?
 		public Assignment getNameAssignment_0_2() { return cNameAssignment_0_2; }
 		
 		//UFI
 		public RuleCall getNameUFIParserRuleCall_0_2_0() { return cNameUFIParserRuleCall_0_2_0; }
 		
-		//description=EString?
+		//( description=EString )?
 		public Assignment getDescriptionAssignment_0_3() { return cDescriptionAssignment_0_3; }
 		
 		//EString
@@ -393,10 +441,10 @@
 		//'{'
 		public Keyword getLeftCurlyBracketKeyword_0_4() { return cLeftCurlyBracketKeyword_0_4; }
 		
-		//element+=(Object | Property)*
+		//( element+=( Object | Property ) )*
 		public Assignment getElementAssignment_0_5() { return cElementAssignment_0_5; }
 		
-		//(Object | Property)
+		//( Object | Property )
 		public Alternatives getElementAlternatives_0_5_0() { return cElementAlternatives_0_5_0; }
 		
 		//Object
@@ -408,7 +456,11 @@
 		//'}'
 		public Keyword getRightCurlyBracketKeyword_0_6() { return cRightCurlyBracketKeyword_0_6; }
 		
-		//{sew::WObject} name=UFI (':=' | '+:=') (type=UFI description=EString?)? '{' element+=(Object | Property)* '}'
+		//{sew::WObject}
+		//   name=UFI  ( ':=' | '+:=' )  ( type=UFI  ( description=EString )? )?
+		//   '{'
+		//       ( element+=( Object | Property ) )*
+		//   '}'
 		public Group getGroup_1() { return cGroup_1; }
 		
 		//{sew::WObject}
@@ -420,7 +472,7 @@
 		//UFI
 		public RuleCall getNameUFIParserRuleCall_1_1_0() { return cNameUFIParserRuleCall_1_1_0; }
 		
-		//(':=' | '+:=')
+		//( ':=' | '+:=' )
 		public Alternatives getAlternatives_1_2() { return cAlternatives_1_2; }
 		
 		//':='
@@ -429,7 +481,7 @@
 		//'+:='
 		public Keyword getPlusSignColonEqualsSignKeyword_1_2_1() { return cPlusSignColonEqualsSignKeyword_1_2_1; }
 		
-		//(type=UFI description=EString?)?
+		//( type=UFI  ( description=EString )? )?
 		public Group getGroup_1_3() { return cGroup_1_3; }
 		
 		//type=UFI
@@ -438,7 +490,7 @@
 		//UFI
 		public RuleCall getTypeUFIParserRuleCall_1_3_0_0() { return cTypeUFIParserRuleCall_1_3_0_0; }
 		
-		//description=EString?
+		//( description=EString )?
 		public Assignment getDescriptionAssignment_1_3_1() { return cDescriptionAssignment_1_3_1; }
 		
 		//EString
@@ -447,10 +499,10 @@
 		//'{'
 		public Keyword getLeftCurlyBracketKeyword_1_4() { return cLeftCurlyBracketKeyword_1_4; }
 		
-		//element+=(Object | Property)*
+		//( element+=( Object | Property ) )*
 		public Assignment getElementAssignment_1_5() { return cElementAssignment_1_5; }
 		
-		//(Object | Property)
+		//( Object | Property )
 		public Alternatives getElementAlternatives_1_5_0() { return cElementAlternatives_1_5_0; }
 		
 		//Object
@@ -471,12 +523,14 @@
 		//////////////////////////////////////////////////////////////////////////////////
 		//// Property Specification
 		//////////////////////////////////////////////////////////////////////////////////
-		//Property sew::WProperty:
-		//	Section
-		//	| Attribute;
+		//Property returns sew::WProperty
+		//: Section
+		//| Attribute
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//Section | Attribute
+		// Section
+		//| Attribute
 		public Alternatives getAlternatives() { return cAlternatives; }
 		
 		//Section
@@ -507,12 +561,18 @@
 		private final RuleCall cElementObjectParserRuleCall_2_1_1_0_0 = (RuleCall)cElementAlternatives_2_1_1_0.eContents().get(0);
 		private final RuleCall cElementAttributeParserRuleCall_2_1_1_0_1 = (RuleCall)cElementAlternatives_2_1_1_0.eContents().get(1);
 		
-		//Section sew::WSection:
-		//	name=XID description=EString? ('[' element+=(Object | Attribute)* ']'
-		//	| ':' element+=(Object | Attribute)*);
+		//Section returns sew::WSection
+		//: name=XID  ( description=EString )?
+		//    ( '[' ( element+=( Object | Attribute ) )* ']'
+		//    | ':' ( element+=( Object | Attribute ) )*
+		//    )
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//name=XID description=EString? ('[' element+=(Object | Attribute)* ']' | ':' element+=(Object | Attribute)*)
+		//name=XID  ( description=EString )?
+		//   ( '[' ( element+=( Object | Attribute ) )* ']'
+		//   | ':' ( element+=( Object | Attribute ) )*
+		//   )
 		public Group getGroup() { return cGroup; }
 		
 		//name=XID
@@ -521,25 +581,27 @@
 		//XID
 		public RuleCall getNameXIDParserRuleCall_0_0() { return cNameXIDParserRuleCall_0_0; }
 		
-		//description=EString?
+		//( description=EString )?
 		public Assignment getDescriptionAssignment_1() { return cDescriptionAssignment_1; }
 		
 		//EString
 		public RuleCall getDescriptionEStringParserRuleCall_1_0() { return cDescriptionEStringParserRuleCall_1_0; }
 		
-		//('[' element+=(Object | Attribute)* ']' | ':' element+=(Object | Attribute)*)
+		//( '[' ( element+=( Object | Attribute ) )* ']'
+		//| ':' ( element+=( Object | Attribute ) )*
+		//)
 		public Alternatives getAlternatives_2() { return cAlternatives_2; }
 		
-		//'[' element+=(Object | Attribute)* ']'
+		//'[' ( element+=( Object | Attribute ) )* ']'
 		public Group getGroup_2_0() { return cGroup_2_0; }
 		
 		//'['
 		public Keyword getLeftSquareBracketKeyword_2_0_0() { return cLeftSquareBracketKeyword_2_0_0; }
 		
-		//element+=(Object | Attribute)*
+		//( element+=( Object | Attribute ) )*
 		public Assignment getElementAssignment_2_0_1() { return cElementAssignment_2_0_1; }
 		
-		//(Object | Attribute)
+		//( Object | Attribute )
 		public Alternatives getElementAlternatives_2_0_1_0() { return cElementAlternatives_2_0_1_0; }
 		
 		//Object
@@ -551,16 +613,16 @@
 		//']'
 		public Keyword getRightSquareBracketKeyword_2_0_2() { return cRightSquareBracketKeyword_2_0_2; }
 		
-		//':' element+=(Object | Attribute)*
+		//':' ( element+=( Object | Attribute ) )*
 		public Group getGroup_2_1() { return cGroup_2_1; }
 		
 		//':'
 		public Keyword getColonKeyword_2_1_0() { return cColonKeyword_2_1_0; }
 		
-		//element+=(Object | Attribute)*
+		//( element+=( Object | Attribute ) )*
 		public Assignment getElementAssignment_2_1_1() { return cElementAssignment_2_1_1; }
 		
-		//(Object | Attribute)
+		//( Object | Attribute )
 		public Alternatives getElementAlternatives_2_1_1_0() { return cElementAlternatives_2_1_1_0; }
 		
 		//Object
@@ -580,11 +642,14 @@
 		private final RuleCall cValueValueSpecificationParserRuleCall_3_0 = (RuleCall)cValueAssignment_3.eContents().get(0);
 		private final Keyword cSemicolonKeyword_4 = (Keyword)cGroup.eContents().get(4);
 		
-		//Attribute sew::WAttribute:
-		//	{sew::WAttribute} name=XID '=' value=ValueSpecification ';'?;
+		//Attribute returns sew::WAttribute
+		//: {sew::WAttribute}
+		//    name=XID  '='  value=ValueSpecification  ( ';' )?
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{sew::WAttribute} name=XID '=' value=ValueSpecification ';'?
+		//{sew::WAttribute}
+		//   name=XID  '='  value=ValueSpecification  ( ';' )?
 		public Group getGroup() { return cGroup; }
 		
 		//{sew::WAttribute}
@@ -605,7 +670,7 @@
 		//ValueSpecification
 		public RuleCall getValueValueSpecificationParserRuleCall_3_0() { return cValueValueSpecificationParserRuleCall_3_0; }
 		
-		//';'?
+		//( ';' )?
 		public Keyword getSemicolonKeyword_4() { return cSemicolonKeyword_4; }
 	}
 	public class ValueSpecificationElements extends AbstractParserRuleElementFinder {
@@ -615,8 +680,9 @@
 		//////////////////////////////////////////////////////////////////////////////////
 		//// Value Specification
 		//////////////////////////////////////////////////////////////////////////////////
-		//ValueSpecification sew::WValueSpecification:
-		//	Expression;
+		//ValueSpecification returns sew::WValueSpecification
+		//: Expression
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
 		//Expression
@@ -631,13 +697,15 @@
 		//////////////////////////////////////////////////////////////////////////////////
 		//// Expression Specification
 		//////////////////////////////////////////////////////////////////////////////////
-		//Expression sew::WValueSpecification:
-		//	conditionalExpression
-		//	// Deprecated
-		//	| DeprecatedExpression;
+		//Expression returns sew::WValueSpecification
+		//: conditionalExpression
+		//// Deprecated
+		//| DeprecatedExpression
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//conditionalExpression // Deprecated
+		// conditionalExpression
+		//// Deprecated
 		//| DeprecatedExpression
 		public Alternatives getAlternatives() { return cAlternatives; }
 		
@@ -661,19 +729,26 @@
 		private final Assignment cOperandAssignment_1_4 = (Assignment)cGroup_1.eContents().get(4);
 		private final RuleCall cOperandExpressionParserRuleCall_1_4_0 = (RuleCall)cOperandAssignment_1_4.eContents().get(0);
 		
-		//conditionalExpression sew::WValueSpecification:
-		//	conditionalOrExpression ({expression::Expression.operand+=current} operator='?' operand+=Expression ':'
-		//	operand+=Expression)?;
+		//conditionalExpression returns sew::WValueSpecification
+		//: conditionalOrExpression
+		//    ( {expression::Expression.operand+=current}
+		//        operator='?' operand+=Expression ':' operand+=Expression
+		//    )?
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//conditionalOrExpression ({expression::Expression.operand+=current} operator='?' operand+=Expression ':'
-		//operand+=Expression)?
+		//conditionalOrExpression
+		//   ( {expression::Expression.operand+=current}
+		//       operator='?' operand+=Expression ':' operand+=Expression
+		//   )?
 		public Group getGroup() { return cGroup; }
 		
 		//conditionalOrExpression
 		public RuleCall getConditionalOrExpressionParserRuleCall_0() { return cConditionalOrExpressionParserRuleCall_0; }
 		
-		//({expression::Expression.operand+=current} operator='?' operand+=Expression ':' operand+=Expression)?
+		//( {expression::Expression.operand+=current}
+		//    operator='?' operand+=Expression ':' operand+=Expression
+		//)?
 		public Group getGroup_1() { return cGroup_1; }
 		
 		//{expression::Expression.operand+=current}
@@ -719,29 +794,38 @@
 		private final Assignment cOperandAssignment_1_3_1 = (Assignment)cGroup_1_3.eContents().get(1);
 		private final RuleCall cOperandConditionalAndExpressionParserRuleCall_1_3_1_0 = (RuleCall)cOperandAssignment_1_3_1.eContents().get(0);
 		
-		//conditionalOrExpression sew::WValueSpecification:
-		//	conditionalAndExpression ({expression::Expression.operand+=current} operator=('||' | 'or')
-		//	operand+=conditionalAndExpression (('||' | 'or') operand+=conditionalAndExpression)*)?;
+		//conditionalOrExpression returns sew::WValueSpecification
+		//: conditionalAndExpression
+		//    ( {expression::Expression.operand+=current}
+		//        operator=( '||' | 'or' ) operand+=conditionalAndExpression
+		//        ( ( '||' | 'or' ) operand+=conditionalAndExpression )*
+		//    )?
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//conditionalAndExpression ({expression::Expression.operand+=current} operator=('||' | 'or')
-		//operand+=conditionalAndExpression (('||' | 'or') operand+=conditionalAndExpression)*)?
+		//conditionalAndExpression
+		//   ( {expression::Expression.operand+=current}
+		//       operator=( '||' | 'or' ) operand+=conditionalAndExpression
+		//       ( ( '||' | 'or' ) operand+=conditionalAndExpression )*
+		//   )?
 		public Group getGroup() { return cGroup; }
 		
 		//conditionalAndExpression
 		public RuleCall getConditionalAndExpressionParserRuleCall_0() { return cConditionalAndExpressionParserRuleCall_0; }
 		
-		//({expression::Expression.operand+=current} operator=('||' | 'or') operand+=conditionalAndExpression (('||' | 'or')
-		//operand+=conditionalAndExpression)*)?
+		//( {expression::Expression.operand+=current}
+		//    operator=( '||' | 'or' ) operand+=conditionalAndExpression
+		//    ( ( '||' | 'or' ) operand+=conditionalAndExpression )*
+		//)?
 		public Group getGroup_1() { return cGroup_1; }
 		
 		//{expression::Expression.operand+=current}
 		public Action getExpressionOperandAction_1_0() { return cExpressionOperandAction_1_0; }
 		
-		//operator=('||' | 'or')
+		//operator=( '||' | 'or' )
 		public Assignment getOperatorAssignment_1_1() { return cOperatorAssignment_1_1; }
 		
-		//('||' | 'or')
+		//( '||' | 'or' )
 		public Alternatives getOperatorAlternatives_1_1_0() { return cOperatorAlternatives_1_1_0; }
 		
 		//'||'
@@ -756,10 +840,10 @@
 		//conditionalAndExpression
 		public RuleCall getOperandConditionalAndExpressionParserRuleCall_1_2_0() { return cOperandConditionalAndExpressionParserRuleCall_1_2_0; }
 		
-		//(('||' | 'or') operand+=conditionalAndExpression)*
+		//( ( '||' | 'or' ) operand+=conditionalAndExpression )*
 		public Group getGroup_1_3() { return cGroup_1_3; }
 		
-		//('||' | 'or')
+		//( '||' | 'or' )
 		public Alternatives getAlternatives_1_3_0() { return cAlternatives_1_3_0; }
 		
 		//'||'
@@ -793,29 +877,38 @@
 		private final Assignment cOperandAssignment_1_3_1 = (Assignment)cGroup_1_3.eContents().get(1);
 		private final RuleCall cOperandEqualityExpressionParserRuleCall_1_3_1_0 = (RuleCall)cOperandAssignment_1_3_1.eContents().get(0);
 		
-		//conditionalAndExpression sew::WValueSpecification:
-		//	equalityExpression ({expression::Expression.operand+=current} operator=('&&' | 'and') operand+=equalityExpression
-		//	(('&&' | 'and') operand+=equalityExpression)*)?;
+		//conditionalAndExpression returns sew::WValueSpecification
+		//: equalityExpression
+		//    ( {expression::Expression.operand+=current}
+		//        operator=( '&&' | 'and' ) operand+=equalityExpression
+		//        ( ( '&&' | 'and' ) operand+=equalityExpression )*
+		//    )?
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//equalityExpression ({expression::Expression.operand+=current} operator=('&&' | 'and') operand+=equalityExpression (('&&'
-		//| 'and') operand+=equalityExpression)*)?
+		//equalityExpression
+		//   ( {expression::Expression.operand+=current}
+		//       operator=( '&&' | 'and' ) operand+=equalityExpression
+		//       ( ( '&&' | 'and' ) operand+=equalityExpression )*
+		//   )?
 		public Group getGroup() { return cGroup; }
 		
 		//equalityExpression
 		public RuleCall getEqualityExpressionParserRuleCall_0() { return cEqualityExpressionParserRuleCall_0; }
 		
-		//({expression::Expression.operand+=current} operator=('&&' | 'and') operand+=equalityExpression (('&&' | 'and')
-		//operand+=equalityExpression)*)?
+		//( {expression::Expression.operand+=current}
+		//    operator=( '&&' | 'and' ) operand+=equalityExpression
+		//    ( ( '&&' | 'and' ) operand+=equalityExpression )*
+		//)?
 		public Group getGroup_1() { return cGroup_1; }
 		
 		//{expression::Expression.operand+=current}
 		public Action getExpressionOperandAction_1_0() { return cExpressionOperandAction_1_0; }
 		
-		//operator=('&&' | 'and')
+		//operator=( '&&' | 'and' )
 		public Assignment getOperatorAssignment_1_1() { return cOperatorAssignment_1_1; }
 		
-		//('&&' | 'and')
+		//( '&&' | 'and' )
 		public Alternatives getOperatorAlternatives_1_1_0() { return cOperatorAlternatives_1_1_0; }
 		
 		//'&&'
@@ -830,10 +923,10 @@
 		//equalityExpression
 		public RuleCall getOperandEqualityExpressionParserRuleCall_1_2_0() { return cOperandEqualityExpressionParserRuleCall_1_2_0; }
 		
-		//(('&&' | 'and') operand+=equalityExpression)*
+		//( ( '&&' | 'and' ) operand+=equalityExpression )*
 		public Group getGroup_1_3() { return cGroup_1_3; }
 		
-		//('&&' | 'and')
+		//( '&&' | 'and' )
 		public Alternatives getAlternatives_1_3_0() { return cAlternatives_1_3_0; }
 		
 		//'&&'
@@ -864,29 +957,38 @@
 		private final Assignment cOperandAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2);
 		private final RuleCall cOperandRelationalExpressionParserRuleCall_1_2_0 = (RuleCall)cOperandAssignment_1_2.eContents().get(0);
 		
-		//equalityExpression sew::WValueSpecification:
-		//	relationalExpression ({expression::Expression.operand+=current} operator=('==' | '!=' | '===' | '=!=' | '=/=')
-		//	operand+=relationalExpression)?;
+		//equalityExpression returns sew::WValueSpecification
+		//: relationalExpression
+		//    ( {expression::Expression.operand+=current}
+		//        operator=( '==' | '!=' | '===' | '=!=' | '=/=' )
+		//        operand+=relationalExpression
+		//    )?
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//relationalExpression ({expression::Expression.operand+=current} operator=('==' | '!=' | '===' | '=!=' | '=/=')
-		//operand+=relationalExpression)?
+		//relationalExpression
+		//   ( {expression::Expression.operand+=current}
+		//       operator=( '==' | '!=' | '===' | '=!=' | '=/=' )
+		//       operand+=relationalExpression
+		//   )?
 		public Group getGroup() { return cGroup; }
 		
 		//relationalExpression
 		public RuleCall getRelationalExpressionParserRuleCall_0() { return cRelationalExpressionParserRuleCall_0; }
 		
-		//({expression::Expression.operand+=current} operator=('==' | '!=' | '===' | '=!=' | '=/=')
-		//operand+=relationalExpression)?
+		//( {expression::Expression.operand+=current}
+		//    operator=( '==' | '!=' | '===' | '=!=' | '=/=' )
+		//    operand+=relationalExpression
+		//)?
 		public Group getGroup_1() { return cGroup_1; }
 		
 		//{expression::Expression.operand+=current}
 		public Action getExpressionOperandAction_1_0() { return cExpressionOperandAction_1_0; }
 		
-		//operator=('==' | '!=' | '===' | '=!=' | '=/=')
+		//operator=( '==' | '!=' | '===' | '=!=' | '=/=' )
 		public Assignment getOperatorAssignment_1_1() { return cOperatorAssignment_1_1; }
 		
-		//('==' | '!=' | '===' | '=!=' | '=/=')
+		//( '==' | '!=' | '===' | '=!=' | '=/=' )
 		public Alternatives getOperatorAlternatives_1_1_0() { return cOperatorAlternatives_1_1_0; }
 		
 		//'=='
@@ -925,28 +1027,38 @@
 		private final Assignment cOperandAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2);
 		private final RuleCall cOperandAdditiveExpressionParserRuleCall_1_2_0 = (RuleCall)cOperandAssignment_1_2.eContents().get(0);
 		
-		//relationalExpression sew::WValueSpecification:
-		//	additiveExpression ({expression::Expression.operand+=current} operator=('<' | '<=' | '>' | '>=')
-		//	operand+=additiveExpression)?;
+		//relationalExpression returns sew::WValueSpecification
+		//: additiveExpression
+		//    ( {expression::Expression.operand+=current}
+		//        operator=( '<' | '<=' | '>' | '>=' )
+		//        operand+=additiveExpression
+		//    )?
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//additiveExpression ({expression::Expression.operand+=current} operator=('<' | '<=' | '>' | '>=')
-		//operand+=additiveExpression)?
+		//additiveExpression
+		//   ( {expression::Expression.operand+=current}
+		//       operator=( '<' | '<=' | '>' | '>=' )
+		//       operand+=additiveExpression
+		//   )?
 		public Group getGroup() { return cGroup; }
 		
 		//additiveExpression
 		public RuleCall getAdditiveExpressionParserRuleCall_0() { return cAdditiveExpressionParserRuleCall_0; }
 		
-		//({expression::Expression.operand+=current} operator=('<' | '<=' | '>' | '>=') operand+=additiveExpression)?
+		//( {expression::Expression.operand+=current}
+		//    operator=( '<' | '<=' | '>' | '>=' )
+		//    operand+=additiveExpression
+		//)?
 		public Group getGroup_1() { return cGroup_1; }
 		
 		//{expression::Expression.operand+=current}
 		public Action getExpressionOperandAction_1_0() { return cExpressionOperandAction_1_0; }
 		
-		//operator=('<' | '<=' | '>' | '>=')
+		//operator=( '<' | '<=' | '>' | '>=' )
 		public Assignment getOperatorAssignment_1_1() { return cOperatorAssignment_1_1; }
 		
-		//('<' | '<=' | '>' | '>=')
+		//( '<' | '<=' | '>' | '>=' )
 		public Alternatives getOperatorAlternatives_1_1_0() { return cOperatorAlternatives_1_1_0; }
 		
 		//'<'
@@ -982,20 +1094,38 @@
 		private final Assignment cOperandAssignment_1_3_1 = (Assignment)cGroup_1_3.eContents().get(1);
 		private final RuleCall cOperandMultiplicativeExpressionParserRuleCall_1_3_1_0 = (RuleCall)cOperandAssignment_1_3_1.eContents().get(0);
 		
-		//additiveExpression sew::WValueSpecification:
-		//	multiplicativeExpression ({expression::Expression.operand+=current} operator='+' operand+=multiplicativeExpression
-		//	('+' operand+=multiplicativeExpression)*)?;
+		//additiveExpression returns sew::WValueSpecification
+		//: multiplicativeExpression
+		//    ( ( {expression::Expression.operand+=current}
+		//        operator='+' operand+=multiplicativeExpression
+		//        ( '+' operand+=multiplicativeExpression )* )
+		////    | ( {expression::Expression.operand+=current}
+		////        operator='-' operand+=multiplicativeExpression
+		////        ( '-' operand+=multiplicativeExpression )* )
+		//    )?
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//multiplicativeExpression ({expression::Expression.operand+=current} operator='+' operand+=multiplicativeExpression ('+'
-		//operand+=multiplicativeExpression)*)?
+		// multiplicativeExpression
+		//    ( ( {expression::Expression.operand+=current}
+		//        operator='+' operand+=multiplicativeExpression
+		//        ( '+' operand+=multiplicativeExpression )* )
+		////    | ( {expression::Expression.operand+=current}
+		////        operator='-' operand+=multiplicativeExpression
+		////        ( '-' operand+=multiplicativeExpression )* )
+		//    )?
 		public Group getGroup() { return cGroup; }
 		
 		//multiplicativeExpression
 		public RuleCall getMultiplicativeExpressionParserRuleCall_0() { return cMultiplicativeExpressionParserRuleCall_0; }
 		
-		//({expression::Expression.operand+=current} operator='+' operand+=multiplicativeExpression ('+'
-		//operand+=multiplicativeExpression)*)?
+		//    ( ( {expression::Expression.operand+=current}
+		//        operator='+' operand+=multiplicativeExpression
+		//        ( '+' operand+=multiplicativeExpression )* )
+		////    | ( {expression::Expression.operand+=current}
+		////        operator='-' operand+=multiplicativeExpression
+		////        ( '-' operand+=multiplicativeExpression )* )
+		//    )?
 		public Group getGroup_1() { return cGroup_1; }
 		
 		//{expression::Expression.operand+=current}
@@ -1013,7 +1143,7 @@
 		//multiplicativeExpression
 		public RuleCall getOperandMultiplicativeExpressionParserRuleCall_1_2_0() { return cOperandMultiplicativeExpressionParserRuleCall_1_2_0; }
 		
-		//('+' operand+=multiplicativeExpression)*
+		//( '+' operand+=multiplicativeExpression )*
 		public Group getGroup_1_3() { return cGroup_1_3; }
 		
 		//'+'
@@ -1071,31 +1201,61 @@
 		private final Assignment cOperandAssignment_1_3_3_1 = (Assignment)cGroup_1_3_3.eContents().get(1);
 		private final RuleCall cOperandPrimaryExpressionParserRuleCall_1_3_3_1_0 = (RuleCall)cOperandAssignment_1_3_3_1.eContents().get(0);
 		
-		//multiplicativeExpression sew::WValueSpecification:
-		//	primaryExpression ({expression::Expression.operand+=current} operator='*' operand+=primaryExpression ('*'
-		//	operand+=primaryExpression)* | {expression::Expression.operand+=current} operator='**' operand+=primaryExpression
-		//	('**' operand+=primaryExpression)* | {expression::Expression.operand+=current} operator='/' operand+=primaryExpression
-		//	('/' operand+=primaryExpression)* | {expression::Expression.operand+=current} operator='%' operand+=primaryExpression
-		//	('%' operand+=primaryExpression)*)?;
+		//multiplicativeExpression returns sew::WValueSpecification
+		//: primaryExpression
+		//    ( ( {expression::Expression.operand+=current}
+		//        operator='*' operand+=primaryExpression
+		//        ( '*' operand+=primaryExpression )* )
+		//    | ( {expression::Expression.operand+=current}
+		//        operator='**' operand+=primaryExpression
+		//        ( '**' operand+=primaryExpression )* )
+		//    | ( {expression::Expression.operand+=current}
+		//        operator='/' operand+=primaryExpression
+		//        ( '/' operand+=primaryExpression )* )
+		//    | ( {expression::Expression.operand+=current}
+		//        operator='%' operand+=primaryExpression
+		//        ( '%' operand+=primaryExpression )* )
+		//    )?
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//primaryExpression ({expression::Expression.operand+=current} operator='*' operand+=primaryExpression ('*'
-		//operand+=primaryExpression)* | {expression::Expression.operand+=current} operator='**' operand+=primaryExpression ('**'
-		//operand+=primaryExpression)* | {expression::Expression.operand+=current} operator='/' operand+=primaryExpression ('/'
-		//operand+=primaryExpression)* | {expression::Expression.operand+=current} operator='%' operand+=primaryExpression ('%'
-		//operand+=primaryExpression)*)?
+		//primaryExpression
+		//   ( ( {expression::Expression.operand+=current}
+		//       operator='*' operand+=primaryExpression
+		//       ( '*' operand+=primaryExpression )* )
+		//   | ( {expression::Expression.operand+=current}
+		//       operator='**' operand+=primaryExpression
+		//       ( '**' operand+=primaryExpression )* )
+		//   | ( {expression::Expression.operand+=current}
+		//       operator='/' operand+=primaryExpression
+		//       ( '/' operand+=primaryExpression )* )
+		//   | ( {expression::Expression.operand+=current}
+		//       operator='%' operand+=primaryExpression
+		//       ( '%' operand+=primaryExpression )* )
+		//   )?
 		public Group getGroup() { return cGroup; }
 		
 		//primaryExpression
 		public RuleCall getPrimaryExpressionParserRuleCall_0() { return cPrimaryExpressionParserRuleCall_0; }
 		
-		//({expression::Expression.operand+=current} operator='*' operand+=primaryExpression ('*' operand+=primaryExpression)* |
-		//{expression::Expression.operand+=current} operator='**' operand+=primaryExpression ('**' operand+=primaryExpression)* |
-		//{expression::Expression.operand+=current} operator='/' operand+=primaryExpression ('/' operand+=primaryExpression)* |
-		//{expression::Expression.operand+=current} operator='%' operand+=primaryExpression ('%' operand+=primaryExpression)*)?
+		//( ( {expression::Expression.operand+=current}
+		//    operator='*' operand+=primaryExpression
+		//    ( '*' operand+=primaryExpression )* )
+		//| ( {expression::Expression.operand+=current}
+		//    operator='**' operand+=primaryExpression
+		//    ( '**' operand+=primaryExpression )* )
+		//| ( {expression::Expression.operand+=current}
+		//    operator='/' operand+=primaryExpression
+		//    ( '/' operand+=primaryExpression )* )
+		//| ( {expression::Expression.operand+=current}
+		//    operator='%' operand+=primaryExpression
+		//    ( '%' operand+=primaryExpression )* )
+		//)?
 		public Alternatives getAlternatives_1() { return cAlternatives_1; }
 		
-		//{expression::Expression.operand+=current} operator='*' operand+=primaryExpression ('*' operand+=primaryExpression)*
+		//( {expression::Expression.operand+=current}
+		//       operator='*' operand+=primaryExpression
+		//       ( '*' operand+=primaryExpression )* )
 		public Group getGroup_1_0() { return cGroup_1_0; }
 		
 		//{expression::Expression.operand+=current}
@@ -1113,7 +1273,7 @@
 		//primaryExpression
 		public RuleCall getOperandPrimaryExpressionParserRuleCall_1_0_2_0() { return cOperandPrimaryExpressionParserRuleCall_1_0_2_0; }
 		
-		//('*' operand+=primaryExpression)*
+		//( '*' operand+=primaryExpression )*
 		public Group getGroup_1_0_3() { return cGroup_1_0_3; }
 		
 		//'*'
@@ -1125,7 +1285,9 @@
 		//primaryExpression
 		public RuleCall getOperandPrimaryExpressionParserRuleCall_1_0_3_1_0() { return cOperandPrimaryExpressionParserRuleCall_1_0_3_1_0; }
 		
-		//{expression::Expression.operand+=current} operator='**' operand+=primaryExpression ('**' operand+=primaryExpression)*
+		//( {expression::Expression.operand+=current}
+		//       operator='**' operand+=primaryExpression
+		//       ( '**' operand+=primaryExpression )* )
 		public Group getGroup_1_1() { return cGroup_1_1; }
 		
 		//{expression::Expression.operand+=current}
@@ -1143,7 +1305,7 @@
 		//primaryExpression
 		public RuleCall getOperandPrimaryExpressionParserRuleCall_1_1_2_0() { return cOperandPrimaryExpressionParserRuleCall_1_1_2_0; }
 		
-		//('**' operand+=primaryExpression)*
+		//( '**' operand+=primaryExpression )*
 		public Group getGroup_1_1_3() { return cGroup_1_1_3; }
 		
 		//'**'
@@ -1155,7 +1317,9 @@
 		//primaryExpression
 		public RuleCall getOperandPrimaryExpressionParserRuleCall_1_1_3_1_0() { return cOperandPrimaryExpressionParserRuleCall_1_1_3_1_0; }
 		
-		//{expression::Expression.operand+=current} operator='/' operand+=primaryExpression ('/' operand+=primaryExpression)*
+		//( {expression::Expression.operand+=current}
+		//       operator='/' operand+=primaryExpression
+		//       ( '/' operand+=primaryExpression )* )
 		public Group getGroup_1_2() { return cGroup_1_2; }
 		
 		//{expression::Expression.operand+=current}
@@ -1173,7 +1337,7 @@
 		//primaryExpression
 		public RuleCall getOperandPrimaryExpressionParserRuleCall_1_2_2_0() { return cOperandPrimaryExpressionParserRuleCall_1_2_2_0; }
 		
-		//('/' operand+=primaryExpression)*
+		//( '/' operand+=primaryExpression )*
 		public Group getGroup_1_2_3() { return cGroup_1_2_3; }
 		
 		//'/'
@@ -1185,7 +1349,9 @@
 		//primaryExpression
 		public RuleCall getOperandPrimaryExpressionParserRuleCall_1_2_3_1_0() { return cOperandPrimaryExpressionParserRuleCall_1_2_3_1_0; }
 		
-		//{expression::Expression.operand+=current} operator='%' operand+=primaryExpression ('%' operand+=primaryExpression)*
+		//( {expression::Expression.operand+=current}
+		//       operator='%' operand+=primaryExpression
+		//       ( '%' operand+=primaryExpression )* )
 		public Group getGroup_1_3() { return cGroup_1_3; }
 		
 		//{expression::Expression.operand+=current}
@@ -1203,7 +1369,7 @@
 		//primaryExpression
 		public RuleCall getOperandPrimaryExpressionParserRuleCall_1_3_2_0() { return cOperandPrimaryExpressionParserRuleCall_1_3_2_0; }
 		
-		//('%' operand+=primaryExpression)*
+		//( '%' operand+=primaryExpression )*
 		public Group getGroup_1_3_3() { return cGroup_1_3_3; }
 		
 		//'%'
@@ -1243,15 +1409,20 @@
 		private final Keyword cRightParenthesisKeyword_3_2 = (Keyword)cGroup_3.eContents().get(2);
 		private final RuleCall cLiteralExpressionParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
 		
-		//primaryExpression sew::WValueSpecification:
-		//	'+' primaryExpression
-		//	| {expression::Expression} (operator='-' operand+=primaryExpression) | {expression::Expression} (operator=('!' |
-		//	'not') operand+=primaryExpression) | '(' Expression ')'
-		//	| LiteralExpression;
+		//primaryExpression returns sew::WValueSpecification
+		//: '+' primaryExpression
+		//| { expression::Expression }( operator='-' operand+=primaryExpression )
+		//| { expression::Expression }( operator=( '!' | 'not' ) operand+=primaryExpression )
+		//| '(' Expression ')'
+		//| LiteralExpression
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//'+' primaryExpression | {expression::Expression} (operator='-' operand+=primaryExpression) | {expression::Expression}
-		//(operator=('!' | 'not') operand+=primaryExpression) | '(' Expression ')' | LiteralExpression
+		// '+' primaryExpression
+		//| { expression::Expression }( operator='-' operand+=primaryExpression )
+		//| { expression::Expression }( operator=( '!' | 'not' ) operand+=primaryExpression )
+		//| '(' Expression ')'
+		//| LiteralExpression
 		public Alternatives getAlternatives() { return cAlternatives; }
 		
 		//'+' primaryExpression
@@ -1263,13 +1434,13 @@
 		//primaryExpression
 		public RuleCall getPrimaryExpressionParserRuleCall_0_1() { return cPrimaryExpressionParserRuleCall_0_1; }
 		
-		//{expression::Expression} (operator='-' operand+=primaryExpression)
+		//{ expression::Expression }( operator='-' operand+=primaryExpression )
 		public Group getGroup_1() { return cGroup_1; }
 		
-		//{expression::Expression}
+		//{ expression::Expression }
 		public Action getExpressionAction_1_0() { return cExpressionAction_1_0; }
 		
-		//(operator='-' operand+=primaryExpression)
+		//( operator='-' operand+=primaryExpression )
 		public Group getGroup_1_1() { return cGroup_1_1; }
 		
 		//operator='-'
@@ -1284,19 +1455,19 @@
 		//primaryExpression
 		public RuleCall getOperandPrimaryExpressionParserRuleCall_1_1_1_0() { return cOperandPrimaryExpressionParserRuleCall_1_1_1_0; }
 		
-		//{expression::Expression} (operator=('!' | 'not') operand+=primaryExpression)
+		//{ expression::Expression }( operator=( '!' | 'not' ) operand+=primaryExpression )
 		public Group getGroup_2() { return cGroup_2; }
 		
-		//{expression::Expression}
+		//{ expression::Expression }
 		public Action getExpressionAction_2_0() { return cExpressionAction_2_0; }
 		
-		//(operator=('!' | 'not') operand+=primaryExpression)
+		//( operator=( '!' | 'not' ) operand+=primaryExpression )
 		public Group getGroup_2_1() { return cGroup_2_1; }
 		
-		//operator=('!' | 'not')
+		//operator=( '!' | 'not' )
 		public Assignment getOperatorAssignment_2_1_0() { return cOperatorAssignment_2_1_0; }
 		
-		//('!' | 'not')
+		//( '!' | 'not' )
 		public Alternatives getOperatorAlternatives_2_1_0_0() { return cOperatorAlternatives_2_1_0_0; }
 		
 		//'!'
@@ -1341,24 +1512,34 @@
 		private final RuleCall cLiteralVariableReferenceParserRuleCall_9 = (RuleCall)cAlternatives.eContents().get(9);
 		private final RuleCall cLiteralInstanceReferenceParserRuleCall_10 = (RuleCall)cAlternatives.eContents().get(10);
 		
-		//LiteralExpression sew::WValueSpecification:
-		//	LiteralBooleanValue
-		//	| LiteralCharacterValue
-		//	| LiteralIntegerValue
-		//	| LiteralRationalValue
-		//	| LiteralFloatValue
-		//	//| LiteralRealValue
-		//	| LiteralStringValue
-		//	| LiteralNullValue
-		//	| LiteralArrayValue
-		//	| LiteralObjectReference
-		//	| LiteralVariableReference
-		//	| LiteralInstanceReference;
+		//LiteralExpression returns sew::WValueSpecification
+		//: LiteralBooleanValue
+		//| LiteralCharacterValue
+		//| LiteralIntegerValue
+		//| LiteralRationalValue
+		//| LiteralFloatValue
+		////| LiteralRealValue
+		//| LiteralStringValue
+		//| LiteralNullValue
+		//| LiteralArrayValue
+		//| LiteralObjectReference
+		//| LiteralVariableReference
+		//| LiteralInstanceReference
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//LiteralBooleanValue | LiteralCharacterValue | LiteralIntegerValue | LiteralRationalValue | LiteralFloatValue //| LiteralRealValue
-		//| LiteralStringValue | LiteralNullValue | LiteralArrayValue | LiteralObjectReference | LiteralVariableReference |
-		//LiteralInstanceReference
+		// LiteralBooleanValue
+		//| LiteralCharacterValue
+		//| LiteralIntegerValue
+		//| LiteralRationalValue
+		//| LiteralFloatValue
+		////| LiteralRealValue
+		//| LiteralStringValue
+		//| LiteralNullValue
+		//| LiteralArrayValue
+		//| LiteralObjectReference
+		//| LiteralVariableReference
+		//| LiteralInstanceReference
 		public Alternatives getAlternatives() { return cAlternatives; }
 		
 		//LiteralBooleanValue
@@ -1411,13 +1592,22 @@
 		//////////////////////////////////////////////////////////////////////////////////
 		//// Array of Literal Specification
 		//////////////////////////////////////////////////////////////////////////////////
-		//LiteralArrayValue expression::LiteralArrayValue:
-		//	{expression::LiteralArrayValue}
-		//	'[' (values+=ValueSpecification (',' values+=ValueSpecification)*)?
-		//	']';
+		//LiteralArrayValue  returns expression::LiteralArrayValue
+		//: {expression::LiteralArrayValue}
+		//    '['
+		//        ( values+=ValueSpecification
+		//            ( ',' values+=ValueSpecification )*
+		//        )?
+		//    ']'
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{expression::LiteralArrayValue} '[' (values+=ValueSpecification (',' values+=ValueSpecification)*)? ']'
+		//{expression::LiteralArrayValue}
+		//   '['
+		//       ( values+=ValueSpecification
+		//           ( ',' values+=ValueSpecification )*
+		//       )?
+		//   ']'
 		public Group getGroup() { return cGroup; }
 		
 		//{expression::LiteralArrayValue}
@@ -1426,7 +1616,9 @@
 		//'['
 		public Keyword getLeftSquareBracketKeyword_1() { return cLeftSquareBracketKeyword_1; }
 		
-		//(values+=ValueSpecification (',' values+=ValueSpecification)*)?
+		//( values+=ValueSpecification
+		//    ( ',' values+=ValueSpecification )*
+		//)?
 		public Group getGroup_2() { return cGroup_2; }
 		
 		//values+=ValueSpecification
@@ -1435,7 +1627,7 @@
 		//ValueSpecification
 		public RuleCall getValuesValueSpecificationParserRuleCall_2_0_0() { return cValuesValueSpecificationParserRuleCall_2_0_0; }
 		
-		//(',' values+=ValueSpecification)*
+		//( ',' values+=ValueSpecification )*
 		public Group getGroup_2_1() { return cGroup_2_1; }
 		
 		//','
@@ -1464,17 +1656,18 @@
 		//////////////////////////////////////////////////////////////////////////////////
 		//// Literal Object Reference Specification
 		//////////////////////////////////////////////////////////////////////////////////
-		//LiteralObjectReference expression::LiteralObjectReference:
-		//	'&'? (object=[sew::WObject|UFI] | symbol=UFI);
+		//LiteralObjectReference returns expression::LiteralObjectReference
+		//: ( '&' )? ( object=[sew::WObject|UFI] | symbol=UFI )
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//'&'? (object=[sew::WObject|UFI] | symbol=UFI)
+		//( '&' )? ( object=[sew::WObject|UFI] | symbol=UFI )
 		public Group getGroup() { return cGroup; }
 		
-		//'&'?
+		//( '&' )?
 		public Keyword getAmpersandKeyword_0() { return cAmpersandKeyword_0; }
 		
-		//(object=[sew::WObject|UFI] | symbol=UFI)
+		//( object=[sew::WObject|UFI] | symbol=UFI )
 		public Alternatives getAlternatives_1() { return cAlternatives_1; }
 		
 		//object=[sew::WObject|UFI]
@@ -1500,8 +1693,9 @@
 		//////////////////////////////////////////////////////////////////////////////////
 		//// Literal Specification
 		//////////////////////////////////////////////////////////////////////////////////
-		//LiteralBooleanValue expression::LiteralBooleanValue:
-		//	value=EBoolean;
+		//LiteralBooleanValue  returns expression::LiteralBooleanValue
+		//: value=EBoolean
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
 		//value=EBoolean
@@ -1515,8 +1709,9 @@
 		private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1);
 		private final RuleCall cValueECharParserRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0);
 		
-		//LiteralCharacterValue expression::LiteralCharacterValue:
-		//	value=EChar;
+		//LiteralCharacterValue  returns expression::LiteralCharacterValue
+		//: value=EChar
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
 		//value=EChar
@@ -1530,8 +1725,9 @@
 		private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1);
 		private final RuleCall cValueELongParserRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0);
 		
-		//LiteralIntegerValue expression::LiteralIntegerValue:
-		//	value=ELong;
+		//LiteralIntegerValue  returns expression::LiteralIntegerValue
+		//: value=ELong
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
 		//value=ELong
@@ -1549,8 +1745,9 @@
 		private final Assignment cDenominatorAssignment_2 = (Assignment)cGroup.eContents().get(2);
 		private final RuleCall cDenominatorELongParserRuleCall_2_0 = (RuleCall)cDenominatorAssignment_2.eContents().get(0);
 		
-		//LiteralRationalValue expression::LiteralRationalValue:
-		//	numerator=ELong '/' denominator=ELong;
+		//LiteralRationalValue  returns expression::LiteralRationalValue
+		//: numerator=ELong '/' denominator=ELong
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
 		//numerator=ELong '/' denominator=ELong
@@ -1576,8 +1773,9 @@
 		private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1);
 		private final RuleCall cValueEDoubleParserRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0);
 		
-		//LiteralFloatValue expression::LiteralFloatValue:
-		//	value=EDouble;
+		//LiteralFloatValue  returns expression::LiteralFloatValue
+		//: value=EDouble
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
 		//value=EDouble
@@ -1591,8 +1789,9 @@
 		private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1);
 		private final RuleCall cValueEBigDecimalParserRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0);
 		
-		//LiteralRealValue expression::LiteralRealValue:
-		//	value=EBigDecimal;
+		//LiteralRealValue  returns expression::LiteralRealValue
+		//: value=EBigDecimal
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
 		//value=EBigDecimal
@@ -1606,8 +1805,9 @@
 		private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1);
 		private final RuleCall cValueEStringParserRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0);
 		
-		//LiteralStringValue expression::LiteralStringValue:
-		//	value=EString;
+		//LiteralStringValue  returns expression::LiteralStringValue
+		//: value=EString
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
 		//value=EString
@@ -1627,12 +1827,14 @@
 		private final RuleCall cTypeXIDParserRuleCall_2_1_0 = (RuleCall)cTypeAssignment_2_1.eContents().get(0);
 		private final Keyword cGreaterThanSignKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
 		
-		//LiteralNullValue expression::LiteralNullValue:
-		//	{expression::LiteralNullValue}
-		//	'null' ('<' type=XID '>')?;
+		//LiteralNullValue  returns expression::LiteralNullValue
+		//: {expression::LiteralNullValue}
+		//    'null' ( '<' type=XID '>' )?
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{expression::LiteralNullValue} 'null' ('<' type=XID '>')?
+		//{expression::LiteralNullValue}
+		//   'null' ( '<' type=XID '>' )?
 		public Group getGroup() { return cGroup; }
 		
 		//{expression::LiteralNullValue}
@@ -1641,7 +1843,7 @@
 		//'null'
 		public Keyword getNullKeyword_1() { return cNullKeyword_1; }
 		
-		//('<' type=XID '>')?
+		//( '<' type=XID '>' )?
 		public Group getGroup_2() { return cGroup_2; }
 		
 		//'<'
@@ -1662,12 +1864,14 @@
 		private final RuleCall cLiteralTimeVariableParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
 		private final RuleCall cLiteralTimeDeltaVariableParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
 		
-		//LiteralVariableReference expression::LiteralReferenceValue:
-		//	LiteralTimeVariable
-		//	| LiteralTimeDeltaVariable;
+		//LiteralVariableReference returns expression::LiteralReferenceValue
+		//: LiteralTimeVariable
+		//| LiteralTimeDeltaVariable
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//LiteralTimeVariable | LiteralTimeDeltaVariable
+		// LiteralTimeVariable
+		//| LiteralTimeDeltaVariable
 		public Alternatives getAlternatives() { return cAlternatives; }
 		
 		//LiteralTimeVariable
@@ -1683,17 +1887,18 @@
 		private final Assignment cSymbolAssignment_1 = (Assignment)cGroup.eContents().get(1);
 		private final Keyword cSymbolTimeKeyword_1_0 = (Keyword)cSymbolAssignment_1.eContents().get(0);
 		
-		//LiteralTimeVariable expression::LiteralTimeVariable:
-		//	{expression::LiteralTimeVariable} symbol='$time';
+		//LiteralTimeVariable returns expression::LiteralTimeVariable
+		//    : {expression::LiteralTimeVariable} ( symbol='$time' )
+		//    ;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{expression::LiteralTimeVariable} symbol='$time'
+		//{expression::LiteralTimeVariable} ( symbol='$time' )
 		public Group getGroup() { return cGroup; }
 		
 		//{expression::LiteralTimeVariable}
 		public Action getLiteralTimeVariableAction_0() { return cLiteralTimeVariableAction_0; }
 		
-		//symbol='$time'
+		//( symbol='$time' )
 		public Assignment getSymbolAssignment_1() { return cSymbolAssignment_1; }
 		
 		//'$time'
@@ -1706,17 +1911,18 @@
 		private final Assignment cSymbolAssignment_1 = (Assignment)cGroup.eContents().get(1);
 		private final Keyword cSymbolDeltaKeyword_1_0 = (Keyword)cSymbolAssignment_1.eContents().get(0);
 		
-		//LiteralTimeDeltaVariable expression::LiteralTimeDeltaVariable:
-		//	{expression::LiteralTimeDeltaVariable} symbol='$delta';
+		//LiteralTimeDeltaVariable returns expression::LiteralTimeDeltaVariable
+		//    : {expression::LiteralTimeDeltaVariable} ( symbol='$delta' )
+		//    ;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{expression::LiteralTimeDeltaVariable} symbol='$delta'
+		//{expression::LiteralTimeDeltaVariable} ( symbol='$delta' )
 		public Group getGroup() { return cGroup; }
 		
 		//{expression::LiteralTimeDeltaVariable}
 		public Action getLiteralTimeDeltaVariableAction_0() { return cLiteralTimeDeltaVariableAction_0; }
 		
-		//symbol='$delta'
+		//( symbol='$delta' )
 		public Assignment getSymbolAssignment_1() { return cSymbolAssignment_1; }
 		
 		//'$delta'
@@ -1732,17 +1938,22 @@
 		private final RuleCall cLiteralSystemInstanceParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
 		private final RuleCall cLiteralEnvInstanceParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
 		
-		//LiteralInstanceReference expression::LiteralReferenceValue:
-		//	LiteralThisInstance
-		//	| LiteralSelfInstance
-		//	| LiteralParentInstance
-		//	| LiteralSuperInstance
-		//	| LiteralSystemInstance
-		//	| LiteralEnvInstance;
+		//LiteralInstanceReference returns expression::LiteralReferenceValue
+		//: LiteralThisInstance
+		//| LiteralSelfInstance
+		//| LiteralParentInstance
+		//| LiteralSuperInstance
+		//| LiteralSystemInstance
+		//| LiteralEnvInstance
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//LiteralThisInstance | LiteralSelfInstance | LiteralParentInstance | LiteralSuperInstance | LiteralSystemInstance |
-		//LiteralEnvInstance
+		// LiteralThisInstance
+		//| LiteralSelfInstance
+		//| LiteralParentInstance
+		//| LiteralSuperInstance
+		//| LiteralSystemInstance
+		//| LiteralEnvInstance
 		public Alternatives getAlternatives() { return cAlternatives; }
 		
 		//LiteralThisInstance
@@ -1770,17 +1981,18 @@
 		private final Assignment cSymbolAssignment_1 = (Assignment)cGroup.eContents().get(1);
 		private final Keyword cSymbolThisKeyword_1_0 = (Keyword)cSymbolAssignment_1.eContents().get(0);
 		
-		//LiteralThisInstance expression::LiteralThisInstance:
-		//	{expression::LiteralThisInstance} symbol='$this';
+		//LiteralThisInstance returns expression::LiteralThisInstance
+		//: {expression::LiteralThisInstance} ( symbol='$this' )
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{expression::LiteralThisInstance} symbol='$this'
+		//{expression::LiteralThisInstance} ( symbol='$this' )
 		public Group getGroup() { return cGroup; }
 		
 		//{expression::LiteralThisInstance}
 		public Action getLiteralThisInstanceAction_0() { return cLiteralThisInstanceAction_0; }
 		
-		//symbol='$this'
+		//( symbol='$this' )
 		public Assignment getSymbolAssignment_1() { return cSymbolAssignment_1; }
 		
 		//'$this'
@@ -1793,17 +2005,18 @@
 		private final Assignment cSymbolAssignment_1 = (Assignment)cGroup.eContents().get(1);
 		private final Keyword cSymbolSelfKeyword_1_0 = (Keyword)cSymbolAssignment_1.eContents().get(0);
 		
-		//LiteralSelfInstance expression::LiteralSelfInstance:
-		//	{expression::LiteralSelfInstance} symbol='$self';
+		//LiteralSelfInstance returns expression::LiteralSelfInstance
+		//: {expression::LiteralSelfInstance} ( symbol='$self' )
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{expression::LiteralSelfInstance} symbol='$self'
+		//{expression::LiteralSelfInstance} ( symbol='$self' )
 		public Group getGroup() { return cGroup; }
 		
 		//{expression::LiteralSelfInstance}
 		public Action getLiteralSelfInstanceAction_0() { return cLiteralSelfInstanceAction_0; }
 		
-		//symbol='$self'
+		//( symbol='$self' )
 		public Assignment getSymbolAssignment_1() { return cSymbolAssignment_1; }
 		
 		//'$self'
@@ -1816,17 +2029,18 @@
 		private final Assignment cSymbolAssignment_1 = (Assignment)cGroup.eContents().get(1);
 		private final Keyword cSymbolParentKeyword_1_0 = (Keyword)cSymbolAssignment_1.eContents().get(0);
 		
-		//LiteralParentInstance expression::LiteralParentInstance:
-		//	{expression::LiteralParentInstance} symbol='$parent';
+		//LiteralParentInstance returns expression::LiteralParentInstance
+		//: {expression::LiteralParentInstance} ( symbol='$parent' )
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{expression::LiteralParentInstance} symbol='$parent'
+		//{expression::LiteralParentInstance} ( symbol='$parent' )
 		public Group getGroup() { return cGroup; }
 		
 		//{expression::LiteralParentInstance}
 		public Action getLiteralParentInstanceAction_0() { return cLiteralParentInstanceAction_0; }
 		
-		//symbol='$parent'
+		//( symbol='$parent' )
 		public Assignment getSymbolAssignment_1() { return cSymbolAssignment_1; }
 		
 		//'$parent'
@@ -1839,17 +2053,18 @@
 		private final Assignment cSymbolAssignment_1 = (Assignment)cGroup.eContents().get(1);
 		private final Keyword cSymbolSuperKeyword_1_0 = (Keyword)cSymbolAssignment_1.eContents().get(0);
 		
-		//LiteralSuperInstance expression::LiteralSuperInstance:
-		//	{expression::LiteralSuperInstance} symbol='$super';
+		//LiteralSuperInstance returns expression::LiteralSuperInstance
+		//: {expression::LiteralSuperInstance} ( symbol='$super' )
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{expression::LiteralSuperInstance} symbol='$super'
+		//{expression::LiteralSuperInstance} ( symbol='$super' )
 		public Group getGroup() { return cGroup; }
 		
 		//{expression::LiteralSuperInstance}
 		public Action getLiteralSuperInstanceAction_0() { return cLiteralSuperInstanceAction_0; }
 		
-		//symbol='$super'
+		//( symbol='$super' )
 		public Assignment getSymbolAssignment_1() { return cSymbolAssignment_1; }
 		
 		//'$super'
@@ -1862,17 +2077,18 @@
 		private final Assignment cSymbolAssignment_1 = (Assignment)cGroup.eContents().get(1);
 		private final Keyword cSymbolSystemKeyword_1_0 = (Keyword)cSymbolAssignment_1.eContents().get(0);
 		
-		//LiteralSystemInstance expression::LiteralSystemInstance:
-		//	{expression::LiteralSystemInstance} symbol='$system';
+		//LiteralSystemInstance returns expression::LiteralSystemInstance
+		//: {expression::LiteralSystemInstance} ( symbol='$system' )
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{expression::LiteralSystemInstance} symbol='$system'
+		//{expression::LiteralSystemInstance} ( symbol='$system' )
 		public Group getGroup() { return cGroup; }
 		
 		//{expression::LiteralSystemInstance}
 		public Action getLiteralSystemInstanceAction_0() { return cLiteralSystemInstanceAction_0; }
 		
-		//symbol='$system'
+		//( symbol='$system' )
 		public Assignment getSymbolAssignment_1() { return cSymbolAssignment_1; }
 		
 		//'$system'
@@ -1887,20 +2103,21 @@
 		private final Keyword cSymbolEnvKeyword_1_0_0 = (Keyword)cSymbolAlternatives_1_0.eContents().get(0);
 		private final Keyword cSymbolEnvKeyword_1_0_1 = (Keyword)cSymbolAlternatives_1_0.eContents().get(1);
 		
-		//LiteralEnvInstance expression::LiteralEnvInstance:
-		//	{expression::LiteralEnvInstance} symbol=('$env' | 'env');
+		//LiteralEnvInstance returns expression::LiteralEnvInstance
+		//: {expression::LiteralEnvInstance} symbol=( '$env' | 'env' )
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{expression::LiteralEnvInstance} symbol=('$env' | 'env')
+		//{expression::LiteralEnvInstance} symbol=( '$env' | 'env' )
 		public Group getGroup() { return cGroup; }
 		
 		//{expression::LiteralEnvInstance}
 		public Action getLiteralEnvInstanceAction_0() { return cLiteralEnvInstanceAction_0; }
 		
-		//symbol=('$env' | 'env')
+		//symbol=( '$env' | 'env' )
 		public Assignment getSymbolAssignment_1() { return cSymbolAssignment_1; }
 		
-		//('$env' | 'env')
+		//( '$env' | 'env' )
 		public Alternatives getSymbolAlternatives_1_0() { return cSymbolAlternatives_1_0; }
 		
 		//'$env'
@@ -1918,12 +2135,14 @@
 		//////////////////////////////////////////////////////////////////////////////////
 		//// Terminal Rules
 		//////////////////////////////////////////////////////////////////////////////////
-		//EBoolean ecore::EBoolean:
-		//	'true'
-		//	| 'false';
+		//EBoolean returns ecore::EBoolean
+		//: 'true'
+		//| 'false'
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//'true' | 'false'
+		// 'true'
+		//| 'false'
 		public Alternatives getAlternatives() { return cAlternatives; }
 		
 		//'true'
@@ -1936,8 +2155,9 @@
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.efm.sew.xtext.SEW.EChar");
 		private final RuleCall cCHARACTERTerminalRuleCall = (RuleCall)rule.eContents().get(1);
 		
-		//EChar ecore::EChar:
-		//	CHARACTER;
+		//EChar returns ecore::EChar
+		//: CHARACTER
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
 		//CHARACTER
@@ -1949,8 +2169,8 @@
 		private final Keyword cHyphenMinusKeyword_0 = (Keyword)cGroup.eContents().get(0);
 		private final RuleCall cINTTerminalRuleCall_1 = (RuleCall)cGroup.eContents().get(1);
 		
-		//ELong ecore::ELong:
-		//	'-'? INT;
+		//ELong returns ecore::ELong:
+		//    '-'? INT;
 		@Override public ParserRule getRule() { return rule; }
 		
 		//'-'? INT
@@ -1970,8 +2190,8 @@
 		private final Keyword cFullStopKeyword_2 = (Keyword)cGroup.eContents().get(2);
 		private final RuleCall cINTTerminalRuleCall_3 = (RuleCall)cGroup.eContents().get(3);
 		
-		//EDouble ecore::EDouble:
-		//	'-'? INT? '.' INT //(('E'|'e') '-'? INT)?
+		//EDouble returns ecore::EDouble
+		//: '-'? INT? '.' INT //(('E'|'e') '-'? INT)?
 		//;
 		@Override public ParserRule getRule() { return rule; }
 		
@@ -1997,8 +2217,9 @@
 		private final Keyword cFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1);
 		private final RuleCall cINTTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
 		
-		//EBigDecimal ecore::EBigDecimal:
-		//	INT? '.' INT;
+		//EBigDecimal returns ecore::EBigDecimal
+		//: INT? '.' INT
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
 		//INT? '.' INT
@@ -2017,8 +2238,9 @@
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.efm.sew.xtext.SEW.EString");
 		private final RuleCall cSTRINGTerminalRuleCall = (RuleCall)rule.eContents().get(1);
 		
-		//EString:
-		//	STRING;
+		//EString returns ecore::EString
+		//: STRING
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
 		//STRING
@@ -2037,13 +2259,16 @@
 		//////////////////////////////////////////////////////////////////////////////////
 		//// @DEPRECATED Diversity Configuration Specification
 		//////////////////////////////////////////////////////////////////////////////////
-		//DeprecatedReservedWord:
-		//	'form' | 'endform'
-		//	| 'prototype' | 'endprototype'
-		//	| 'section' | 'endsection';
+		//DeprecatedReservedWord
+		//: 'form'      | 'endform'
+		//| 'prototype' | 'endprototype'
+		//| 'section'   | 'endsection'
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//'form' | 'endform' | 'prototype' | 'endprototype' | 'section' | 'endsection'
+		// 'form'      | 'endform'
+		//| 'prototype' | 'endprototype'
+		//| 'section'   | 'endsection'
 		public Alternatives getAlternatives() { return cAlternatives; }
 		
 		//'form'
@@ -2098,25 +2323,37 @@
 		private final RuleCall cElementDeprecatedPropertyParserRuleCall_1_8_0 = (RuleCall)cElementAssignment_1_8.eContents().get(0);
 		private final Keyword cEndprototypeKeyword_1_9 = (Keyword)cGroup_1.eContents().get(9);
 		
-		//DeprecatedObject sew::WObject:
-		//	{sew::WObject}
-		//	'form'
-		//	name=UFI description=EString? 'as' '&'? type=UFI 'is'
-		//	element+=DeprecatedProperty*
-		//	'endform'
-		//	| {sew::WObject}
-		//	'prototype'
-		//	name=UFI description=EString? 'as' '&'? type=UFI 'is'
-		//	element+=DeprecatedProperty*
-		//	'endprototype';
+		//DeprecatedObject returns sew::WObject
+		//: {sew::WObject}
+		//    'form'
+		//        name=UFI  ( description=EString )?  'as'  ( '&' )?  type=UFI  'is'
+		//        ( element+=DeprecatedProperty )*
+		//    'endform'
+		//| {sew::WObject}
+		//    'prototype'
+		//        name=UFI  ( description=EString )?  'as'  ( '&' )?  type=UFI  'is'
+		//        ( element+=DeprecatedProperty )*
+		//    'endprototype'
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{sew::WObject} 'form' name=UFI description=EString? 'as' '&'? type=UFI 'is' element+=DeprecatedProperty* 'endform' |
-		//{sew::WObject} 'prototype' name=UFI description=EString? 'as' '&'? type=UFI 'is' element+=DeprecatedProperty*
-		//'endprototype'
+		// {sew::WObject}
+		//    'form'
+		//        name=UFI  ( description=EString )?  'as'  ( '&' )?  type=UFI  'is'
+		//        ( element+=DeprecatedProperty )*
+		//    'endform'
+		//| {sew::WObject}
+		//    'prototype'
+		//        name=UFI  ( description=EString )?  'as'  ( '&' )?  type=UFI  'is'
+		//        ( element+=DeprecatedProperty )*
+		//    'endprototype'
 		public Alternatives getAlternatives() { return cAlternatives; }
 		
-		//{sew::WObject} 'form' name=UFI description=EString? 'as' '&'? type=UFI 'is' element+=DeprecatedProperty* 'endform'
+		//{sew::WObject}
+		//   'form'
+		//       name=UFI  ( description=EString )?  'as'  ( '&' )?  type=UFI  'is'
+		//       ( element+=DeprecatedProperty )*
+		//   'endform'
 		public Group getGroup_0() { return cGroup_0; }
 		
 		//{sew::WObject}
@@ -2131,7 +2368,7 @@
 		//UFI
 		public RuleCall getNameUFIParserRuleCall_0_2_0() { return cNameUFIParserRuleCall_0_2_0; }
 		
-		//description=EString?
+		//( description=EString )?
 		public Assignment getDescriptionAssignment_0_3() { return cDescriptionAssignment_0_3; }
 		
 		//EString
@@ -2140,7 +2377,7 @@
 		//'as'
 		public Keyword getAsKeyword_0_4() { return cAsKeyword_0_4; }
 		
-		//'&'?
+		//( '&' )?
 		public Keyword getAmpersandKeyword_0_5() { return cAmpersandKeyword_0_5; }
 		
 		//type=UFI
@@ -2152,7 +2389,7 @@
 		//'is'
 		public Keyword getIsKeyword_0_7() { return cIsKeyword_0_7; }
 		
-		//element+=DeprecatedProperty*
+		//( element+=DeprecatedProperty )*
 		public Assignment getElementAssignment_0_8() { return cElementAssignment_0_8; }
 		
 		//DeprecatedProperty
@@ -2161,8 +2398,11 @@
 		//'endform'
 		public Keyword getEndformKeyword_0_9() { return cEndformKeyword_0_9; }
 		
-		//{sew::WObject} 'prototype' name=UFI description=EString? 'as' '&'? type=UFI 'is' element+=DeprecatedProperty*
-		//'endprototype'
+		//{sew::WObject}
+		//   'prototype'
+		//       name=UFI  ( description=EString )?  'as'  ( '&' )?  type=UFI  'is'
+		//       ( element+=DeprecatedProperty )*
+		//   'endprototype'
 		public Group getGroup_1() { return cGroup_1; }
 		
 		//{sew::WObject}
@@ -2177,7 +2417,7 @@
 		//UFI
 		public RuleCall getNameUFIParserRuleCall_1_2_0() { return cNameUFIParserRuleCall_1_2_0; }
 		
-		//description=EString?
+		//( description=EString )?
 		public Assignment getDescriptionAssignment_1_3() { return cDescriptionAssignment_1_3; }
 		
 		//EString
@@ -2186,7 +2426,7 @@
 		//'as'
 		public Keyword getAsKeyword_1_4() { return cAsKeyword_1_4; }
 		
-		//'&'?
+		//( '&' )?
 		public Keyword getAmpersandKeyword_1_5() { return cAmpersandKeyword_1_5; }
 		
 		//type=UFI
@@ -2198,7 +2438,7 @@
 		//'is'
 		public Keyword getIsKeyword_1_7() { return cIsKeyword_1_7; }
 		
-		//element+=DeprecatedProperty*
+		//( element+=DeprecatedProperty )*
 		public Assignment getElementAssignment_1_8() { return cElementAssignment_1_8; }
 		
 		//DeprecatedProperty
@@ -2213,12 +2453,14 @@
 		private final RuleCall cDeprecatedSectionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
 		private final RuleCall cDeprecatedAttributeParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
 		
-		//DeprecatedProperty sew::WProperty:
-		//	DeprecatedSection
-		//	| DeprecatedAttribute;
+		//DeprecatedProperty returns sew::WProperty
+		//: DeprecatedSection
+		//| DeprecatedAttribute
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//DeprecatedSection | DeprecatedAttribute
+		// DeprecatedSection
+		//| DeprecatedAttribute
 		public Alternatives getAlternatives() { return cAlternatives; }
 		
 		//DeprecatedSection
@@ -2264,24 +2506,35 @@
 		private final RuleCall cElementDeprecatedObjectParserRuleCall_1_2_1_1_0_1 = (RuleCall)cElementAlternatives_1_2_1_1_0.eContents().get(1);
 		private final RuleCall cElementObjectParserRuleCall_1_2_1_1_0_2 = (RuleCall)cElementAlternatives_1_2_1_1_0.eContents().get(2);
 		
-		//DeprecatedSection sew::WSection:
-		//	{sew::WSection}
-		//	'section' name=XID
-		//	//		( element+=( Object | Attribute  ) )*
-		//	element+=(DeprecatedAttribute | DeprecatedObject | Object)*
-		//	'endsection' XID?
-		//	| name=XID description=EString? ('[' element+=(DeprecatedAttribute | DeprecatedObject | Object)* ']'
-		//	| ':' element+=(DeprecatedAttribute | DeprecatedObject | Object)*);
+		//DeprecatedSection returns sew::WSection
+		//: {sew::WSection}
+		//    'section'  name=XID
+		////        ( element+=( Object | Attribute  ) )*
+		//        ( element+=( DeprecatedAttribute | DeprecatedObject | Object ) )*
+		//    'endsection'  ( XID )?
+		//| name=XID  ( description=EString )?
+		//    ( '[' ( element+=( DeprecatedAttribute | DeprecatedObject | Object ) )* ']'
+		//    | ':' ( element+=( DeprecatedAttribute | DeprecatedObject | Object ) )*
+		//    )
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{sew::WSection} 'section' name=XID //		( element+=( Object | Attribute  ) )*
-		//element+=(DeprecatedAttribute | DeprecatedObject | Object)* 'endsection' XID? | name=XID description=EString? ('['
-		//element+=(DeprecatedAttribute | DeprecatedObject | Object)* ']' | ':' element+=(DeprecatedAttribute | DeprecatedObject
-		//| Object)*)
+		// {sew::WSection}
+		//    'section'  name=XID
+		////        ( element+=( Object | Attribute  ) )*
+		//        ( element+=( DeprecatedAttribute | DeprecatedObject | Object ) )*
+		//    'endsection'  ( XID )?
+		//| name=XID  ( description=EString )?
+		//    ( '[' ( element+=( DeprecatedAttribute | DeprecatedObject | Object ) )* ']'
+		//    | ':' ( element+=( DeprecatedAttribute | DeprecatedObject | Object ) )*
+		//    )
 		public Alternatives getAlternatives() { return cAlternatives; }
 		
-		//{sew::WSection} 'section' name=XID //		( element+=( Object | Attribute  ) )*
-		//element+=(DeprecatedAttribute | DeprecatedObject | Object)* 'endsection' XID?
+		// {sew::WSection}
+		//    'section'  name=XID
+		////        ( element+=( Object | Attribute  ) )*
+		//        ( element+=( DeprecatedAttribute | DeprecatedObject | Object ) )*
+		//    'endsection'  ( XID )?
 		public Group getGroup_0() { return cGroup_0; }
 		
 		//{sew::WSection}
@@ -2296,11 +2549,11 @@
 		//XID
 		public RuleCall getNameXIDParserRuleCall_0_2_0() { return cNameXIDParserRuleCall_0_2_0; }
 		
-		////		( element+=( Object | Attribute  ) )*
-		//element+=(DeprecatedAttribute | DeprecatedObject | Object)*
+		////        ( element+=( Object | Attribute  ) )*
+		//        ( element+=( DeprecatedAttribute | DeprecatedObject | Object ) )*
 		public Assignment getElementAssignment_0_3() { return cElementAssignment_0_3; }
 		
-		//(DeprecatedAttribute | DeprecatedObject | Object)
+		//( DeprecatedAttribute | DeprecatedObject | Object )
 		public Alternatives getElementAlternatives_0_3_0() { return cElementAlternatives_0_3_0; }
 		
 		//DeprecatedAttribute
@@ -2315,11 +2568,13 @@
 		//'endsection'
 		public Keyword getEndsectionKeyword_0_4() { return cEndsectionKeyword_0_4; }
 		
-		//XID?
+		//( XID )?
 		public RuleCall getXIDParserRuleCall_0_5() { return cXIDParserRuleCall_0_5; }
 		
-		//name=XID description=EString? ('[' element+=(DeprecatedAttribute | DeprecatedObject | Object)* ']' | ':'
-		//element+=(DeprecatedAttribute | DeprecatedObject | Object)*)
+		//name=XID  ( description=EString )?
+		//   ( '[' ( element+=( DeprecatedAttribute | DeprecatedObject | Object ) )* ']'
+		//   | ':' ( element+=( DeprecatedAttribute | DeprecatedObject | Object ) )*
+		//   )
 		public Group getGroup_1() { return cGroup_1; }
 		
 		//name=XID
@@ -2328,26 +2583,27 @@
 		//XID
 		public RuleCall getNameXIDParserRuleCall_1_0_0() { return cNameXIDParserRuleCall_1_0_0; }
 		
-		//description=EString?
+		//( description=EString )?
 		public Assignment getDescriptionAssignment_1_1() { return cDescriptionAssignment_1_1; }
 		
 		//EString
 		public RuleCall getDescriptionEStringParserRuleCall_1_1_0() { return cDescriptionEStringParserRuleCall_1_1_0; }
 		
-		//('[' element+=(DeprecatedAttribute | DeprecatedObject | Object)* ']' | ':' element+=(DeprecatedAttribute |
-		//DeprecatedObject | Object)*)
+		//( '[' ( element+=( DeprecatedAttribute | DeprecatedObject | Object ) )* ']'
+		//| ':' ( element+=( DeprecatedAttribute | DeprecatedObject | Object ) )*
+		//)
 		public Alternatives getAlternatives_1_2() { return cAlternatives_1_2; }
 		
-		//'[' element+=(DeprecatedAttribute | DeprecatedObject | Object)* ']'
+		//'[' ( element+=( DeprecatedAttribute | DeprecatedObject | Object ) )* ']'
 		public Group getGroup_1_2_0() { return cGroup_1_2_0; }
 		
 		//'['
 		public Keyword getLeftSquareBracketKeyword_1_2_0_0() { return cLeftSquareBracketKeyword_1_2_0_0; }
 		
-		//element+=(DeprecatedAttribute | DeprecatedObject | Object)*
+		//( element+=( DeprecatedAttribute | DeprecatedObject | Object ) )*
 		public Assignment getElementAssignment_1_2_0_1() { return cElementAssignment_1_2_0_1; }
 		
-		//(DeprecatedAttribute | DeprecatedObject | Object)
+		//( DeprecatedAttribute | DeprecatedObject | Object )
 		public Alternatives getElementAlternatives_1_2_0_1_0() { return cElementAlternatives_1_2_0_1_0; }
 		
 		//DeprecatedAttribute
@@ -2362,16 +2618,16 @@
 		//']'
 		public Keyword getRightSquareBracketKeyword_1_2_0_2() { return cRightSquareBracketKeyword_1_2_0_2; }
 		
-		//':' element+=(DeprecatedAttribute | DeprecatedObject | Object)*
+		//':' ( element+=( DeprecatedAttribute | DeprecatedObject | Object ) )*
 		public Group getGroup_1_2_1() { return cGroup_1_2_1; }
 		
 		//':'
 		public Keyword getColonKeyword_1_2_1_0() { return cColonKeyword_1_2_1_0; }
 		
-		//element+=(DeprecatedAttribute | DeprecatedObject | Object)*
+		//( element+=( DeprecatedAttribute | DeprecatedObject | Object ) )*
 		public Assignment getElementAssignment_1_2_1_1() { return cElementAssignment_1_2_1_1; }
 		
-		//(DeprecatedAttribute | DeprecatedObject | Object)
+		//( DeprecatedAttribute | DeprecatedObject | Object )
 		public Alternatives getElementAlternatives_1_2_1_1_0() { return cElementAlternatives_1_2_1_1_0; }
 		
 		//DeprecatedAttribute
@@ -2394,11 +2650,14 @@
 		private final RuleCall cValueValueSpecificationParserRuleCall_3_0 = (RuleCall)cValueAssignment_3.eContents().get(0);
 		private final Keyword cSemicolonKeyword_4 = (Keyword)cGroup.eContents().get(4);
 		
-		//DeprecatedAttribute sew::WAttribute:
-		//	{sew::WAttribute} name=DeprecatedAttributeID '=' value=ValueSpecification ';'?;
+		//DeprecatedAttribute returns sew::WAttribute
+		//: {sew::WAttribute}
+		//    name=DeprecatedAttributeID  '='  value=ValueSpecification  ( ';' )?
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{sew::WAttribute} name=DeprecatedAttributeID '=' value=ValueSpecification ';'?
+		//{sew::WAttribute}
+		//   name=DeprecatedAttributeID  '='  value=ValueSpecification  ( ';' )?
 		public Group getGroup() { return cGroup; }
 		
 		//{sew::WAttribute}
@@ -2419,7 +2678,7 @@
 		//ValueSpecification
 		public RuleCall getValueValueSpecificationParserRuleCall_3_0() { return cValueValueSpecificationParserRuleCall_3_0; }
 		
-		//';'?
+		//( ';' )?
 		public Keyword getSemicolonKeyword_4() { return cSemicolonKeyword_4; }
 	}
 	public class DeprecatedAttributeIDElements extends AbstractParserRuleElementFinder {
@@ -2428,12 +2687,14 @@
 		private final RuleCall cXIDParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
 		private final RuleCall cAT_IDENTIFIERTerminalRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
 		
-		//DeprecatedAttributeID:
-		//	XID
-		//	| AT_IDENTIFIER;
+		//DeprecatedAttributeID
+		//: XID
+		//| AT_IDENTIFIER
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//XID | AT_IDENTIFIER
+		// XID
+		//| AT_IDENTIFIER
 		public Alternatives getAlternatives() { return cAlternatives; }
 		
 		//XID
@@ -2455,14 +2716,20 @@
 		private final RuleCall cOperandValueSpecificationParserRuleCall_3_0 = (RuleCall)cOperandAssignment_3.eContents().get(0);
 		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
 		
-		//DeprecatedExpression sew::WValueSpecification:
-		//	{expression::Expression}
-		//	'${'
-		//	operator=('|;|' | '|i|') operand+=ValueSpecification*
-		//	'}';
+		//DeprecatedExpression returns sew::WValueSpecification
+		//: {expression::Expression}
+		//    '${'
+		//        operator=( '|;|' | '|i|' )
+		//        ( operand+=ValueSpecification )*
+		//    '}'
+		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{expression::Expression} '${' operator=('|;|' | '|i|') operand+=ValueSpecification* '}'
+		//{expression::Expression}
+		//   '${'
+		//       operator=( '|;|' | '|i|' )
+		//       ( operand+=ValueSpecification )*
+		//   '}'
 		public Group getGroup() { return cGroup; }
 		
 		//{expression::Expression}
@@ -2471,10 +2738,10 @@
 		//'${'
 		public Keyword getDollarSignLeftCurlyBracketKeyword_1() { return cDollarSignLeftCurlyBracketKeyword_1; }
 		
-		//operator=('|;|' | '|i|')
+		//operator=( '|;|' | '|i|' )
 		public Assignment getOperatorAssignment_2() { return cOperatorAssignment_2; }
 		
-		//('|;|' | '|i|')
+		//( '|;|' | '|i|' )
 		public Alternatives getOperatorAlternatives_2_0() { return cOperatorAlternatives_2_0; }
 		
 		//'|;|'
@@ -2483,7 +2750,7 @@
 		//'|i|'
 		public Keyword getOperatorIKeyword_2_0_1() { return cOperatorIKeyword_2_0_1; }
 		
-		//operand+=ValueSpecification*
+		//( operand+=ValueSpecification )*
 		public Assignment getOperandAssignment_3() { return cOperandAssignment_3; }
 		
 		//ValueSpecification
@@ -2648,15 +2915,20 @@
 	//////////////////////////////////////////////////////////////////////////////////
 	//// Symbolic Execution Workflow Specification
 	//////////////////////////////////////////////////////////////////////////////////
-	//Workflow sew::SEWorkflow:
-	//	{sew::SEWorkflow} Prolog? (type=('workflow' | 'symbex-workflow') name=UFI? description=EString?
-	//	'{'
-	//	element+=(Object | Property)*
-	//	'}'
-	//	// for Xtext Embeded Editor
-	//	| element+=(Object | Property)*
-	//	// Deprecated Object as FAVM Workflow
-	//	| element+=DeprecatedObject);
+	//Workflow returns sew::SEWorkflow
+	//: {sew::SEWorkflow}
+	//    ( Prolog )?
+	//    ( type=( 'workflow' | 'symbex-workflow' )
+	//        ( name=UFI )?  ( description=EString )?
+	//        '{'
+	//            ( element+=( Object | Property ) )*
+	//        '}'
+	//    // for Xtext Embeded Editor
+	//    | ( element+=( Object | Property ) )*
+	//    // Deprecated Object as FAVM Workflow
+	//    | element+=DeprecatedObject
+	//    )
+	//;
 	public WorkflowElements getWorkflowAccess() {
 		return pWorkflow;
 	}
@@ -2665,8 +2937,11 @@
 		return getWorkflowAccess().getRule();
 	}
 	
-	//Prolog:
-	//	('@sew' | '@favm') '<' ('workflow' | 'sew') (',' 'version:'? EDouble | UFI | EString)? '>:';
+	//Prolog
+	//: ( '@sew' | '@favm' ) '<'
+	//    ( 'workflow' | 'sew' )
+	//    ( ',' ( 'version:' )?  EDouble | UFI | EString )? '>:'
+	//;
 	public PrologElements getPrologAccess() {
 		return pProlog;
 	}
@@ -2678,10 +2953,11 @@
 	//////////////////////////////////////////////////////////////////////////////////
 	//// [ Qualified ] Identifier
 	//////////////////////////////////////////////////////////////////////////////////
-	//ReservedWord:
-	//	'workflow' | 'sew'
-	//	// Deprecated
-	//	| DeprecatedReservedWord;
+	// ReservedWord
+	//: 'workflow' | 'sew'
+	//// Deprecated
+	//| DeprecatedReservedWord
+	//;
 	public ReservedWordElements getReservedWordAccess() {
 		return pReservedWord;
 	}
@@ -2690,20 +2966,23 @@
 		return getReservedWordAccess().getRule();
 	}
 	
-	//terminal XIDENDIFIER:
-	//	('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '0'..'9' | '_' | '#')*;
+	//terminal XIDENDIFIER
+	//: ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_'|'#')*
+	//;
 	public TerminalRule getXIDENDIFIERRule() {
 		return tXIDENDIFIER;
 	}
 	
-	//terminal AT_IDENTIFIER:
-	//	'@' XIDENDIFIER;
+	//terminal AT_IDENTIFIER
+	//: '@' XIDENDIFIER
+	//;
 	public TerminalRule getAT_IDENTIFIERRule() {
 		return tAT_IDENTIFIER;
 	}
 	
-	//XID:
-	//	ReservedWord | XIDENDIFIER;
+	//XID returns ecore::EString
+	//: ReservedWord | XIDENDIFIER
+	//;
 	public XIDElements getXIDAccess() {
 		return pXID;
 	}
@@ -2712,8 +2991,9 @@
 		return getXIDAccess().getRule();
 	}
 	
-	//UFI:
-	//	XID (('::' | '.') XID)*;
+	//UFI returns ecore::EString
+	//: XID ( ( '::' | '.' ) XID )*
+	//;
 	public UFIElements getUFIAccess() {
 		return pUFI;
 	}
@@ -2725,15 +3005,18 @@
 	//////////////////////////////////////////////////////////////////////////////////
 	//// Object Configuration Specification
 	//////////////////////////////////////////////////////////////////////////////////
-	//Object sew::WObject:
-	//	{sew::WObject} type=UFI name=UFI? description=EString?
-	//	'{'
-	//	element+=(Object | Property)*
-	//	'}'
-	//	| {sew::WObject} name=UFI (':=' | '+:=') (type=UFI description=EString?)?
-	//	'{'
-	//	element+=(Object | Property)*
-	//	'}';
+	//Object returns sew::WObject
+	//: {sew::WObject}
+	//    type=UFI  ( name=UFI )?  ( description=EString )?
+	//    '{'
+	//        ( element+=( Object | Property ) )*
+	//    '}'
+	//| {sew::WObject}
+	//    name=UFI  ( ':=' | '+:=' )  ( type=UFI  ( description=EString )? )?
+	//    '{'
+	//        ( element+=( Object | Property ) )*
+	//    '}'
+	//;
 	public ObjectElements getObjectAccess() {
 		return pObject;
 	}
@@ -2745,9 +3028,10 @@
 	//////////////////////////////////////////////////////////////////////////////////
 	//// Property Specification
 	//////////////////////////////////////////////////////////////////////////////////
-	//Property sew::WProperty:
-	//	Section
-	//	| Attribute;
+	//Property returns sew::WProperty
+	//: Section
+	//| Attribute
+	//;
 	public PropertyElements getPropertyAccess() {
 		return pProperty;
 	}
@@ -2756,9 +3040,12 @@
 		return getPropertyAccess().getRule();
 	}
 	
-	//Section sew::WSection:
-	//	name=XID description=EString? ('[' element+=(Object | Attribute)* ']'
-	//	| ':' element+=(Object | Attribute)*);
+	//Section returns sew::WSection
+	//: name=XID  ( description=EString )?
+	//    ( '[' ( element+=( Object | Attribute ) )* ']'
+	//    | ':' ( element+=( Object | Attribute ) )*
+	//    )
+	//;
 	public SectionElements getSectionAccess() {
 		return pSection;
 	}
@@ -2767,8 +3054,10 @@
 		return getSectionAccess().getRule();
 	}
 	
-	//Attribute sew::WAttribute:
-	//	{sew::WAttribute} name=XID '=' value=ValueSpecification ';'?;
+	//Attribute returns sew::WAttribute
+	//: {sew::WAttribute}
+	//    name=XID  '='  value=ValueSpecification  ( ';' )?
+	//;
 	public AttributeElements getAttributeAccess() {
 		return pAttribute;
 	}
@@ -2780,8 +3069,9 @@
 	//////////////////////////////////////////////////////////////////////////////////
 	//// Value Specification
 	//////////////////////////////////////////////////////////////////////////////////
-	//ValueSpecification sew::WValueSpecification:
-	//	Expression;
+	//ValueSpecification returns sew::WValueSpecification
+	//: Expression
+	//;
 	public ValueSpecificationElements getValueSpecificationAccess() {
 		return pValueSpecification;
 	}
@@ -2793,10 +3083,11 @@
 	//////////////////////////////////////////////////////////////////////////////////
 	//// Expression Specification
 	//////////////////////////////////////////////////////////////////////////////////
-	//Expression sew::WValueSpecification:
-	//	conditionalExpression
-	//	// Deprecated
-	//	| DeprecatedExpression;
+	//Expression returns sew::WValueSpecification
+	//: conditionalExpression
+	//// Deprecated
+	//| DeprecatedExpression
+	//;
 	public ExpressionElements getExpressionAccess() {
 		return pExpression;
 	}
@@ -2805,9 +3096,12 @@
 		return getExpressionAccess().getRule();
 	}
 	
-	//conditionalExpression sew::WValueSpecification:
-	//	conditionalOrExpression ({expression::Expression.operand+=current} operator='?' operand+=Expression ':'
-	//	operand+=Expression)?;
+	//conditionalExpression returns sew::WValueSpecification
+	//: conditionalOrExpression
+	//    ( {expression::Expression.operand+=current}
+	//        operator='?' operand+=Expression ':' operand+=Expression
+	//    )?
+	//;
 	public ConditionalExpressionElements getConditionalExpressionAccess() {
 		return pConditionalExpression;
 	}
@@ -2816,9 +3110,13 @@
 		return getConditionalExpressionAccess().getRule();
 	}
 	
-	//conditionalOrExpression sew::WValueSpecification:
-	//	conditionalAndExpression ({expression::Expression.operand+=current} operator=('||' | 'or')
-	//	operand+=conditionalAndExpression (('||' | 'or') operand+=conditionalAndExpression)*)?;
+	//conditionalOrExpression returns sew::WValueSpecification
+	//: conditionalAndExpression
+	//    ( {expression::Expression.operand+=current}
+	//        operator=( '||' | 'or' ) operand+=conditionalAndExpression
+	//        ( ( '||' | 'or' ) operand+=conditionalAndExpression )*
+	//    )?
+	//;
 	public ConditionalOrExpressionElements getConditionalOrExpressionAccess() {
 		return pConditionalOrExpression;
 	}
@@ -2827,9 +3125,13 @@
 		return getConditionalOrExpressionAccess().getRule();
 	}
 	
-	//conditionalAndExpression sew::WValueSpecification:
-	//	equalityExpression ({expression::Expression.operand+=current} operator=('&&' | 'and') operand+=equalityExpression
-	//	(('&&' | 'and') operand+=equalityExpression)*)?;
+	//conditionalAndExpression returns sew::WValueSpecification
+	//: equalityExpression
+	//    ( {expression::Expression.operand+=current}
+	//        operator=( '&&' | 'and' ) operand+=equalityExpression
+	//        ( ( '&&' | 'and' ) operand+=equalityExpression )*
+	//    )?
+	//;
 	public ConditionalAndExpressionElements getConditionalAndExpressionAccess() {
 		return pConditionalAndExpression;
 	}
@@ -2838,9 +3140,13 @@
 		return getConditionalAndExpressionAccess().getRule();
 	}
 	
-	//equalityExpression sew::WValueSpecification:
-	//	relationalExpression ({expression::Expression.operand+=current} operator=('==' | '!=' | '===' | '=!=' | '=/=')
-	//	operand+=relationalExpression)?;
+	//equalityExpression returns sew::WValueSpecification
+	//: relationalExpression
+	//    ( {expression::Expression.operand+=current}
+	//        operator=( '==' | '!=' | '===' | '=!=' | '=/=' )
+	//        operand+=relationalExpression
+	//    )?
+	//;
 	public EqualityExpressionElements getEqualityExpressionAccess() {
 		return pEqualityExpression;
 	}
@@ -2849,9 +3155,13 @@
 		return getEqualityExpressionAccess().getRule();
 	}
 	
-	//relationalExpression sew::WValueSpecification:
-	//	additiveExpression ({expression::Expression.operand+=current} operator=('<' | '<=' | '>' | '>=')
-	//	operand+=additiveExpression)?;
+	//relationalExpression returns sew::WValueSpecification
+	//: additiveExpression
+	//    ( {expression::Expression.operand+=current}
+	//        operator=( '<' | '<=' | '>' | '>=' )
+	//        operand+=additiveExpression
+	//    )?
+	//;
 	public RelationalExpressionElements getRelationalExpressionAccess() {
 		return pRelationalExpression;
 	}
@@ -2860,9 +3170,16 @@
 		return getRelationalExpressionAccess().getRule();
 	}
 	
-	//additiveExpression sew::WValueSpecification:
-	//	multiplicativeExpression ({expression::Expression.operand+=current} operator='+' operand+=multiplicativeExpression
-	//	('+' operand+=multiplicativeExpression)*)?;
+	//additiveExpression returns sew::WValueSpecification
+	//: multiplicativeExpression
+	//    ( ( {expression::Expression.operand+=current}
+	//        operator='+' operand+=multiplicativeExpression
+	//        ( '+' operand+=multiplicativeExpression )* )
+	////    | ( {expression::Expression.operand+=current}
+	////        operator='-' operand+=multiplicativeExpression
+	////        ( '-' operand+=multiplicativeExpression )* )
+	//    )?
+	//;
 	public AdditiveExpressionElements getAdditiveExpressionAccess() {
 		return pAdditiveExpression;
 	}
@@ -2871,12 +3188,22 @@
 		return getAdditiveExpressionAccess().getRule();
 	}
 	
-	//multiplicativeExpression sew::WValueSpecification:
-	//	primaryExpression ({expression::Expression.operand+=current} operator='*' operand+=primaryExpression ('*'
-	//	operand+=primaryExpression)* | {expression::Expression.operand+=current} operator='**' operand+=primaryExpression
-	//	('**' operand+=primaryExpression)* | {expression::Expression.operand+=current} operator='/' operand+=primaryExpression
-	//	('/' operand+=primaryExpression)* | {expression::Expression.operand+=current} operator='%' operand+=primaryExpression
-	//	('%' operand+=primaryExpression)*)?;
+	//multiplicativeExpression returns sew::WValueSpecification
+	//: primaryExpression
+	//    ( ( {expression::Expression.operand+=current}
+	//        operator='*' operand+=primaryExpression
+	//        ( '*' operand+=primaryExpression )* )
+	//    | ( {expression::Expression.operand+=current}
+	//        operator='**' operand+=primaryExpression
+	//        ( '**' operand+=primaryExpression )* )
+	//    | ( {expression::Expression.operand+=current}
+	//        operator='/' operand+=primaryExpression
+	//        ( '/' operand+=primaryExpression )* )
+	//    | ( {expression::Expression.operand+=current}
+	//        operator='%' operand+=primaryExpression
+	//        ( '%' operand+=primaryExpression )* )
+	//    )?
+	//;
 	public MultiplicativeExpressionElements getMultiplicativeExpressionAccess() {
 		return pMultiplicativeExpression;
 	}
@@ -2885,11 +3212,13 @@
 		return getMultiplicativeExpressionAccess().getRule();
 	}
 	
-	//primaryExpression sew::WValueSpecification:
-	//	'+' primaryExpression
-	//	| {expression::Expression} (operator='-' operand+=primaryExpression) | {expression::Expression} (operator=('!' |
-	//	'not') operand+=primaryExpression) | '(' Expression ')'
-	//	| LiteralExpression;
+	//primaryExpression returns sew::WValueSpecification
+	//: '+' primaryExpression
+	//| { expression::Expression }( operator='-' operand+=primaryExpression )
+	//| { expression::Expression }( operator=( '!' | 'not' ) operand+=primaryExpression )
+	//| '(' Expression ')'
+	//| LiteralExpression
+	//;
 	public PrimaryExpressionElements getPrimaryExpressionAccess() {
 		return pPrimaryExpression;
 	}
@@ -2898,19 +3227,20 @@
 		return getPrimaryExpressionAccess().getRule();
 	}
 	
-	//LiteralExpression sew::WValueSpecification:
-	//	LiteralBooleanValue
-	//	| LiteralCharacterValue
-	//	| LiteralIntegerValue
-	//	| LiteralRationalValue
-	//	| LiteralFloatValue
-	//	//| LiteralRealValue
-	//	| LiteralStringValue
-	//	| LiteralNullValue
-	//	| LiteralArrayValue
-	//	| LiteralObjectReference
-	//	| LiteralVariableReference
-	//	| LiteralInstanceReference;
+	//LiteralExpression returns sew::WValueSpecification
+	//: LiteralBooleanValue
+	//| LiteralCharacterValue
+	//| LiteralIntegerValue
+	//| LiteralRationalValue
+	//| LiteralFloatValue
+	////| LiteralRealValue
+	//| LiteralStringValue
+	//| LiteralNullValue
+	//| LiteralArrayValue
+	//| LiteralObjectReference
+	//| LiteralVariableReference
+	//| LiteralInstanceReference
+	//;
 	public LiteralExpressionElements getLiteralExpressionAccess() {
 		return pLiteralExpression;
 	}
@@ -2922,10 +3252,14 @@
 	//////////////////////////////////////////////////////////////////////////////////
 	//// Array of Literal Specification
 	//////////////////////////////////////////////////////////////////////////////////
-	//LiteralArrayValue expression::LiteralArrayValue:
-	//	{expression::LiteralArrayValue}
-	//	'[' (values+=ValueSpecification (',' values+=ValueSpecification)*)?
-	//	']';
+	//LiteralArrayValue  returns expression::LiteralArrayValue
+	//: {expression::LiteralArrayValue}
+	//    '['
+	//        ( values+=ValueSpecification
+	//            ( ',' values+=ValueSpecification )*
+	//        )?
+	//    ']'
+	//;
 	public LiteralArrayValueElements getLiteralArrayValueAccess() {
 		return pLiteralArrayValue;
 	}
@@ -2937,8 +3271,9 @@
 	//////////////////////////////////////////////////////////////////////////////////
 	//// Literal Object Reference Specification
 	//////////////////////////////////////////////////////////////////////////////////
-	//LiteralObjectReference expression::LiteralObjectReference:
-	//	'&'? (object=[sew::WObject|UFI] | symbol=UFI);
+	//LiteralObjectReference returns expression::LiteralObjectReference
+	//: ( '&' )? ( object=[sew::WObject|UFI] | symbol=UFI )
+	//;
 	public LiteralObjectReferenceElements getLiteralObjectReferenceAccess() {
 		return pLiteralObjectReference;
 	}
@@ -2950,8 +3285,9 @@
 	//////////////////////////////////////////////////////////////////////////////////
 	//// Literal Specification
 	//////////////////////////////////////////////////////////////////////////////////
-	//LiteralBooleanValue expression::LiteralBooleanValue:
-	//	value=EBoolean;
+	//LiteralBooleanValue  returns expression::LiteralBooleanValue
+	//: value=EBoolean
+	//;
 	public LiteralBooleanValueElements getLiteralBooleanValueAccess() {
 		return pLiteralBooleanValue;
 	}
@@ -2960,8 +3296,9 @@
 		return getLiteralBooleanValueAccess().getRule();
 	}
 	
-	//LiteralCharacterValue expression::LiteralCharacterValue:
-	//	value=EChar;
+	//LiteralCharacterValue  returns expression::LiteralCharacterValue
+	//: value=EChar
+	//;
 	public LiteralCharacterValueElements getLiteralCharacterValueAccess() {
 		return pLiteralCharacterValue;
 	}
@@ -2970,8 +3307,9 @@
 		return getLiteralCharacterValueAccess().getRule();
 	}
 	
-	//LiteralIntegerValue expression::LiteralIntegerValue:
-	//	value=ELong;
+	//LiteralIntegerValue  returns expression::LiteralIntegerValue
+	//: value=ELong
+	//;
 	public LiteralIntegerValueElements getLiteralIntegerValueAccess() {
 		return pLiteralIntegerValue;
 	}
@@ -2980,8 +3318,9 @@
 		return getLiteralIntegerValueAccess().getRule();
 	}
 	
-	//LiteralRationalValue expression::LiteralRationalValue:
-	//	numerator=ELong '/' denominator=ELong;
+	//LiteralRationalValue  returns expression::LiteralRationalValue
+	//: numerator=ELong '/' denominator=ELong
+	//;
 	public LiteralRationalValueElements getLiteralRationalValueAccess() {
 		return pLiteralRationalValue;
 	}
@@ -2990,8 +3329,9 @@
 		return getLiteralRationalValueAccess().getRule();
 	}
 	
-	//LiteralFloatValue expression::LiteralFloatValue:
-	//	value=EDouble;
+	//LiteralFloatValue  returns expression::LiteralFloatValue
+	//: value=EDouble
+	//;
 	public LiteralFloatValueElements getLiteralFloatValueAccess() {
 		return pLiteralFloatValue;
 	}
@@ -3000,8 +3340,9 @@
 		return getLiteralFloatValueAccess().getRule();
 	}
 	
-	//LiteralRealValue expression::LiteralRealValue:
-	//	value=EBigDecimal;
+	//LiteralRealValue  returns expression::LiteralRealValue
+	//: value=EBigDecimal
+	//;
 	public LiteralRealValueElements getLiteralRealValueAccess() {
 		return pLiteralRealValue;
 	}
@@ -3010,8 +3351,9 @@
 		return getLiteralRealValueAccess().getRule();
 	}
 	
-	//LiteralStringValue expression::LiteralStringValue:
-	//	value=EString;
+	//LiteralStringValue  returns expression::LiteralStringValue
+	//: value=EString
+	//;
 	public LiteralStringValueElements getLiteralStringValueAccess() {
 		return pLiteralStringValue;
 	}
@@ -3020,9 +3362,10 @@
 		return getLiteralStringValueAccess().getRule();
 	}
 	
-	//LiteralNullValue expression::LiteralNullValue:
-	//	{expression::LiteralNullValue}
-	//	'null' ('<' type=XID '>')?;
+	//LiteralNullValue  returns expression::LiteralNullValue
+	//: {expression::LiteralNullValue}
+	//    'null' ( '<' type=XID '>' )?
+	//;
 	public LiteralNullValueElements getLiteralNullValueAccess() {
 		return pLiteralNullValue;
 	}
@@ -3031,9 +3374,10 @@
 		return getLiteralNullValueAccess().getRule();
 	}
 	
-	//LiteralVariableReference expression::LiteralReferenceValue:
-	//	LiteralTimeVariable
-	//	| LiteralTimeDeltaVariable;
+	//LiteralVariableReference returns expression::LiteralReferenceValue
+	//: LiteralTimeVariable
+	//| LiteralTimeDeltaVariable
+	//;
 	public LiteralVariableReferenceElements getLiteralVariableReferenceAccess() {
 		return pLiteralVariableReference;
 	}
@@ -3042,8 +3386,9 @@
 		return getLiteralVariableReferenceAccess().getRule();
 	}
 	
-	//LiteralTimeVariable expression::LiteralTimeVariable:
-	//	{expression::LiteralTimeVariable} symbol='$time';
+	//LiteralTimeVariable returns expression::LiteralTimeVariable
+	//    : {expression::LiteralTimeVariable} ( symbol='$time' )
+	//    ;
 	public LiteralTimeVariableElements getLiteralTimeVariableAccess() {
 		return pLiteralTimeVariable;
 	}
@@ -3052,8 +3397,9 @@
 		return getLiteralTimeVariableAccess().getRule();
 	}
 	
-	//LiteralTimeDeltaVariable expression::LiteralTimeDeltaVariable:
-	//	{expression::LiteralTimeDeltaVariable} symbol='$delta';
+	//LiteralTimeDeltaVariable returns expression::LiteralTimeDeltaVariable
+	//    : {expression::LiteralTimeDeltaVariable} ( symbol='$delta' )
+	//    ;
 	public LiteralTimeDeltaVariableElements getLiteralTimeDeltaVariableAccess() {
 		return pLiteralTimeDeltaVariable;
 	}
@@ -3062,13 +3408,14 @@
 		return getLiteralTimeDeltaVariableAccess().getRule();
 	}
 	
-	//LiteralInstanceReference expression::LiteralReferenceValue:
-	//	LiteralThisInstance
-	//	| LiteralSelfInstance
-	//	| LiteralParentInstance
-	//	| LiteralSuperInstance
-	//	| LiteralSystemInstance
-	//	| LiteralEnvInstance;
+	//LiteralInstanceReference returns expression::LiteralReferenceValue
+	//: LiteralThisInstance
+	//| LiteralSelfInstance
+	//| LiteralParentInstance
+	//| LiteralSuperInstance
+	//| LiteralSystemInstance
+	//| LiteralEnvInstance
+	//;
 	public LiteralInstanceReferenceElements getLiteralInstanceReferenceAccess() {
 		return pLiteralInstanceReference;
 	}
@@ -3077,8 +3424,9 @@
 		return getLiteralInstanceReferenceAccess().getRule();
 	}
 	
-	//LiteralThisInstance expression::LiteralThisInstance:
-	//	{expression::LiteralThisInstance} symbol='$this';
+	//LiteralThisInstance returns expression::LiteralThisInstance
+	//: {expression::LiteralThisInstance} ( symbol='$this' )
+	//;
 	public LiteralThisInstanceElements getLiteralThisInstanceAccess() {
 		return pLiteralThisInstance;
 	}
@@ -3087,8 +3435,9 @@
 		return getLiteralThisInstanceAccess().getRule();
 	}
 	
-	//LiteralSelfInstance expression::LiteralSelfInstance:
-	//	{expression::LiteralSelfInstance} symbol='$self';
+	//LiteralSelfInstance returns expression::LiteralSelfInstance
+	//: {expression::LiteralSelfInstance} ( symbol='$self' )
+	//;
 	public LiteralSelfInstanceElements getLiteralSelfInstanceAccess() {
 		return pLiteralSelfInstance;
 	}
@@ -3097,8 +3446,9 @@
 		return getLiteralSelfInstanceAccess().getRule();
 	}
 	
-	//LiteralParentInstance expression::LiteralParentInstance:
-	//	{expression::LiteralParentInstance} symbol='$parent';
+	//LiteralParentInstance returns expression::LiteralParentInstance
+	//: {expression::LiteralParentInstance} ( symbol='$parent' )
+	//;
 	public LiteralParentInstanceElements getLiteralParentInstanceAccess() {
 		return pLiteralParentInstance;
 	}
@@ -3107,8 +3457,9 @@
 		return getLiteralParentInstanceAccess().getRule();
 	}
 	
-	//LiteralSuperInstance expression::LiteralSuperInstance:
-	//	{expression::LiteralSuperInstance} symbol='$super';
+	//LiteralSuperInstance returns expression::LiteralSuperInstance
+	//: {expression::LiteralSuperInstance} ( symbol='$super' )
+	//;
 	public LiteralSuperInstanceElements getLiteralSuperInstanceAccess() {
 		return pLiteralSuperInstance;
 	}
@@ -3117,8 +3468,9 @@
 		return getLiteralSuperInstanceAccess().getRule();
 	}
 	
-	//LiteralSystemInstance expression::LiteralSystemInstance:
-	//	{expression::LiteralSystemInstance} symbol='$system';
+	//LiteralSystemInstance returns expression::LiteralSystemInstance
+	//: {expression::LiteralSystemInstance} ( symbol='$system' )
+	//;
 	public LiteralSystemInstanceElements getLiteralSystemInstanceAccess() {
 		return pLiteralSystemInstance;
 	}
@@ -3127,8 +3479,9 @@
 		return getLiteralSystemInstanceAccess().getRule();
 	}
 	
-	//LiteralEnvInstance expression::LiteralEnvInstance:
-	//	{expression::LiteralEnvInstance} symbol=('$env' | 'env');
+	//LiteralEnvInstance returns expression::LiteralEnvInstance
+	//: {expression::LiteralEnvInstance} symbol=( '$env' | 'env' )
+	//;
 	public LiteralEnvInstanceElements getLiteralEnvInstanceAccess() {
 		return pLiteralEnvInstance;
 	}
@@ -3140,9 +3493,10 @@
 	//////////////////////////////////////////////////////////////////////////////////
 	//// Terminal Rules
 	//////////////////////////////////////////////////////////////////////////////////
-	//EBoolean ecore::EBoolean:
-	//	'true'
-	//	| 'false';
+	//EBoolean returns ecore::EBoolean
+	//: 'true'
+	//| 'false'
+	//;
 	public EBooleanElements getEBooleanAccess() {
 		return pEBoolean;
 	}
@@ -3151,14 +3505,16 @@
 		return getEBooleanAccess().getRule();
 	}
 	
-	//terminal CHARACTER:
-	//	"'" . "'";
+	//terminal CHARACTER
+	//: "'" . "'"
+	//;
 	public TerminalRule getCHARACTERRule() {
 		return tCHARACTER;
 	}
 	
-	//EChar ecore::EChar:
-	//	CHARACTER;
+	//EChar returns ecore::EChar
+	//: CHARACTER
+	//;
 	public ECharElements getECharAccess() {
 		return pEChar;
 	}
@@ -3167,8 +3523,8 @@
 		return getECharAccess().getRule();
 	}
 	
-	//ELong ecore::ELong:
-	//	'-'? INT;
+	//ELong returns ecore::ELong:
+	//    '-'? INT;
 	public ELongElements getELongAccess() {
 		return pELong;
 	}
@@ -3177,8 +3533,8 @@
 		return getELongAccess().getRule();
 	}
 	
-	//EDouble ecore::EDouble:
-	//	'-'? INT? '.' INT //(('E'|'e') '-'? INT)?
+	//EDouble returns ecore::EDouble
+	//: '-'? INT? '.' INT //(('E'|'e') '-'? INT)?
 	//;
 	public EDoubleElements getEDoubleAccess() {
 		return pEDouble;
@@ -3188,8 +3544,9 @@
 		return getEDoubleAccess().getRule();
 	}
 	
-	//EBigDecimal ecore::EBigDecimal:
-	//	INT? '.' INT;
+	//EBigDecimal returns ecore::EBigDecimal
+	//: INT? '.' INT
+	//;
 	public EBigDecimalElements getEBigDecimalAccess() {
 		return pEBigDecimal;
 	}
@@ -3198,8 +3555,9 @@
 		return getEBigDecimalAccess().getRule();
 	}
 	
-	//EString:
-	//	STRING;
+	//EString returns ecore::EString
+	//: STRING
+	//;
 	public EStringElements getEStringAccess() {
 		return pEString;
 	}
@@ -3211,10 +3569,11 @@
 	//////////////////////////////////////////////////////////////////////////////////
 	//// @DEPRECATED Diversity Configuration Specification
 	//////////////////////////////////////////////////////////////////////////////////
-	//DeprecatedReservedWord:
-	//	'form' | 'endform'
-	//	| 'prototype' | 'endprototype'
-	//	| 'section' | 'endsection';
+	//DeprecatedReservedWord
+	//: 'form'      | 'endform'
+	//| 'prototype' | 'endprototype'
+	//| 'section'   | 'endsection'
+	//;
 	public DeprecatedReservedWordElements getDeprecatedReservedWordAccess() {
 		return pDeprecatedReservedWord;
 	}
@@ -3223,17 +3582,18 @@
 		return getDeprecatedReservedWordAccess().getRule();
 	}
 	
-	//DeprecatedObject sew::WObject:
-	//	{sew::WObject}
-	//	'form'
-	//	name=UFI description=EString? 'as' '&'? type=UFI 'is'
-	//	element+=DeprecatedProperty*
-	//	'endform'
-	//	| {sew::WObject}
-	//	'prototype'
-	//	name=UFI description=EString? 'as' '&'? type=UFI 'is'
-	//	element+=DeprecatedProperty*
-	//	'endprototype';
+	//DeprecatedObject returns sew::WObject
+	//: {sew::WObject}
+	//    'form'
+	//        name=UFI  ( description=EString )?  'as'  ( '&' )?  type=UFI  'is'
+	//        ( element+=DeprecatedProperty )*
+	//    'endform'
+	//| {sew::WObject}
+	//    'prototype'
+	//        name=UFI  ( description=EString )?  'as'  ( '&' )?  type=UFI  'is'
+	//        ( element+=DeprecatedProperty )*
+	//    'endprototype'
+	//;
 	public DeprecatedObjectElements getDeprecatedObjectAccess() {
 		return pDeprecatedObject;
 	}
@@ -3242,9 +3602,10 @@
 		return getDeprecatedObjectAccess().getRule();
 	}
 	
-	//DeprecatedProperty sew::WProperty:
-	//	DeprecatedSection
-	//	| DeprecatedAttribute;
+	//DeprecatedProperty returns sew::WProperty
+	//: DeprecatedSection
+	//| DeprecatedAttribute
+	//;
 	public DeprecatedPropertyElements getDeprecatedPropertyAccess() {
 		return pDeprecatedProperty;
 	}
@@ -3253,14 +3614,17 @@
 		return getDeprecatedPropertyAccess().getRule();
 	}
 	
-	//DeprecatedSection sew::WSection:
-	//	{sew::WSection}
-	//	'section' name=XID
-	//	//		( element+=( Object | Attribute  ) )*
-	//	element+=(DeprecatedAttribute | DeprecatedObject | Object)*
-	//	'endsection' XID?
-	//	| name=XID description=EString? ('[' element+=(DeprecatedAttribute | DeprecatedObject | Object)* ']'
-	//	| ':' element+=(DeprecatedAttribute | DeprecatedObject | Object)*);
+	//DeprecatedSection returns sew::WSection
+	//: {sew::WSection}
+	//    'section'  name=XID
+	////        ( element+=( Object | Attribute  ) )*
+	//        ( element+=( DeprecatedAttribute | DeprecatedObject | Object ) )*
+	//    'endsection'  ( XID )?
+	//| name=XID  ( description=EString )?
+	//    ( '[' ( element+=( DeprecatedAttribute | DeprecatedObject | Object ) )* ']'
+	//    | ':' ( element+=( DeprecatedAttribute | DeprecatedObject | Object ) )*
+	//    )
+	//;
 	public DeprecatedSectionElements getDeprecatedSectionAccess() {
 		return pDeprecatedSection;
 	}
@@ -3269,8 +3633,10 @@
 		return getDeprecatedSectionAccess().getRule();
 	}
 	
-	//DeprecatedAttribute sew::WAttribute:
-	//	{sew::WAttribute} name=DeprecatedAttributeID '=' value=ValueSpecification ';'?;
+	//DeprecatedAttribute returns sew::WAttribute
+	//: {sew::WAttribute}
+	//    name=DeprecatedAttributeID  '='  value=ValueSpecification  ( ';' )?
+	//;
 	public DeprecatedAttributeElements getDeprecatedAttributeAccess() {
 		return pDeprecatedAttribute;
 	}
@@ -3279,9 +3645,10 @@
 		return getDeprecatedAttributeAccess().getRule();
 	}
 	
-	//DeprecatedAttributeID:
-	//	XID
-	//	| AT_IDENTIFIER;
+	//DeprecatedAttributeID
+	//: XID
+	//| AT_IDENTIFIER
+	//;
 	public DeprecatedAttributeIDElements getDeprecatedAttributeIDAccess() {
 		return pDeprecatedAttributeID;
 	}
@@ -3290,11 +3657,13 @@
 		return getDeprecatedAttributeIDAccess().getRule();
 	}
 	
-	//DeprecatedExpression sew::WValueSpecification:
-	//	{expression::Expression}
-	//	'${'
-	//	operator=('|;|' | '|i|') operand+=ValueSpecification*
-	//	'}';
+	//DeprecatedExpression returns sew::WValueSpecification
+	//: {expression::Expression}
+	//    '${'
+	//        operator=( '|;|' | '|i|' )
+	//        ( operand+=ValueSpecification )*
+	//    '}'
+	//;
 	public DeprecatedExpressionElements getDeprecatedExpressionAccess() {
 		return pDeprecatedExpression;
 	}
@@ -3303,45 +3672,40 @@
 		return getDeprecatedExpressionAccess().getRule();
 	}
 	
-	//terminal ID:
-	//	'^'? ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '_' | '0'..'9')*;
+	//terminal ID: '^'?('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
 	public TerminalRule getIDRule() {
 		return gaTerminals.getIDRule();
 	}
 	
-	//terminal INT returns ecore::EInt:
-	//	'0'..'9'+;
+	//terminal INT returns ecore::EInt: ('0'..'9')+;
 	public TerminalRule getINTRule() {
 		return gaTerminals.getINTRule();
 	}
 	
 	//terminal STRING:
-	//	'"' ('\\' . | !('\\' | '"'))* '"' |
-	//	"'" ('\\' . | !('\\' | "'"))* "'";
+	//            '"' ( '\\' . /* 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' */ | !('\\'|'"') )* '"' |
+	//            "'" ( '\\' . /* 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' */ | !('\\'|"'") )* "'"
+	//        ;
 	public TerminalRule getSTRINGRule() {
 		return gaTerminals.getSTRINGRule();
 	}
 	
-	//terminal ML_COMMENT:
-	//	'/*'->'*/';
+	//terminal ML_COMMENT : '/*' -> '*/';
 	public TerminalRule getML_COMMENTRule() {
 		return gaTerminals.getML_COMMENTRule();
 	}
 	
-	//terminal SL_COMMENT:
-	//	'//' !('\n' | '\r')* ('\r'? '\n')?;
+	//terminal SL_COMMENT : '//' !('\n'|'\r')* ('\r'? '\n')?;
 	public TerminalRule getSL_COMMENTRule() {
 		return gaTerminals.getSL_COMMENTRule();
 	}
 	
-	//terminal WS:
-	//	' ' | '\t' | '\r' | '\n'+;
+	//terminal WS         : (' '|'\t'|'\r'|'\n')+;
 	public TerminalRule getWSRule() {
 		return gaTerminals.getWSRule();
 	}
 	
-	//terminal ANY_OTHER:
-	//	.;
+	//terminal ANY_OTHER: .;
 	public TerminalRule getANY_OTHERRule() {
 		return gaTerminals.getANY_OTHERRule();
 	}
diff --git a/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/validation/AbstractSEWValidator.java b/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/validation/AbstractSEWValidator.java
index 6324d4f..9d74920 100644
--- a/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/validation/AbstractSEWValidator.java
+++ b/editor/sew/org.eclipse.efm.sew.xtext/src-gen/org/eclipse/efm/sew/xtext/validation/AbstractSEWValidator.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.sew.xtext.validation;
 
diff --git a/editor/transition/org.eclipse.efm.papyrus.xtext.transition.ide/META-INF/MANIFEST.MF b/editor/transition/org.eclipse.efm.papyrus.xtext.transition.ide/META-INF/MANIFEST.MF
index 5c000a3..475d0f1 100644
--- a/editor/transition/org.eclipse.efm.papyrus.xtext.transition.ide/META-INF/MANIFEST.MF
+++ b/editor/transition/org.eclipse.efm.papyrus.xtext.transition.ide/META-INF/MANIFEST.MF
@@ -8,7 +8,7 @@
 Require-Bundle: org.eclipse.efm.papyrus.xtext.transition,

  org.eclipse.xtext.ide,

  org.eclipse.xtext.xbase.ide

-Bundle-RequiredExecutionEnvironment: JavaSE-1.8

+Bundle-RequiredExecutionEnvironment: JavaSE-11

 Export-Package: org.eclipse.efm.papyrus.xtext.ide.contentassist.antlr,

  org.eclipse.efm.papyrus.xtext.ide.contentassist.antlr.internal

 

diff --git a/editor/transition/org.eclipse.efm.papyrus.xtext.transition.ui/META-INF/MANIFEST.MF b/editor/transition/org.eclipse.efm.papyrus.xtext.transition.ui/META-INF/MANIFEST.MF
index 955150b..689539a 100644
--- a/editor/transition/org.eclipse.efm.papyrus.xtext.transition.ui/META-INF/MANIFEST.MF
+++ b/editor/transition/org.eclipse.efm.papyrus.xtext.transition.ui/META-INF/MANIFEST.MF
@@ -23,9 +23,14 @@
  org.eclipse.papyrus.infra.emf,

  org.eclipse.papyrus.infra.core;bundle-version="1.1.3",

  org.eclipse.efm.formalml;bundle-version="[0.0.1,1.0.0)",

- org.eclipse.papyrus.infra.gmfdiag.extensionpoints.editors

-Import-Package: org.apache.log4j

-Bundle-RequiredExecutionEnvironment: JavaSE-1.8

+ org.eclipse.papyrus.infra.gmfdiag.extensionpoints.editors,

+ org.eclipse.gmf.runtime.common.core,

+ org.eclipse.emf.transaction,

+ org.eclipse.gmf.runtime.diagram.ui;bundle-version="1.9.0"

+Import-Package: org.apache.log4j,

+ org.eclipse.emf.workspace,

+ org.eclipse.gmf.runtime.emf.commands.core.command

+Bundle-RequiredExecutionEnvironment: JavaSE-11

 Export-Package: org.eclipse.efm.papyrus.xtext.ui.quickfix,

  org.eclipse.efm.papyrus.xtext.transition.ui.internal,

  org.eclipse.efm.papyrus.xtext.ui.contentassist

diff --git a/editor/transition/org.eclipse.efm.papyrus.xtext.transition/META-INF/MANIFEST.MF b/editor/transition/org.eclipse.efm.papyrus.xtext.transition/META-INF/MANIFEST.MF
index 26b41ea..352d69d 100644
--- a/editor/transition/org.eclipse.efm.papyrus.xtext.transition/META-INF/MANIFEST.MF
+++ b/editor/transition/org.eclipse.efm.papyrus.xtext.transition/META-INF/MANIFEST.MF
@@ -16,7 +16,7 @@
  org.eclipse.xtext.util,

  org.eclipse.xtend.lib,

  org.eclipse.emf.common

-Bundle-RequiredExecutionEnvironment: JavaSE-1.8

+Bundle-RequiredExecutionEnvironment: JavaSE-11

 Export-Package: org.eclipse.efm.papyrus.xtext.transition,

  org.eclipse.efm.papyrus.xtext.services,

  org.eclipse.efm.papyrus.xtext.transition.util,

diff --git a/editor/xlia/org.eclipse.efm.formalml.ecore/.classpath b/editor/xlia/org.eclipse.efm.formalml.ecore/.classpath
index 3cab749..26abbfa 100644
--- a/editor/xlia/org.eclipse.efm.formalml.ecore/.classpath
+++ b/editor/xlia/org.eclipse.efm.formalml.ecore/.classpath
@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <classpath>

-	<classpathentry kind="src" path="ecore-gen"/>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11">

 		<attributes>

 			<attribute name="module" value="true"/>

 		</attributes>

 	</classpathentry>

 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

-	<classpathentry kind="src" path="src"/>

-	<classpathentry kind="src" path="xtend-gen"/>

+	<classpathentry kind="src" path="src/"/>

+	<classpathentry kind="src" path="ecore-gen/"/>

+	<classpathentry kind="src" path="xtend-gen/"/>

 	<classpathentry kind="output" path="target/classes"/>

 </classpath>

diff --git a/editor/xlia/org.eclipse.efm.formalml.ecore/.settings/org.eclipse.jdt.core.prefs b/editor/xlia/org.eclipse.efm.formalml.ecore/.settings/org.eclipse.jdt.core.prefs
index 295926d..11265a3 100644
--- a/editor/xlia/org.eclipse.efm.formalml.ecore/.settings/org.eclipse.jdt.core.prefs
+++ b/editor/xlia/org.eclipse.efm.formalml.ecore/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,10 @@
 eclipse.preferences.version=1

 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8

-org.eclipse.jdt.core.compiler.compliance=1.8

+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11

+org.eclipse.jdt.core.compiler.compliance=11

 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled

 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

-org.eclipse.jdt.core.compiler.source=1.8

+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning

+org.eclipse.jdt.core.compiler.release=enabled

+org.eclipse.jdt.core.compiler.source=11

diff --git a/editor/xlia/org.eclipse.efm.formalml.ecore/META-INF/MANIFEST.MF b/editor/xlia/org.eclipse.efm.formalml.ecore/META-INF/MANIFEST.MF
index ecca70c..405d30c 100644
--- a/editor/xlia/org.eclipse.efm.formalml.ecore/META-INF/MANIFEST.MF
+++ b/editor/xlia/org.eclipse.efm.formalml.ecore/META-INF/MANIFEST.MF
@@ -16,7 +16,7 @@
  org.eclipse.xtend.lib,

  org.eclipse.xtend.lib.macro,

  org.eclipse.efm.formalml.ecore;visibility:=reexport

-Bundle-RequiredExecutionEnvironment: JavaSE-1.8

+Bundle-RequiredExecutionEnvironment: JavaSE-11

 Export-Package: org.eclipse.efm.ecore.formalml.common,

  org.eclipse.efm.ecore.formalml.common.impl,

  org.eclipse.efm.ecore.formalml.common.util,

@@ -42,4 +42,3 @@
  org.eclipse.efm.formalml.ecore.factory

 Bundle-ActivationPolicy: lazy

 Automatic-Module-Name: org.eclipse.efm.formalml.ecore

-Import-Package: org.eclipse.jdt.internal.compiler.ast

diff --git a/editor/xlia/org.eclipse.efm.formalml.ecore/xtend-gen/org/eclipse/efm/formalml/ecore/factory/.XLIAGenerator.xtendbin b/editor/xlia/org.eclipse.efm.formalml.ecore/xtend-gen/org/eclipse/efm/formalml/ecore/factory/.XLIAGenerator.xtendbin
deleted file mode 100644
index 87ccabf..0000000
--- a/editor/xlia/org.eclipse.efm.formalml.ecore/xtend-gen/org/eclipse/efm/formalml/ecore/factory/.XLIAGenerator.xtendbin
+++ /dev/null
Binary files differ
diff --git a/editor/xlia/org.eclipse.efm.formalml.plantuml/.classpath b/editor/xlia/org.eclipse.efm.formalml.plantuml/.classpath
new file mode 100644
index 0000000..e423b03
--- /dev/null
+++ b/editor/xlia/org.eclipse.efm.formalml.plantuml/.classpath
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11">
+		<attributes>
+			<attribute name="module" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry excluding="org/eclipse/efm/formalml/plantuml/SysMLDiagramTextProvider.java" kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/editor/xlia/org.eclipse.efm.formalml.plantuml/.project b/editor/xlia/org.eclipse.efm.formalml.plantuml/.project
new file mode 100644
index 0000000..b57a88a
--- /dev/null
+++ b/editor/xlia/org.eclipse.efm.formalml.plantuml/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>org.eclipse.efm.formalml.plantuml</name>

+	<comment></comment>

+	<projects>

+	</projects>

+	<buildSpec>

+		<buildCommand>

+			<name>org.eclipse.jdt.core.javabuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.eclipse.pde.ManifestBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.eclipse.pde.SchemaBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+	</buildSpec>

+	<natures>

+		<nature>org.eclipse.pde.PluginNature</nature>

+		<nature>org.eclipse.jdt.core.javanature</nature>

+	</natures>

+</projectDescription>

diff --git a/editor/xlia/org.eclipse.efm.formalml.plantuml/.settings/org.eclipse.jdt.core.prefs b/editor/xlia/org.eclipse.efm.formalml.plantuml/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..bd1095b
--- /dev/null
+++ b/editor/xlia/org.eclipse.efm.formalml.plantuml/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,9 @@
+eclipse.preferences.version=1

+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11

+org.eclipse.jdt.core.compiler.compliance=11

+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled

+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning

+org.eclipse.jdt.core.compiler.release=enabled

+org.eclipse.jdt.core.compiler.source=11

diff --git a/editor/xlia/org.eclipse.efm.formalml.plantuml/META-INF/MANIFEST.MF b/editor/xlia/org.eclipse.efm.formalml.plantuml/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..28dbabf
--- /dev/null
+++ b/editor/xlia/org.eclipse.efm.formalml.plantuml/META-INF/MANIFEST.MF
@@ -0,0 +1,33 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: FML to Plantuml
+Bundle-SymbolicName: org.eclipse.efm.formalml.plantuml;singleton:=true
+Bundle-Version: 0.0.1.qualifier
+Bundle-Activator: org.eclipse.efm.formalml.plantuml.Activator
+Bundle-Vendor: CEA-LIST
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.emf.ecore,
+ org.eclipse.ui.navigator,
+ org.eclipse.core.resources
+Bundle-RequiredExecutionEnvironment: JavaSE-11
+Automatic-Module-Name: org.eclipse.efm.formalml.plantuml
+Bundle-ActivationPolicy: lazy
+Import-Package: com.google.common.collect;version="30.1.0",
+ net.sourceforge.plantuml.eclipse.utils,
+ org.eclipse.core.resources,
+ org.eclipse.efm.ecore.formalml.infrastructure,
+ org.eclipse.efm.ecore.formalml.specification,
+ org.eclipse.efm.formalml.xtext.generator,
+ org.eclipse.emf.common.util,
+ org.eclipse.jface.text,
+ org.eclipse.ui.ide,
+ org.eclipse.ui.navigator.resources,
+ org.eclipse.ui.part,
+ org.eclipse.ui.texteditor,
+ org.eclipse.xtext.nodemodel,
+ org.eclipse.xtext.nodemodel.util,
+ org.eclipse.xtext.resource,
+ org.eclipse.xtext.ui.editor,
+ org.eclipse.xtext.ui.editor.model,
+ org.eclipse.xtext.util.concurrent
diff --git a/editor/xlia/org.eclipse.efm.formalml.plantuml/about.html b/editor/xlia/org.eclipse.efm.formalml.plantuml/about.html
new file mode 100644
index 0000000..d35d5ae
--- /dev/null
+++ b/editor/xlia/org.eclipse.efm.formalml.plantuml/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 5, 2007</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/editor/xlia/org.eclipse.efm.formalml.plantuml/build.properties b/editor/xlia/org.eclipse.efm.formalml.plantuml/build.properties
new file mode 100644
index 0000000..6f20375
--- /dev/null
+++ b/editor/xlia/org.eclipse.efm.formalml.plantuml/build.properties
@@ -0,0 +1,5 @@
+source.. = src/

+output.. = bin/

+bin.includes = META-INF/,\

+               .,\

+               plugin.xml

diff --git a/editor/xlia/org.eclipse.efm.formalml.plantuml/plugin.xml b/editor/xlia/org.eclipse.efm.formalml.plantuml/plugin.xml
new file mode 100644
index 0000000..bb115c5
--- /dev/null
+++ b/editor/xlia/org.eclipse.efm.formalml.plantuml/plugin.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<?eclipse version="3.4"?>

+<plugin>

+   <extension

+         point="net.sourceforge.plantuml.eclipse.diagramTextProvider">

+      <diagramTextProvider

+            id="org.eclipse.efm.formalml.plantuml.FormalMLDiagramTextProvider"

+            label="Diagrams generated from FormalML models"

+            priority="100"

+            providerClass="org.eclipse.efm.formalml.plantuml.FormalMLDiagramTextProvider">

+      </diagramTextProvider>

+   </extension>

+   <extension

+         point="net.sourceforge.plantuml.eclipse.linkOpener">

+      <linkOpener

+            linkOpenerClass="org.eclipse.efm.formalml.plantuml.FormalMLDiagramLinkOpener">

+      </linkOpener>

+   </extension>

+

+</plugin>

diff --git a/editor/xlia/org.eclipse.efm.formalml.plantuml/pom.xml b/editor/xlia/org.eclipse.efm.formalml.plantuml/pom.xml
new file mode 100644
index 0000000..2089656
--- /dev/null
+++ b/editor/xlia/org.eclipse.efm.formalml.plantuml/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.eclipse.efm</groupId>
+		<artifactId>org.eclipse.efm.modeling.editor.xlia</artifactId>
+		<version>0.0.1-SNAPSHOT</version>
+	</parent>
+	<artifactId>org.eclipse.efm.formalml.plantuml</artifactId>
+	<packaging>eclipse-plugin</packaging>
+	<name>org.eclipse.efm.formalml.plantuml</name>
+	<description>This plug-in contains PlantUML's extension for graphical xLIA model visualization.</description>
+</project>
\ No newline at end of file
diff --git a/editor/xlia/org.eclipse.efm.formalml.plantuml/src/org/eclipse/efm/formalml/plantuml/Activator.java b/editor/xlia/org.eclipse.efm.formalml.plantuml/src/org/eclipse/efm/formalml/plantuml/Activator.java
new file mode 100644
index 0000000..37bf885
--- /dev/null
+++ b/editor/xlia/org.eclipse.efm.formalml.plantuml/src/org/eclipse/efm/formalml/plantuml/Activator.java
@@ -0,0 +1,88 @@
+/*****************************************************************************

+* Copyright (c) 2021 CEA LIST.

+*

+* All rights reserved. This program and the accompanying materials

+* are made available under the terms of the Eclipse Public License v1.0

+* which accompanies this distribution, and is available at

+* http://www.eclipse.org/legal/epl-v10.html

+*

+* Contributors:

+*  Arnault Lapitre (CEA LIST) arnault.lapitre@cea.fr

+*  - Initial API and implementation

+*****************************************************************************/

+package org.eclipse.efm.formalml.plantuml;

+

+import java.util.Map;

+import java.util.UUID;

+

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.ui.plugin.AbstractUIPlugin;

+import org.osgi.framework.BundleContext;

+

+import com.google.common.collect.BiMap;

+import com.google.common.collect.HashBiMap;

+

+/**

+ * The activator class controls the plug-in life cycle

+ */

+public class Activator extends AbstractUIPlugin {

+

+	// The plug-in ID

+	public static final String PLUGIN_ID = "org.eclipse.efm.formalml.plantuml"; //$NON-NLS-1$

+

+	// The shared instance

+	private static Activator plugin;

+

+	/**

+	 * The constructor

+	 */

+	public Activator() {

+	}

+

+	@Override

+	public void start(final BundleContext context) throws Exception {

+		super.start(context);

+		plugin = this;

+	}

+

+	@Override

+	public void stop(final BundleContext context) throws Exception {

+		plugin = null;

+		super.stop(context);

+	}

+

+	/**

+	 * Returns the shared instance

+	 *

+	 * @return the shared instance

+	 */

+	public static Activator getDefault() {

+		return plugin;

+	}

+

+

+    private final BiMap<UUID, EObject> elementsMap = HashBiMap.create();

+

+    private synchronized EObject get(final UUID uuid) {

+        return elementsMap.get(uuid);

+    }

+

+    private synchronized UUID register(final EObject eObj) {

+        final Map<EObject, UUID> map = elementsMap.inverse();

+        UUID uuid = map.get(eObj);

+        if (uuid != null) return uuid;

+        uuid = UUID.randomUUID();

+        elementsMap.put(uuid, eObj);

+        return uuid;

+    }

+

+    public static EObject findEObject(final UUID uuid) {

+        return getDefault().get(uuid);

+    }

+

+    public static UUID registerEObject(final EObject eObj) {

+        return getDefault().register(eObj);

+    }

+

+

+}

diff --git a/editor/xlia/org.eclipse.efm.formalml.plantuml/src/org/eclipse/efm/formalml/plantuml/FML2PlantUMLText.java b/editor/xlia/org.eclipse.efm.formalml.plantuml/src/org/eclipse/efm/formalml/plantuml/FML2PlantUMLText.java
new file mode 100644
index 0000000..d259d2f
--- /dev/null
+++ b/editor/xlia/org.eclipse.efm.formalml.plantuml/src/org/eclipse/efm/formalml/plantuml/FML2PlantUMLText.java
@@ -0,0 +1,141 @@
+/*****************************************************************************
+* Copyright (c) 2021 CEA LIST.
+*
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+*  Arnault Lapitre (CEA LIST) arnault.lapitre@cea.fr
+*  - Initial API and implementation
+*****************************************************************************/
+package org.eclipse.efm.formalml.plantuml;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.efm.ecore.formalml.infrastructure.Machine;
+import org.eclipse.efm.ecore.formalml.specification.XliaModel;
+import org.eclipse.efm.formalml.xtext.generator.FormalMLGenerator;
+import org.eclipse.emf.ecore.EObject;
+
+import net.sourceforge.plantuml.eclipse.utils.PlantumlConstants;
+
+public class FML2PlantUMLText {
+
+	public final static String DEFAULT_PUML_TEXT =
+			PlantumlConstants.START_UML + "\n"
+					+ "\nIViewPart -> FML2PUML: FML Diagram Text Request"
+					+ "\nFML2PUML --> IViewPart: FML Diagram Text Response"
+					+ "\n\n" + PlantumlConstants.END_UML;
+
+
+	public final static String DEFAULT_PUML_FML_STYLE_HEADER = ""
+			+ "\n\tskinparam backgroundColor White"
+
+			+ "\n\tskinparam state {"
+			+ "\n\t\tStartColor Green"
+			+ "\n\t\tEndColor Red"
+
+			+ "\n\t\t'Attribut pour les transitions"
+			+ "\n\t\tArrowColor Black"
+			+ "\n\t\tArrowColor<< Else >> Orange"
+
+			+ "\n\t\t'Attribut par défaut pour les états"
+			+ "\n\t\tBorderColor Gray"
+			+ "\n\t\tBackgroundColor Wheat"
+
+			+ "\n\t\t'Attribut pour les états composites"
+			+ "\n\t\tBackgroundColor<< System       >> Turquoise"
+			+ "\n\t\tBackgroundColor<< Statemachine >> DodgerBlue"
+			+ "\n\t\tBackgroundColor<< Machine      >> SpringGreen"
+			+ "\n\t\tBackgroundColor<< Instance     >> Orchid"
+			+ "\n\t\tBackgroundColor<< Composite    >> SpringGreen"
+
+			+ "\n\t\t'Attribut pour les états simples"
+			+ "\n\t\tBackgroundColor<< simple_hierarchic >> PaleTurquoise"
+			+ "\n\t\tBackgroundColor<< simple >> PaleTurquoise"
+			+ "\n\t\tBackgroundColor<< start  >> Green"
+			+ "\n\t\tBackgroundColor<< final >> Red"
+			+ "\n\t\tBackgroundColor<< sync   >> Aqua"
+
+			+ "\n\t\t'Attribut pour les pseudo-états"
+			+ "\n\t\tBackgroundColor<< pseudostate >> Lavender"
+			+ "\n\t\tBackgroundColor<< initial     >> GreenYellow"
+			+ "\n\t\tBackgroundColor<< junction    >> GreenYellow"
+			+ "\n\t\tBackgroundColor<< choice      >> Orange"
+			+ "\n\t\tBackgroundColor<< fork        >> SpringGreen"
+			+ "\n\t\tBackgroundColor<< junction    >> SpringGreen"
+			+ "\n\t\tBackgroundColor<< dhistory    >> SpringGreen"
+			+ "\n\t\tBackgroundColor<< shistory    >> SpringGreen"
+			+ "\n\t\tBackgroundColor<< return      >> OrangeRed"
+			+ "\n\t\tBackgroundColor<< terminal    >> Red"
+
+			+ "\n\t\tFontColor Black"
+			+ "\n\t\tFontName Times"
+			+ "\n\t\tFontSize 14"
+			+"\n\t}\n\n";
+
+
+
+	protected void addStyleHeader(final StringBuilder buffer) {
+		buffer.append(DEFAULT_PUML_FML_STYLE_HEADER);
+	}
+
+	public String FML2PUML(final List<? extends EObject> eObjs) {
+
+		final FormalMLGenerator fmlGen = new FormalMLGenerator();
+
+		final StringBuilder buffer = new StringBuilder(PlantumlConstants.START_UML + "\n\n");
+
+
+//		initStyle();
+//		Visitor v = initVisitor();
+//		v.setSysML2PlantUMLText(this);
+//
+		addStyleHeader(buffer);
+//
+//		initIdMap();
+//
+		for (final EObject eObj : eObjs) {
+			if (eObj instanceof Machine) {
+				buffer.append( fmlGen.generateMachineGraphic((Machine) eObj) );
+			}
+			else if (eObj instanceof XliaModel) {
+				buffer.append( fmlGen.generateMachineGraphic(((XliaModel) eObj).getSystem()) );
+			}
+		}
+
+
+//		buffer.append(v.getString());
+//		return buffer.toString();
+
+		if( buffer.length() > PlantumlConstants.START_UML.length() + 7) {
+			buffer.append("\n\n" + PlantumlConstants.END_UML);
+
+			return buffer.toString();
+		}
+
+		return DEFAULT_PUML_TEXT;
+	}
+
+
+	public List<? extends EObject> setupVisualizationEObjects(final EObject eObj) {
+		if (eObj != null) {
+			EObject eObjParent = eObj;
+			while (eObjParent != null && !((eObjParent instanceof Machine) || (eObjParent instanceof XliaModel))) {
+				eObjParent = eObjParent.eContainer();
+			}
+			if (eObjParent != null) {
+				final List<EObject> eObjs = new ArrayList<EObject>(1);
+				eObjs.add(eObjParent);
+
+				return eObjs;
+			}
+
+		}
+		return null;
+	}
+
+}
diff --git a/editor/xlia/org.eclipse.efm.formalml.plantuml/src/org/eclipse/efm/formalml/plantuml/FormalMLDiagramLinkOpener.java b/editor/xlia/org.eclipse.efm.formalml.plantuml/src/org/eclipse/efm/formalml/plantuml/FormalMLDiagramLinkOpener.java
new file mode 100644
index 0000000..efcf395
--- /dev/null
+++ b/editor/xlia/org.eclipse.efm.formalml.plantuml/src/org/eclipse/efm/formalml/plantuml/FormalMLDiagramLinkOpener.java
@@ -0,0 +1,119 @@
+/*****************************************************************************

+* Copyright (c) 2021 CEA LIST.

+*

+* All rights reserved. This program and the accompanying materials

+* are made available under the terms of the Eclipse Public License v1.0

+* which accompanies this distribution, and is available at

+* http://www.eclipse.org/legal/epl-v10.html

+*

+* Contributors:

+*  Arnault Lapitre (CEA LIST) arnault.lapitre@cea.fr

+*  - Initial API and implementation

+*****************************************************************************/

+package org.eclipse.efm.formalml.plantuml;

+

+import java.util.UUID;

+

+import org.eclipse.core.resources.IFile;

+import org.eclipse.core.resources.ResourcesPlugin;

+import org.eclipse.core.runtime.IPath;

+import org.eclipse.core.runtime.Path;

+import org.eclipse.emf.common.util.URI;

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.emf.ecore.resource.Resource;

+import org.eclipse.ui.IEditorPart;

+import org.eclipse.ui.IWorkbenchPage;

+import org.eclipse.ui.PartInitException;

+import org.eclipse.ui.PlatformUI;

+import org.eclipse.ui.ide.IDE;

+import org.eclipse.xtext.nodemodel.ICompositeNode;

+import org.eclipse.xtext.nodemodel.util.NodeModelUtils;

+import org.eclipse.xtext.ui.editor.XtextEditor;

+

+import net.sourceforge.plantuml.eclipse.utils.ILinkOpener;

+import net.sourceforge.plantuml.eclipse.utils.LinkData;

+

+public class FormalMLDiagramLinkOpener implements ILinkOpener {

+

+    public static final String FML_PLINK_SCHEME = "pfml";

+

+    private URI getURI(final LinkData link) {

+        try {

+            return URI.createURI(link.href);

+        } catch (final IllegalArgumentException e) {

+        }

+        return null;

+    }

+

+    public static URI getEObjectLink(final EObject eObj) {

+        final UUID uuid = Activator.registerEObject(eObj);

+        if (uuid == null) return null;

+        return URI.createGenericURI(FML_PLINK_SCHEME, uuid.toString(), null);

+    }

+

+

+    @Override

+    public int supportsLink(final LinkData link) {

+        final URI uri = getURI(link);

+        if ((uri != null) && (FML_PLINK_SCHEME.equals(uri.scheme()))) {

+            return CUSTOM_SUPPORT;

+        }

+        return NO_SUPPORT;

+    }

+

+

+    private IPath getPath(final EObject eObj) {

+        final Resource r = eObj.eResource();

+        if (r == null) return null;

+

+        URI uri = r.getURI();

+        uri = r.getResourceSet().getURIConverter().normalize(uri);

+        final int size = uri.segmentCount();

+        if ((size > 1)

+            && ("platform".equals(uri.scheme()))

+            && ("resource".equals(uri.segment(0)))) {

+            final StringBuilder path = new StringBuilder();

+            for (int i = 1; i < size; i++) {

+                path.append('/');

+                path.append(URI.decode(uri.segment(i)));

+            }

+            return new Path(path.toString());

+        } else {

+            return new Path(uri.devicePath());

+        }

+    }

+

+    private EObject getEObject(final URI uri) {

+        final String str = uri.opaquePart();

+        if (str == null) return null;

+        try {

+            final UUID uuid = UUID.fromString(str);

+            return Activator.findEObject(uuid);

+        } catch (final IllegalArgumentException e) {

+            return null;

+        }

+    }

+

+    @Override

+    public void openLink(final LinkData link) {

+        final URI uri = getURI(link);

+        if (uri == null) return;

+        final EObject eObj = getEObject(uri);

+        if (eObj == null) return;

+

+        try {

+            final IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();

+            final IPath path = getPath(eObj);

+            final IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);

+            final IEditorPart editor = IDE.openEditor(page, file);

+            if (editor instanceof XtextEditor) {

+                final XtextEditor xeditor = (XtextEditor) editor;

+                final ICompositeNode node = NodeModelUtils.getNode(eObj);

+                xeditor.selectAndReveal(node.getOffset(), node.getLength());

+            }

+        } catch (final PartInitException e) {

+        }

+    }

+

+

+}

diff --git a/editor/xlia/org.eclipse.efm.formalml.plantuml/src/org/eclipse/efm/formalml/plantuml/FormalMLDiagramTextProvider.java b/editor/xlia/org.eclipse.efm.formalml.plantuml/src/org/eclipse/efm/formalml/plantuml/FormalMLDiagramTextProvider.java
new file mode 100644
index 0000000..9c708da
--- /dev/null
+++ b/editor/xlia/org.eclipse.efm.formalml.plantuml/src/org/eclipse/efm/formalml/plantuml/FormalMLDiagramTextProvider.java
@@ -0,0 +1,212 @@
+/*****************************************************************************

+* Copyright (c) 2021 CEA LIST.

+*

+* All rights reserved. This program and the accompanying materials

+* are made available under the terms of the Eclipse Public License v1.0

+* which accompanies this distribution, and is available at

+* http://www.eclipse.org/legal/epl-v10.html

+*

+* Contributors:

+*  Arnault Lapitre (CEA LIST) arnault.lapitre@cea.fr

+*  - Initial API and implementation

+*****************************************************************************/

+package org.eclipse.efm.formalml.plantuml;

+

+import java.io.IOException;

+import java.nio.file.Files;

+import java.nio.file.Path;

+import java.util.List;

+

+import org.eclipse.core.resources.IFile;

+import org.eclipse.core.resources.IResource;

+import org.eclipse.emf.ecore.EObject;

+import org.eclipse.jface.text.ITextSelection;

+import org.eclipse.jface.viewers.ISelection;

+import org.eclipse.jface.viewers.TreeSelection;

+import org.eclipse.ui.IEditorInput;

+import org.eclipse.ui.IEditorPart;

+import org.eclipse.ui.IViewPart;

+import org.eclipse.ui.navigator.resources.ProjectExplorer;

+import org.eclipse.ui.part.FileEditorInput;

+import org.eclipse.xtext.resource.EObjectAtOffsetHelper;

+import org.eclipse.xtext.resource.XtextResource;

+import org.eclipse.xtext.ui.editor.XtextEditor;

+import org.eclipse.xtext.util.concurrent.IUnitOfWork;

+

+import net.sourceforge.plantuml.eclipse.utils.DiagramTextProvider;

+import net.sourceforge.plantuml.eclipse.utils.PlantumlConstants;

+

+

+public class FormalMLDiagramTextProvider implements DiagramTextProvider {

+

+	public final static String DEFAULT_PUML_TEXT =

+			PlantumlConstants.START_UML + "\n"

+			+ "\nIEditorPart -> ITextSelection: getEditorTextSelection Request"

+			+ "\nITextSelection --> IEditorPart: getEditorTextSelection Response"

+

+			+ "\nIEditorPart -> ITextSelection: getEcoreObjectSelection Request"

+			+ "\nIEditorPart <-- ITextSelection: getEcoreObjectSelection Response\n"

+

+			+ "\nIEditorPart -> ITextSelection: getDiagramText Request"

+			+ "\nIEditorPart <-- ITextSelection: getDiagramText Response"

+			+ "\n\n" + PlantumlConstants.END_UML;

+

+	public final static String DEFAULT_PUML_TEXT_VIEW_PART =

+			PlantumlConstants.START_UML + "\n"

+			+ "\nIViewPart -> TreeSelection: getFilePath Request"

+			+ "\nTreeSelection --> IViewPart: getFilePath Response"

+			+ "\n\n" + PlantumlConstants.END_UML;

+

+

+    private final FML2PlantUMLText fml2PlantUMLText = new FML2PlantUMLText();

+

+    private final EObjectAtOffsetHelper eObjectAtOffsetHelper = new EObjectAtOffsetHelper();

+

+	public FormalMLDiagramTextProvider() {

+	}

+

+

+	protected String textFileContent(final String gvFilePath) {

+		String fileContent = "";

+		try {

+			fileContent = Files.readString(Path.of(gvFilePath));

+		} catch (final IOException e) {

+			fileContent = e.getMessage();

+		}

+

+		return fileContent;

+	}

+

+	protected String dotFileDiagramText(final String gvFilePath) {

+		final StringBuffer gvBuffer = new StringBuffer(PlantumlConstants.START_UML);

+		gvBuffer.append('\n')

+				.append(textFileContent(gvFilePath))

+				.append('\n')

+				.append(PlantumlConstants.END_UML);

+

+		return gvBuffer.toString();

+	}

+

+

+    public String fmlEcoreDiagramText(final IEditorPart editorPart, final ISelection selection) {

+        final XtextEditor xe = (XtextEditor) editorPart;

+        final XtextResource res = xe.getDocument().readOnly(new IUnitOfWork<XtextResource, XtextResource>() {

+            @Override

+            public XtextResource exec(final XtextResource st) {

+                return st;

+            }

+        });

+

+        if (selection instanceof ITextSelection) {

+            final ITextSelection its = (ITextSelection) selection;

+            final int offset = its.getOffset();

+            final EObject eObj = eObjectAtOffsetHelper.resolveElementAt(res, offset);

+            final List<? extends EObject> eObjs = fml2PlantUMLText.setupVisualizationEObjects(eObj);

+            if (eObjs != null) {

+                return fml2PlantUMLText.FML2PUML(eObjs);

+            }

+        }

+

+        return fml2PlantUMLText.FML2PUML(res.getContents());

+    }

+

+

+	@Override

+	public boolean supportsSelection(final ISelection selection) {

+		return selection instanceof ITextSelection;

+	}

+

+	@Override

+	public String getDiagramText(final IEditorPart editorPart, final ISelection selection) {

+//		return DEFAULT_PUML_TEXT;

+		final IEditorInput editorInput = editorPart.getEditorInput();

+		if( editorInput instanceof FileEditorInput )

+		{

+			final IFile file = ((FileEditorInput) editorInput).getFile();

+			if( "xlia".equals(file.getFileExtension())

+				|| "fml".equals(file.getFileExtension()) ) {

+				if( (editorPart instanceof XtextEditor) && (selection instanceof ITextSelection)) {

+					return fmlEcoreDiagramText(editorPart, selection);

+				}

+			}

+			else if( "gv".equals(file.getFileExtension()) ) {

+				return dotFileDiagramText(file.getLocation().toOSString());

+			}

+//			else if( "puml".equals(file.getFileExtension()) ) {

+//				return textFileContent(file.getLocation().toOSString());

+//			}

+		}

+		return DiagramTextProvider.super.getDiagramText(editorPart, selection);

+	}

+

+	@Override

+	public String getDiagramText(final IViewPart viewPart, final ISelection selection) {

+//		return DEFAULT_PUML_TEXT_VIEW_PART;

+

+		if( selection instanceof TreeSelection ) {

+			final TreeSelection treeSelection = (TreeSelection) selection;

+			if( ! treeSelection.isEmpty() ) {

+				final Object element = treeSelection.getFirstElement();

+				if( element instanceof IFile ) {

+					final IResource resource = (IFile) element;

+					if( "gv".equals(resource.getFileExtension()) ) {

+						return dotFileDiagramText(resource.getLocation().toOSString());

+					}

+					else if( "puml".equals(resource.getFileExtension()) ) {

+						return textFileContent(resource.getLocation().toOSString());

+					}

+				}

+			}

+		}

+		return DiagramTextProvider.super.getDiagramText(viewPart, selection);

+	}

+

+	@Override

+	public boolean supportsEditor(final IEditorPart editorPart) {

+		final IEditorInput editorInput = editorPart.getEditorInput();

+		if( editorInput instanceof FileEditorInput )

+		{

+			final IFile file = ((FileEditorInput) editorInput).getFile();

+			return( "xlia".equals(file.getFileExtension())

+				|| "fml".equals(file.getFileExtension())

+				|| "gv".equals(file.getFileExtension()) );

+		}

+

+		return DiagramTextProvider.super.supportsEditor(editorPart);

+	}

+

+	@Override

+	public boolean supportsView(final IViewPart viewPart) {

+		if( viewPart instanceof ProjectExplorer ) {

+			return true;

+		}

+

+		return DiagramTextProvider.super.supportsView(viewPart);

+	}

+

+//	@Override

+//	public boolean supportsPath(final IPath path) {

+//        return "xlia".equals(path.getFileExtension())

+//        		|| "fml".equals(path.getFileExtension())

+//        		|| "gv".equals(path.getFileExtension());

+//	}

+//

+//	@Override

+//	public String getDiagramText(final IEditorPart editorPart, final ISelection selection, final Map<String, Object> markerAttributes) {

+//		// TODO Auto-generated method stub

+//		return null;

+//	}

+//

+//	@Override

+//	public String getDiagramText(final IPath path) {

+//		if( "gv".equals(path.getFileExtension()) ) {

+//			return dotFileDiagramText(path.toOSString());

+//		}

+//		else if( "puml".equals(path.getFileExtension()) ) {

+//			return textFileContent(path.toOSString());

+//		}

+//		return null;

+//	}

+

+

+}
\ No newline at end of file
diff --git a/editor/xlia/org.eclipse.efm.formalml.plantuml/src/org/eclipse/efm/formalml/plantuml/pom.xml b/editor/xlia/org.eclipse.efm.formalml.plantuml/src/org/eclipse/efm/formalml/plantuml/pom.xml
new file mode 100644
index 0000000..2089656
--- /dev/null
+++ b/editor/xlia/org.eclipse.efm.formalml.plantuml/src/org/eclipse/efm/formalml/plantuml/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.eclipse.efm</groupId>
+		<artifactId>org.eclipse.efm.modeling.editor.xlia</artifactId>
+		<version>0.0.1-SNAPSHOT</version>
+	</parent>
+	<artifactId>org.eclipse.efm.formalml.plantuml</artifactId>
+	<packaging>eclipse-plugin</packaging>
+	<name>org.eclipse.efm.formalml.plantuml</name>
+	<description>This plug-in contains PlantUML's extension for graphical xLIA model visualization.</description>
+</project>
\ No newline at end of file
diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.ide/.classpath b/editor/xlia/org.eclipse.efm.formalml.xtext.ide/.classpath
index 026e45b..d0c5d81 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.ide/.classpath
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.ide/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>

 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

 	<classpathentry kind="src" path="src/"/>

 	<classpathentry kind="src" path="src-gen/"/>

diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.ide/.settings/org.eclipse.jdt.core.prefs b/editor/xlia/org.eclipse.efm.formalml.xtext.ide/.settings/org.eclipse.jdt.core.prefs
index 295926d..11265a3 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.ide/.settings/org.eclipse.jdt.core.prefs
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.ide/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,10 @@
 eclipse.preferences.version=1

 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8

-org.eclipse.jdt.core.compiler.compliance=1.8

+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11

+org.eclipse.jdt.core.compiler.compliance=11

 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled

 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

-org.eclipse.jdt.core.compiler.source=1.8

+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning

+org.eclipse.jdt.core.compiler.release=enabled

+org.eclipse.jdt.core.compiler.source=11

diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.ide/META-INF/MANIFEST.MF b/editor/xlia/org.eclipse.efm.formalml.xtext.ide/META-INF/MANIFEST.MF
index 0419e94..18409b9 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.ide/META-INF/MANIFEST.MF
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.ide/META-INF/MANIFEST.MF
@@ -10,7 +10,7 @@
  org.eclipse.xtext.ide,

  org.eclipse.xtext.xbase.ide,

  org.antlr.runtime;bundle-version="[3.2.0,3.2.1)"

-Bundle-RequiredExecutionEnvironment: JavaSE-1.8

+Bundle-RequiredExecutionEnvironment: JavaSE-11

 Export-Package: org.eclipse.efm.formalml.xtext.ide.contentassist.antlr,

  org.eclipse.efm.formalml.xtext.ide.contentassist.antlr.internal

 Automatic-Module-Name: org.eclipse.efm.formalml.xtext.ide

diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.ide/src-gen/org/eclipse/efm/formalml/xtext/ide/AbstractFormalMLIdeModule.java b/editor/xlia/org.eclipse.efm.formalml.xtext.ide/src-gen/org/eclipse/efm/formalml/xtext/ide/AbstractFormalMLIdeModule.java
index c8f1b41..c7eaec9 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.ide/src-gen/org/eclipse/efm/formalml/xtext/ide/AbstractFormalMLIdeModule.java
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.ide/src-gen/org/eclipse/efm/formalml/xtext/ide/AbstractFormalMLIdeModule.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.formalml.xtext.ide;
 
diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.ide/src-gen/org/eclipse/efm/formalml/xtext/ide/contentassist/antlr/FormalMLParser.java b/editor/xlia/org.eclipse.efm.formalml.xtext.ide/src-gen/org/eclipse/efm/formalml/xtext/ide/contentassist/antlr/FormalMLParser.java
index 11f09ac..45a75a2 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.ide/src-gen/org/eclipse/efm/formalml/xtext/ide/contentassist/antlr/FormalMLParser.java
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.ide/src-gen/org/eclipse/efm/formalml/xtext/ide/contentassist/antlr/FormalMLParser.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.formalml.xtext.ide.contentassist.antlr;
 
diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.ide/src-gen/org/eclipse/efm/formalml/xtext/ide/contentassist/antlr/PartialFormalMLContentAssistParser.java b/editor/xlia/org.eclipse.efm.formalml.xtext.ide/src-gen/org/eclipse/efm/formalml/xtext/ide/contentassist/antlr/PartialFormalMLContentAssistParser.java
index db7cf3c..e554b53 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.ide/src-gen/org/eclipse/efm/formalml/xtext/ide/contentassist/antlr/PartialFormalMLContentAssistParser.java
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.ide/src-gen/org/eclipse/efm/formalml/xtext/ide/contentassist/antlr/PartialFormalMLContentAssistParser.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.formalml.xtext.ide.contentassist.antlr;
 
@@ -20,10 +20,9 @@
 import org.eclipse.xtext.AbstractRule;
 import org.eclipse.xtext.ide.editor.contentassist.antlr.FollowElement;
 import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
-import org.eclipse.xtext.ide.editor.partialEditing.IPartialEditingContentAssistParser;
 import org.eclipse.xtext.util.PolymorphicDispatcher;
 
-public class PartialFormalMLContentAssistParser extends FormalMLParser implements IPartialEditingContentAssistParser {
+public class PartialFormalMLContentAssistParser extends FormalMLParser {
 
 	private AbstractRule rule;
 
diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.ide/src-gen/org/eclipse/efm/formalml/xtext/ide/contentassist/antlr/internal/InternalFormalML.g b/editor/xlia/org.eclipse.efm.formalml.xtext.ide/src-gen/org/eclipse/efm/formalml/xtext/ide/contentassist/antlr/internal/InternalFormalML.g
index bf6f890..1e031ea 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.ide/src-gen/org/eclipse/efm/formalml/xtext/ide/contentassist/antlr/internal/InternalFormalML.g
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.ide/src-gen/org/eclipse/efm/formalml/xtext/ide/contentassist/antlr/internal/InternalFormalML.g
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 grammar InternalFormalML;
 
diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.ide/src-gen/org/eclipse/efm/formalml/xtext/ide/contentassist/antlr/internal/InternalFormalMLParser.java b/editor/xlia/org.eclipse.efm.formalml.xtext.ide/src-gen/org/eclipse/efm/formalml/xtext/ide/contentassist/antlr/internal/InternalFormalMLParser.java
index 28b5f2e..3a14abd 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.ide/src-gen/org/eclipse/efm/formalml/xtext/ide/contentassist/antlr/internal/InternalFormalMLParser.java
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.ide/src-gen/org/eclipse/efm/formalml/xtext/ide/contentassist/antlr/internal/InternalFormalMLParser.java
@@ -33,7 +33,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 @SuppressWarnings("all")
 interface InternalFormalMLParserSignatures {
diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.tests/.classpath b/editor/xlia/org.eclipse.efm.formalml.xtext.tests/.classpath
index c461527..9a77662 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.tests/.classpath
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.tests/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>

 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

 	<classpathentry kind="src" path="src/">

 		<attributes>

diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.tests/.settings/org.eclipse.jdt.core.prefs b/editor/xlia/org.eclipse.efm.formalml.xtext.tests/.settings/org.eclipse.jdt.core.prefs
index 295926d..11265a3 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.tests/.settings/org.eclipse.jdt.core.prefs
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.tests/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,10 @@
 eclipse.preferences.version=1

 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8

-org.eclipse.jdt.core.compiler.compliance=1.8

+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11

+org.eclipse.jdt.core.compiler.compliance=11

 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled

 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

-org.eclipse.jdt.core.compiler.source=1.8

+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning

+org.eclipse.jdt.core.compiler.release=enabled

+org.eclipse.jdt.core.compiler.source=11

diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.tests/META-INF/MANIFEST.MF b/editor/xlia/org.eclipse.efm.formalml.xtext.tests/META-INF/MANIFEST.MF
index d1bab03..6156aca 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.tests/META-INF/MANIFEST.MF
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.tests/META-INF/MANIFEST.MF
@@ -13,7 +13,7 @@
  org.eclipse.xtext.xbase.lib;bundle-version="2.14.0",

  org.eclipse.xtext.testing,

  org.eclipse.xtext.xbase.testing

-Bundle-RequiredExecutionEnvironment: JavaSE-1.8

+Bundle-RequiredExecutionEnvironment: JavaSE-11

 Export-Package: org.eclipse.efm.formalml.xtext.tests;x-internal=true

 Import-Package: org.hamcrest.core,

  org.junit;version="4.5.0",

diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.tests/src-gen/org/eclipse/efm/formalml/xtext/tests/FormalMLInjectorProvider.java b/editor/xlia/org.eclipse.efm.formalml.xtext.tests/src-gen/org/eclipse/efm/formalml/xtext/tests/FormalMLInjectorProvider.java
index 514273f..2e659b6 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.tests/src-gen/org/eclipse/efm/formalml/xtext/tests/FormalMLInjectorProvider.java
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.tests/src-gen/org/eclipse/efm/formalml/xtext/tests/FormalMLInjectorProvider.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.formalml.xtext.tests;
 
diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.ui.tests/.classpath b/editor/xlia/org.eclipse.efm.formalml.xtext.ui.tests/.classpath
index c461527..c7f7faa 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.ui.tests/.classpath
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.ui.tests/.classpath
@@ -1,18 +1,17 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">

+		<attributes>

+			<attribute name="module" value="true"/>

+		</attributes>

+	</classpathentry>

 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

-	<classpathentry kind="src" path="src/">

+	<classpathentry kind="src" path="src">

 		<attributes>

 			<attribute name="test" value="true"/>

 		</attributes>

 	</classpathentry>

-	<classpathentry kind="src" path="src-gen/">

-		<attributes>

-			<attribute name="test" value="true"/>

-		</attributes>

-	</classpathentry>

-	<classpathentry kind="src" path="xtend-gen/">

+	<classpathentry kind="src" path="src-gen">

 		<attributes>

 			<attribute name="test" value="true"/>

 		</attributes>

diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.ui.tests/META-INF/MANIFEST.MF b/editor/xlia/org.eclipse.efm.formalml.xtext.ui.tests/META-INF/MANIFEST.MF
index accd26b..69d69e2 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.ui.tests/META-INF/MANIFEST.MF
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.ui.tests/META-INF/MANIFEST.MF
@@ -15,7 +15,7 @@
  org.eclipse.xtext.testing,
  org.eclipse.xtext.xbase.testing,
  org.eclipse.xtext.ui.testing
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Export-Package: org.eclipse.efm.formalml.xtext.ui.tests;x-internal=true
 Import-Package: org.hamcrest.core,
  org.junit;version="4.5.0",
diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.ui.tests/build.properties b/editor/xlia/org.eclipse.efm.formalml.xtext.ui.tests/build.properties
index db8fe81..9e50af2 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.ui.tests/build.properties
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.ui.tests/build.properties
@@ -11,7 +11,6 @@
 #   - Initial API and Implementation

 ###############################################################################

 source.. = src/,\

-           src-gen/,\

-           xtend-gen/

+           src-gen/

 bin.includes = .,\

                META-INF/

diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.ui.tests/src-gen/org/eclipse/efm/formalml/xtext/ui/tests/FormalMLUiInjectorProvider.java b/editor/xlia/org.eclipse.efm.formalml.xtext.ui.tests/src-gen/org/eclipse/efm/formalml/xtext/ui/tests/FormalMLUiInjectorProvider.java
index b264f20..62b2167 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.ui.tests/src-gen/org/eclipse/efm/formalml/xtext/ui/tests/FormalMLUiInjectorProvider.java
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.ui.tests/src-gen/org/eclipse/efm/formalml/xtext/ui/tests/FormalMLUiInjectorProvider.java
@@ -9,6 +9,9 @@
 * Contributors:
 *  Arnault Lapitre (CEA LIST) arnault.lapitre@cea.fr
 *  - Initial API and implementation
+*
+******************************************************************************
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.formalml.xtext.ui.tests;
 
diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.ui/.classpath b/editor/xlia/org.eclipse.efm.formalml.xtext.ui/.classpath
index 026e45b..d0c5d81 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.ui/.classpath
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.ui/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>

 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

 	<classpathentry kind="src" path="src/"/>

 	<classpathentry kind="src" path="src-gen/"/>

diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.ui/.settings/org.eclipse.jdt.core.prefs b/editor/xlia/org.eclipse.efm.formalml.xtext.ui/.settings/org.eclipse.jdt.core.prefs
index 295926d..11265a3 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.ui/.settings/org.eclipse.jdt.core.prefs
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.ui/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,10 @@
 eclipse.preferences.version=1

 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8

-org.eclipse.jdt.core.compiler.compliance=1.8

+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11

+org.eclipse.jdt.core.compiler.compliance=11

 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled

 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

-org.eclipse.jdt.core.compiler.source=1.8

+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning

+org.eclipse.jdt.core.compiler.release=enabled

+org.eclipse.jdt.core.compiler.source=11

diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.ui/META-INF/MANIFEST.MF b/editor/xlia/org.eclipse.efm.formalml.xtext.ui/META-INF/MANIFEST.MF
index 73fc98f..03d5b59 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.ui/META-INF/MANIFEST.MF
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.ui/META-INF/MANIFEST.MF
@@ -19,7 +19,7 @@
  org.eclipse.xtend.lib;bundle-version="2.14.0";resolution:=optional,

  org.eclipse.xtext.xbase.lib;bundle-version="2.14.0"

 Import-Package: org.apache.log4j

-Bundle-RequiredExecutionEnvironment: JavaSE-1.8

+Bundle-RequiredExecutionEnvironment: JavaSE-11

 Export-Package: org.eclipse.efm.formalml.xtext.ui.quickfix,

  org.eclipse.efm.formalml.xtext.ui.contentassist,

  org.eclipse.efm.formalml.xtext.ui.internal

diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.ui/plugin.xml_gen b/editor/xlia/org.eclipse.efm.formalml.xtext.ui/plugin.xml_gen
index 8fb505a..4a1809a 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.ui/plugin.xml_gen
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.ui/plugin.xml_gen
@@ -339,7 +339,7 @@
 	<!-- Quick Outline -->
 	<extension
 		point="org.eclipse.ui.handlers">
-		<handler 
+		<handler
 			class="org.eclipse.efm.formalml.xtext.ui.FormalMLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
 			commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
 			<activeWhen>
@@ -399,7 +399,7 @@
 	</extension>
 	<!-- Rename Refactoring -->
 	<extension point="org.eclipse.ui.handlers">
-		<handler 
+		<handler
 			class="org.eclipse.efm.formalml.xtext.ui.FormalMLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
 			commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
 			<activeWhen>
diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.ui/src-gen/org/eclipse/efm/formalml/xtext/ui/AbstractFormalMLUiModule.java b/editor/xlia/org.eclipse.efm.formalml.xtext.ui/src-gen/org/eclipse/efm/formalml/xtext/ui/AbstractFormalMLUiModule.java
index 8dc10b3..6265436 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.ui/src-gen/org/eclipse/efm/formalml/xtext/ui/AbstractFormalMLUiModule.java
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.ui/src-gen/org/eclipse/efm/formalml/xtext/ui/AbstractFormalMLUiModule.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.formalml.xtext.ui;
 
diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.ui/src-gen/org/eclipse/efm/formalml/xtext/ui/FormalMLExecutableExtensionFactory.java b/editor/xlia/org.eclipse.efm.formalml.xtext.ui/src-gen/org/eclipse/efm/formalml/xtext/ui/FormalMLExecutableExtensionFactory.java
index 7463d56..aefaafc 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.ui/src-gen/org/eclipse/efm/formalml/xtext/ui/FormalMLExecutableExtensionFactory.java
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.ui/src-gen/org/eclipse/efm/formalml/xtext/ui/FormalMLExecutableExtensionFactory.java
@@ -11,15 +11,15 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.formalml.xtext.ui;
 
 import com.google.inject.Injector;
-import org.eclipse.core.runtime.Platform;
 import org.eclipse.efm.formalml.xtext.ui.internal.XtextActivator;
 import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;
 import org.osgi.framework.Bundle;
+import org.osgi.framework.FrameworkUtil;
 
 /**
  * This class was generated. Customizations should only happen in a newly
@@ -29,7 +29,7 @@
 
 	@Override
 	protected Bundle getBundle() {
-		return Platform.getBundle(XtextActivator.PLUGIN_ID);
+		return FrameworkUtil.getBundle(XtextActivator.class);
 	}
 	
 	@Override
diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.ui/src-gen/org/eclipse/efm/formalml/xtext/ui/contentassist/AbstractFormalMLProposalProvider.java b/editor/xlia/org.eclipse.efm.formalml.xtext.ui/src-gen/org/eclipse/efm/formalml/xtext/ui/contentassist/AbstractFormalMLProposalProvider.java
index 7e93c3f..bd517ec 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.ui/src-gen/org/eclipse/efm/formalml/xtext/ui/contentassist/AbstractFormalMLProposalProvider.java
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.ui/src-gen/org/eclipse/efm/formalml/xtext/ui/contentassist/AbstractFormalMLProposalProvider.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.formalml.xtext.ui.contentassist;
 
diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext.ui/src-gen/org/eclipse/efm/formalml/xtext/ui/internal/XtextActivator.java b/editor/xlia/org.eclipse.efm.formalml.xtext.ui/src-gen/org/eclipse/efm/formalml/xtext/ui/internal/XtextActivator.java
index 248df90..463a35e 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext.ui/src-gen/org/eclipse/efm/formalml/xtext/ui/internal/XtextActivator.java
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext.ui/src-gen/org/eclipse/efm/formalml/xtext/ui/internal/XtextActivator.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.formalml.xtext.ui.internal;
 
diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext/.classpath b/editor/xlia/org.eclipse.efm.formalml.xtext/.classpath
index 026e45b..d0c5d81 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext/.classpath
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>

 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

 	<classpathentry kind="src" path="src/"/>

 	<classpathentry kind="src" path="src-gen/"/>

diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext/.settings/org.eclipse.jdt.core.prefs b/editor/xlia/org.eclipse.efm.formalml.xtext/.settings/org.eclipse.jdt.core.prefs
index 295926d..11265a3 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext/.settings/org.eclipse.jdt.core.prefs
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,10 @@
 eclipse.preferences.version=1

 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8

-org.eclipse.jdt.core.compiler.compliance=1.8

+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11

+org.eclipse.jdt.core.compiler.compliance=11

 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled

 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

-org.eclipse.jdt.core.compiler.source=1.8

+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning

+org.eclipse.jdt.core.compiler.release=enabled

+org.eclipse.jdt.core.compiler.source=11

diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext/META-INF/MANIFEST.MF b/editor/xlia/org.eclipse.efm.formalml.xtext/META-INF/MANIFEST.MF
index 3cfbe59..e41ddb2 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext/META-INF/MANIFEST.MF
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext/META-INF/MANIFEST.MF
@@ -13,7 +13,7 @@
  org.antlr.runtime;bundle-version="[3.2.0,3.2.1)",
  org.eclipse.xtext.util,
  org.eclipse.xtend.lib;bundle-version="2.14.0"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Export-Package: org.eclipse.efm.formalml.xtext,
  org.eclipse.efm.formalml.xtext.scoping,
  org.eclipse.efm.formalml.xtext.generator,
diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/AbstractFormalMLRuntimeModule.java b/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/AbstractFormalMLRuntimeModule.java
index e3b6b09..11b1ae2 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/AbstractFormalMLRuntimeModule.java
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/AbstractFormalMLRuntimeModule.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.formalml.xtext;
 
diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/FormalMLStandaloneSetupGenerated.java b/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/FormalMLStandaloneSetupGenerated.java
index ceaab6f..3463db3 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/FormalMLStandaloneSetupGenerated.java
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/FormalMLStandaloneSetupGenerated.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.formalml.xtext;
 
diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/parser/antlr/FormalMLAntlrTokenFileProvider.java b/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/parser/antlr/FormalMLAntlrTokenFileProvider.java
index 2c269e7..0e51c8e 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/parser/antlr/FormalMLAntlrTokenFileProvider.java
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/parser/antlr/FormalMLAntlrTokenFileProvider.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.formalml.xtext.parser.antlr;
 
diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/parser/antlr/FormalMLParser.java b/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/parser/antlr/FormalMLParser.java
index 6b9144b..9f862e6 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/parser/antlr/FormalMLParser.java
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/parser/antlr/FormalMLParser.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.formalml.xtext.parser.antlr;
 
diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/parser/antlr/internal/InternalFormalML.g b/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/parser/antlr/internal/InternalFormalML.g
index d9b218c..b7ed99d 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/parser/antlr/internal/InternalFormalML.g
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/parser/antlr/internal/InternalFormalML.g
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 grammar InternalFormalML;
 
@@ -1337,7 +1337,7 @@
 										if ($current==null) {
 											$current = createModelElement(grammarAccess.getXliaSystemRule());
 										}
-										setWithLastConsumed($current, "timed", true, "timed");
+										setWithLastConsumed($current, "timed", lv_timed_2_0 != null, "timed");
 									}
 								)
 								))
@@ -1360,7 +1360,7 @@
 										if ($current==null) {
 											$current = createModelElement(grammarAccess.getXliaSystemRule());
 										}
-										setWithLastConsumed($current, "dense_timed", true, "timed#dense");
+										setWithLastConsumed($current, "dense_timed", lv_dense_timed_3_0 != null, "timed#dense");
 									}
 								)
 								))
@@ -1383,7 +1383,7 @@
 										if ($current==null) {
 											$current = createModelElement(grammarAccess.getXliaSystemRule());
 										}
-										setWithLastConsumed($current, "discrete_timed", true, "timed#discrete");
+										setWithLastConsumed($current, "discrete_timed", lv_discrete_timed_4_0 != null, "timed#discrete");
 									}
 								)
 								))
@@ -1406,7 +1406,7 @@
 										if ($current==null) {
 											$current = createModelElement(grammarAccess.getXliaSystemRule());
 										}
-										setWithLastConsumed($current, "input_enabled", true, "input_enabled");
+										setWithLastConsumed($current, "input_enabled", lv_input_enabled_5_0 != null, "input_enabled");
 									}
 								)
 								))
@@ -1429,7 +1429,7 @@
 										if ($current==null) {
 											$current = createModelElement(grammarAccess.getXliaSystemRule());
 										}
-										setWithLastConsumed($current, "unsafe", true, "unsafe");
+										setWithLastConsumed($current, "unsafe", lv_unsafe_6_0 != null, "unsafe");
 									}
 								)
 								))
@@ -3048,7 +3048,7 @@
 										if ($current==null) {
 											$current = createModelElement(grammarAccess.getMachineBlockRule());
 										}
-										setWithLastConsumed($current, "timed", true, "timed");
+										setWithLastConsumed($current, "timed", lv_timed_2_0 != null, "timed");
 									}
 								)
 								))
@@ -3071,7 +3071,7 @@
 										if ($current==null) {
 											$current = createModelElement(grammarAccess.getMachineBlockRule());
 										}
-										setWithLastConsumed($current, "dense_timed", true, "timed#dense");
+										setWithLastConsumed($current, "dense_timed", lv_dense_timed_3_0 != null, "timed#dense");
 									}
 								)
 								))
@@ -3094,7 +3094,7 @@
 										if ($current==null) {
 											$current = createModelElement(grammarAccess.getMachineBlockRule());
 										}
-										setWithLastConsumed($current, "discrete_timed", true, "timed#discrete");
+										setWithLastConsumed($current, "discrete_timed", lv_discrete_timed_4_0 != null, "timed#discrete");
 									}
 								)
 								))
@@ -3117,7 +3117,7 @@
 										if ($current==null) {
 											$current = createModelElement(grammarAccess.getMachineBlockRule());
 										}
-										setWithLastConsumed($current, "input_enabled", true, "input_enabled");
+										setWithLastConsumed($current, "input_enabled", lv_input_enabled_5_0 != null, "input_enabled");
 									}
 								)
 								))
@@ -3140,7 +3140,7 @@
 										if ($current==null) {
 											$current = createModelElement(grammarAccess.getMachineBlockRule());
 										}
-										setWithLastConsumed($current, "lifeline", true, "lifeline");
+										setWithLastConsumed($current, "lifeline", lv_lifeline_6_0 != null, "lifeline");
 									}
 								)
 								))
@@ -6345,7 +6345,7 @@
 										if ($current==null) {
 											$current = createModelElement(grammarAccess.getStatemachineRule());
 										}
-										setWithLastConsumed($current, "timed", true, "timed");
+										setWithLastConsumed($current, "timed", lv_timed_3_0 != null, "timed");
 									}
 								)
 								))
@@ -6368,7 +6368,7 @@
 										if ($current==null) {
 											$current = createModelElement(grammarAccess.getStatemachineRule());
 										}
-										setWithLastConsumed($current, "dense_timed", true, "timed#dense");
+										setWithLastConsumed($current, "dense_timed", lv_dense_timed_4_0 != null, "timed#dense");
 									}
 								)
 								))
@@ -6391,7 +6391,7 @@
 										if ($current==null) {
 											$current = createModelElement(grammarAccess.getStatemachineRule());
 										}
-										setWithLastConsumed($current, "discrete_timed", true, "timed#discrete");
+										setWithLastConsumed($current, "discrete_timed", lv_discrete_timed_5_0 != null, "timed#discrete");
 									}
 								)
 								))
@@ -6414,7 +6414,7 @@
 										if ($current==null) {
 											$current = createModelElement(grammarAccess.getStatemachineRule());
 										}
-										setWithLastConsumed($current, "input_enabled", true, "input_enabled");
+										setWithLastConsumed($current, "input_enabled", lv_input_enabled_6_0 != null, "input_enabled");
 									}
 								)
 								))
@@ -6437,7 +6437,7 @@
 										if ($current==null) {
 											$current = createModelElement(grammarAccess.getStatemachineRule());
 										}
-										setWithLastConsumed($current, "lifeline", true, "lifeline");
+										setWithLastConsumed($current, "lifeline", lv_lifeline_7_0 != null, "lifeline");
 									}
 								)
 								))
@@ -8391,7 +8391,7 @@
 					if ($current==null) {
 						$current = createModelElement(grammarAccess.getCompositeStateRule());
 					}
-					setWithLastConsumed($current, "composite", true, "state");
+					setWithLastConsumed($current, "composite", lv_composite_1_0 != null, "state");
 				}
 			)
 		)
@@ -8421,7 +8421,7 @@
 						if ($current==null) {
 							$current = createModelElement(grammarAccess.getCompositeStateRule());
 						}
-						setWithLastConsumed($current, "orthogonal", true, "and");
+						setWithLastConsumed($current, "orthogonal", lv_orthogonal_5_0 != null, "and");
 					}
 				)
 			)
@@ -9140,7 +9140,7 @@
 					if ($current==null) {
 						$current = createModelElement(grammarAccess.getSimpleStateRule());
 					}
-					setWithLastConsumed($current, "simple", true, "state");
+					setWithLastConsumed($current, "simple", lv_simple_1_0 != null, "state");
 				}
 			)
 		)
@@ -9501,7 +9501,7 @@
 							if ($current==null) {
 								$current = createModelElement(grammarAccess.getStartStateRule());
 							}
-							setWithLastConsumed($current, "simple", true, "state");
+							setWithLastConsumed($current, "simple", lv_simple_1_0 != null, "state");
 						}
 					)
 				)
@@ -9554,7 +9554,7 @@
 						if ($current==null) {
 							$current = createModelElement(grammarAccess.getStartStateRule());
 						}
-						setWithLastConsumed($current, "simple", true, "#start");
+						setWithLastConsumed($current, "simple", lv_simple_7_0 != null, "#start");
 					}
 				)
 			)
@@ -9969,7 +9969,7 @@
 							if ($current==null) {
 								$current = createModelElement(grammarAccess.getFinalStateRule());
 							}
-							setWithLastConsumed($current, "simple", true, "state");
+							setWithLastConsumed($current, "simple", lv_simple_1_0 != null, "state");
 						}
 					)
 				)
@@ -10022,7 +10022,7 @@
 						if ($current==null) {
 							$current = createModelElement(grammarAccess.getFinalStateRule());
 						}
-						setWithLastConsumed($current, "simple", true, "#final");
+						setWithLastConsumed($current, "simple", lv_simple_7_0 != null, "#final");
 					}
 				)
 			)
@@ -11562,7 +11562,7 @@
 					if ($current==null) {
 						$current = createModelElement(grammarAccess.getRoutineRule());
 					}
-					setWithLastConsumed($current, "macro", true, "macro");
+					setWithLastConsumed($current, "macro", lv_macro_1_0 != null, "macro");
 				}
 			)
 		)?
@@ -13639,7 +13639,7 @@
 					if ($current==null) {
 						$current = createModelElement(grammarAccess.getOtherDataTypeDefinitionRule());
 					}
-					setWithLastConsumed($current, "typedef", true, "type");
+					setWithLastConsumed($current, "typedef", lv_typedef_2_0 != null, "type");
 				}
 			)
 		)
@@ -15069,7 +15069,7 @@
 						if ($current==null) {
 							$current = createModelElement(grammarAccess.getPrimitiveTimeTypeRule());
 						}
-						setWithLastConsumed($current, "clock", true, "clock");
+						setWithLastConsumed($current, "clock", lv_clock_7_0 != null, "clock");
 					}
 				)
 			)
@@ -15606,7 +15606,7 @@
 						if ($current==null) {
 							$current = createModelElement(grammarAccess.getIntervalTypeRule());
 						}
-						setWithLastConsumed($current, "lopen", true, "]");
+						setWithLastConsumed($current, "lopen", lv_lopen_4_0 != null, "]");
 					}
 				)
 			)
@@ -15674,7 +15674,7 @@
 						if ($current==null) {
 							$current = createModelElement(grammarAccess.getIntervalTypeRule());
 						}
-						setWithLastConsumed($current, "ropen", true, "[");
+						setWithLastConsumed($current, "ropen", lv_ropen_10_0 != null, "[");
 					}
 				)
 			)
@@ -15811,7 +15811,7 @@
 						if ($current==null) {
 							$current = createModelElement(grammarAccess.getIntervalTypeDefinitionRule());
 						}
-						setWithLastConsumed($current, "lopen", true, "]");
+						setWithLastConsumed($current, "lopen", lv_lopen_8_0 != null, "]");
 					}
 				)
 			)
@@ -15879,7 +15879,7 @@
 						if ($current==null) {
 							$current = createModelElement(grammarAccess.getIntervalTypeDefinitionRule());
 						}
-						setWithLastConsumed($current, "ropen", true, "[");
+						setWithLastConsumed($current, "ropen", lv_ropen_14_0 != null, "[");
 					}
 				)
 			)
@@ -16000,7 +16000,7 @@
 								if ($current==null) {
 									$current = createModelElement(grammarAccess.getCollectionTypeRule());
 								}
-								setWithLastConsumed($current, "unbounded", true, "*");
+								setWithLastConsumed($current, "unbounded", lv_unbounded_6_0 != null, "*");
 							}
 						)
 					)
@@ -16179,7 +16179,7 @@
 							if ($current==null) {
 								$current = createModelElement(grammarAccess.getCollectionTypeDefinitionRule());
 							}
-							setWithLastConsumed($current, "unbounded", true, "*");
+							setWithLastConsumed($current, "unbounded", lv_unbounded_10_0 != null, "*");
 						}
 					)
 				)
@@ -16371,7 +16371,7 @@
 					if ($current==null) {
 						$current = createModelElement(grammarAccess.getEnumerationTypeDefinitionRule());
 					}
-					setWithLastConsumed($current, "typedef", true, "type");
+					setWithLastConsumed($current, "typedef", lv_typedef_2_0 != null, "type");
 				}
 			)
 		)
@@ -16710,7 +16710,7 @@
 					if ($current==null) {
 						$current = createModelElement(grammarAccess.getStructureTypeDefinitionRule());
 					}
-					setWithLastConsumed($current, "typedef", true, "type");
+					setWithLastConsumed($current, "typedef", lv_typedef_2_0 != null, "type");
 				}
 			)
 		)
@@ -16913,7 +16913,7 @@
 					if ($current==null) {
 						$current = createModelElement(grammarAccess.getUnionTypeDefinitionRule());
 					}
-					setWithLastConsumed($current, "typedef", true, "type");
+					setWithLastConsumed($current, "typedef", lv_typedef_2_0 != null, "type");
 				}
 			)
 		)
@@ -17116,7 +17116,7 @@
 					if ($current==null) {
 						$current = createModelElement(grammarAccess.getChoiceTypeDefinitionRule());
 					}
-					setWithLastConsumed($current, "typedef", true, "type");
+					setWithLastConsumed($current, "typedef", lv_typedef_2_0 != null, "type");
 				}
 			)
 		)
@@ -17255,7 +17255,7 @@
 										if ($current==null) {
 											$current = createModelElement(grammarAccess.getModifierRule());
 										}
-										setWithLastConsumed($current, "static", true, "static");
+										setWithLastConsumed($current, "static", lv_static_2_0 != null, "static");
 									}
 								)
 								))
@@ -17278,7 +17278,7 @@
 										if ($current==null) {
 											$current = createModelElement(grammarAccess.getModifierRule());
 										}
-										setWithLastConsumed($current, "final", true, "final");
+										setWithLastConsumed($current, "final", lv_final_3_0 != null, "final");
 									}
 								)
 								))
@@ -17301,7 +17301,7 @@
 										if ($current==null) {
 											$current = createModelElement(grammarAccess.getModifierRule());
 										}
-										setWithLastConsumed($current, "volatile", true, "volatile");
+										setWithLastConsumed($current, "volatile", lv_volatile_4_0 != null, "volatile");
 									}
 								)
 								))
@@ -17324,7 +17324,7 @@
 										if ($current==null) {
 											$current = createModelElement(grammarAccess.getModifierRule());
 										}
-										setWithLastConsumed($current, "transient", true, "transient");
+										setWithLastConsumed($current, "transient", lv_transient_5_0 != null, "transient");
 									}
 								)
 								))
@@ -17347,7 +17347,7 @@
 										if ($current==null) {
 											$current = createModelElement(grammarAccess.getModifierRule());
 										}
-										setWithLastConsumed($current, "optional", true, "optional");
+										setWithLastConsumed($current, "optional", lv_optional_6_0 != null, "optional");
 									}
 								)
 								))
@@ -17986,7 +17986,7 @@
 						if ($current==null) {
 							$current = createModelElement(grammarAccess.getVariableRule());
 						}
-						setWithLastConsumed($current, "const", true, "val");
+						setWithLastConsumed($current, "const", lv_const_4_0 != null, "val");
 					}
 				)
 			)
@@ -18003,7 +18003,7 @@
 								if ($current==null) {
 									$current = createModelElement(grammarAccess.getVariableRule());
 								}
-								setWithLastConsumed($current, "const", true, "const");
+								setWithLastConsumed($current, "const", lv_const_5_0 != null, "const");
 							}
 						)
 					)
@@ -18018,7 +18018,7 @@
 								if ($current==null) {
 									$current = createModelElement(grammarAccess.getVariableRule());
 								}
-								setWithLastConsumed($current, "const", true, "final");
+								setWithLastConsumed($current, "const", lv_const_6_0 != null, "final");
 							}
 						)
 					)
@@ -18033,7 +18033,7 @@
 							if ($current==null) {
 								$current = createModelElement(grammarAccess.getVariableRule());
 							}
-							setWithLastConsumed($current, "macro", true, "macro");
+							setWithLastConsumed($current, "macro", lv_macro_7_0 != null, "macro");
 						}
 					)
 				)?
@@ -18056,7 +18056,7 @@
 							if ($current==null) {
 								$current = createModelElement(grammarAccess.getVariableRule());
 							}
-							setWithLastConsumed($current, "macro", true, "macro");
+							setWithLastConsumed($current, "macro", lv_macro_9_0 != null, "macro");
 						}
 					)
 				)
@@ -18076,7 +18076,7 @@
 								if ($current==null) {
 									$current = createModelElement(grammarAccess.getVariableRule());
 								}
-								setWithLastConsumed($current, "const", true, "val");
+								setWithLastConsumed($current, "const", lv_const_11_0 != null, "val");
 							}
 						)
 					)
@@ -18112,7 +18112,7 @@
 					if ($current==null) {
 						$current = createModelElement(grammarAccess.getVariableRule());
 					}
-					setWithLastConsumed($current, "reference", true, "&");
+					setWithLastConsumed($current, "reference", lv_reference_13_0 != null, "&");
 				}
 			)
 		)?
@@ -18272,7 +18272,7 @@
 						if ($current==null) {
 							$current = createModelElement(grammarAccess.getVariableImplRule());
 						}
-						setWithLastConsumed($current, "const", true, "val");
+						setWithLastConsumed($current, "const", lv_const_2_0 != null, "val");
 					}
 				)
 			)
@@ -18288,7 +18288,7 @@
 							if ($current==null) {
 								$current = createModelElement(grammarAccess.getVariableImplRule());
 							}
-							setWithLastConsumed($current, "const", true, "const");
+							setWithLastConsumed($current, "const", lv_const_3_0 != null, "const");
 						}
 					)
 				)
@@ -18302,7 +18302,7 @@
 							if ($current==null) {
 								$current = createModelElement(grammarAccess.getVariableImplRule());
 							}
-							setWithLastConsumed($current, "macro", true, "macro");
+							setWithLastConsumed($current, "macro", lv_macro_4_0 != null, "macro");
 						}
 					)
 				)?
@@ -18325,7 +18325,7 @@
 							if ($current==null) {
 								$current = createModelElement(grammarAccess.getVariableImplRule());
 							}
-							setWithLastConsumed($current, "macro", true, "macro");
+							setWithLastConsumed($current, "macro", lv_macro_6_0 != null, "macro");
 						}
 					)
 				)
@@ -18345,7 +18345,7 @@
 								if ($current==null) {
 									$current = createModelElement(grammarAccess.getVariableImplRule());
 								}
-								setWithLastConsumed($current, "const", true, "val");
+								setWithLastConsumed($current, "const", lv_const_8_0 != null, "val");
 							}
 						)
 					)
@@ -18381,7 +18381,7 @@
 					if ($current==null) {
 						$current = createModelElement(grammarAccess.getVariableImplRule());
 					}
-					setWithLastConsumed($current, "reference", true, "&");
+					setWithLastConsumed($current, "reference", lv_reference_10_0 != null, "&");
 				}
 			)
 		)?
@@ -19494,7 +19494,7 @@
 								if ($current==null) {
 									$current = createModelElement(grammarAccess.getBufferContainerTypeRule());
 								}
-								setWithLastConsumed($current, "unbounded", true, "*");
+								setWithLastConsumed($current, "unbounded", lv_unbounded_5_0 != null, "*");
 							}
 						)
 					)
@@ -19549,7 +19549,7 @@
 								if ($current==null) {
 									$current = createModelElement(grammarAccess.getBufferContainerTypeRule());
 								}
-								setWithLastConsumed($current, "unbounded", true, "*");
+								setWithLastConsumed($current, "unbounded", lv_unbounded_10_0 != null, "*");
 							}
 						)
 					)
@@ -21328,7 +21328,7 @@
 					if ($current==null) {
 						$current = createModelElement(grammarAccess.getTransitionRule());
 					}
-					setWithLastConsumed($current, "transient", true, "transient");
+					setWithLastConsumed($current, "transient", lv_transient_1_0 != null, "transient");
 				}
 			)
 		)?
@@ -21836,7 +21836,7 @@
 										if ($current==null) {
 											$current = createModelElement(grammarAccess.getTransitionMoeRule());
 										}
-										setWithLastConsumed($current, "isElse", true, "else");
+										setWithLastConsumed($current, "isElse", lv_isElse_4_0 != null, "else");
 									}
 								)
 							)
@@ -21853,7 +21853,7 @@
 								if ($current==null) {
 									$current = createModelElement(grammarAccess.getTransitionMoeRule());
 								}
-								setWithLastConsumed($current, "isElse", true, "else");
+								setWithLastConsumed($current, "isElse", lv_isElse_5_0 != null, "else");
 							}
 						)
 					)
@@ -24903,7 +24903,7 @@
 						if ($current==null) {
 							$current = createModelElement(grammarAccess.getInvokeStatementRule());
 						}
-						setWithLastConsumed($current, "execRoutine", true, "(");
+						setWithLastConsumed($current, "execRoutine", lv_execRoutine_3_0 != null, "(");
 					}
 				)
 			)
@@ -25044,7 +25044,7 @@
 						if ($current==null) {
 							$current = createModelElement(grammarAccess.getInvokeStatementRule());
 						}
-						setWithLastConsumed($current, "execRoutine", true, "exec");
+						setWithLastConsumed($current, "execRoutine", lv_execRoutine_16_0 != null, "exec");
 					}
 				)
 			)
@@ -25208,7 +25208,7 @@
 						if ($current==null) {
 							$current = createModelElement(grammarAccess.getInvokeStatementRule());
 						}
-						setWithLastConsumed($current, "callProcedure", true, "call");
+						setWithLastConsumed($current, "callProcedure", lv_callProcedure_31_0 != null, "call");
 					}
 				)
 			)
diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/parser/antlr/internal/InternalFormalMLParser.java b/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/parser/antlr/internal/InternalFormalMLParser.java
index c0cc577..27bec4f 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/parser/antlr/internal/InternalFormalMLParser.java
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/parser/antlr/internal/InternalFormalMLParser.java
@@ -34,7 +34,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 @SuppressWarnings("all")
 public class InternalFormalMLParser extends AbstractInternalAntlrParser {
@@ -4519,7 +4519,7 @@
             	      										if (current==null) {
             	      											current = createModelElement(grammarAccess.getXliaSystemRule());
             	      										}
-            	      										setWithLastConsumed(current, "timed", true, "timed");
+            	      										setWithLastConsumed(current, "timed", lv_timed_2_0 != null, "timed");
             	      									
             	    }
 
@@ -4579,7 +4579,7 @@
             	      										if (current==null) {
             	      											current = createModelElement(grammarAccess.getXliaSystemRule());
             	      										}
-            	      										setWithLastConsumed(current, "dense_timed", true, "timed#dense");
+            	      										setWithLastConsumed(current, "dense_timed", lv_dense_timed_3_0 != null, "timed#dense");
             	      									
             	    }
 
@@ -4639,7 +4639,7 @@
             	      										if (current==null) {
             	      											current = createModelElement(grammarAccess.getXliaSystemRule());
             	      										}
-            	      										setWithLastConsumed(current, "discrete_timed", true, "timed#discrete");
+            	      										setWithLastConsumed(current, "discrete_timed", lv_discrete_timed_4_0 != null, "timed#discrete");
             	      									
             	    }
 
@@ -4699,7 +4699,7 @@
             	      										if (current==null) {
             	      											current = createModelElement(grammarAccess.getXliaSystemRule());
             	      										}
-            	      										setWithLastConsumed(current, "input_enabled", true, "input_enabled");
+            	      										setWithLastConsumed(current, "input_enabled", lv_input_enabled_5_0 != null, "input_enabled");
             	      									
             	    }
 
@@ -4759,7 +4759,7 @@
             	      										if (current==null) {
             	      											current = createModelElement(grammarAccess.getXliaSystemRule());
             	      										}
-            	      										setWithLastConsumed(current, "unsafe", true, "unsafe");
+            	      										setWithLastConsumed(current, "unsafe", lv_unsafe_6_0 != null, "unsafe");
             	      									
             	    }
 
@@ -9193,7 +9193,7 @@
             	      										if (current==null) {
             	      											current = createModelElement(grammarAccess.getMachineBlockRule());
             	      										}
-            	      										setWithLastConsumed(current, "timed", true, "timed");
+            	      										setWithLastConsumed(current, "timed", lv_timed_2_0 != null, "timed");
             	      									
             	    }
 
@@ -9253,7 +9253,7 @@
             	      										if (current==null) {
             	      											current = createModelElement(grammarAccess.getMachineBlockRule());
             	      										}
-            	      										setWithLastConsumed(current, "dense_timed", true, "timed#dense");
+            	      										setWithLastConsumed(current, "dense_timed", lv_dense_timed_3_0 != null, "timed#dense");
             	      									
             	    }
 
@@ -9313,7 +9313,7 @@
             	      										if (current==null) {
             	      											current = createModelElement(grammarAccess.getMachineBlockRule());
             	      										}
-            	      										setWithLastConsumed(current, "discrete_timed", true, "timed#discrete");
+            	      										setWithLastConsumed(current, "discrete_timed", lv_discrete_timed_4_0 != null, "timed#discrete");
             	      									
             	    }
 
@@ -9373,7 +9373,7 @@
             	      										if (current==null) {
             	      											current = createModelElement(grammarAccess.getMachineBlockRule());
             	      										}
-            	      										setWithLastConsumed(current, "input_enabled", true, "input_enabled");
+            	      										setWithLastConsumed(current, "input_enabled", lv_input_enabled_5_0 != null, "input_enabled");
             	      									
             	    }
 
@@ -9433,7 +9433,7 @@
             	      										if (current==null) {
             	      											current = createModelElement(grammarAccess.getMachineBlockRule());
             	      										}
-            	      										setWithLastConsumed(current, "lifeline", true, "lifeline");
+            	      										setWithLastConsumed(current, "lifeline", lv_lifeline_6_0 != null, "lifeline");
             	      									
             	    }
 
@@ -18089,7 +18089,7 @@
             	      										if (current==null) {
             	      											current = createModelElement(grammarAccess.getStatemachineRule());
             	      										}
-            	      										setWithLastConsumed(current, "timed", true, "timed");
+            	      										setWithLastConsumed(current, "timed", lv_timed_3_0 != null, "timed");
             	      									
             	    }
 
@@ -18149,7 +18149,7 @@
             	      										if (current==null) {
             	      											current = createModelElement(grammarAccess.getStatemachineRule());
             	      										}
-            	      										setWithLastConsumed(current, "dense_timed", true, "timed#dense");
+            	      										setWithLastConsumed(current, "dense_timed", lv_dense_timed_4_0 != null, "timed#dense");
             	      									
             	    }
 
@@ -18209,7 +18209,7 @@
             	      										if (current==null) {
             	      											current = createModelElement(grammarAccess.getStatemachineRule());
             	      										}
-            	      										setWithLastConsumed(current, "discrete_timed", true, "timed#discrete");
+            	      										setWithLastConsumed(current, "discrete_timed", lv_discrete_timed_5_0 != null, "timed#discrete");
             	      									
             	    }
 
@@ -18269,7 +18269,7 @@
             	      										if (current==null) {
             	      											current = createModelElement(grammarAccess.getStatemachineRule());
             	      										}
-            	      										setWithLastConsumed(current, "input_enabled", true, "input_enabled");
+            	      										setWithLastConsumed(current, "input_enabled", lv_input_enabled_6_0 != null, "input_enabled");
             	      									
             	    }
 
@@ -18329,7 +18329,7 @@
             	      										if (current==null) {
             	      											current = createModelElement(grammarAccess.getStatemachineRule());
             	      										}
-            	      										setWithLastConsumed(current, "lifeline", true, "lifeline");
+            	      										setWithLastConsumed(current, "lifeline", lv_lifeline_7_0 != null, "lifeline");
             	      									
             	    }
 
@@ -23837,7 +23837,7 @@
               					if (current==null) {
               						current = createModelElement(grammarAccess.getCompositeStateRule());
               					}
-              					setWithLastConsumed(current, "composite", true, "state");
+              					setWithLastConsumed(current, "composite", lv_composite_1_0 != null, "state");
               				
             }
 
@@ -23925,7 +23925,7 @@
                       						if (current==null) {
                       							current = createModelElement(grammarAccess.getCompositeStateRule());
                       						}
-                      						setWithLastConsumed(current, "orthogonal", true, "and");
+                      						setWithLastConsumed(current, "orthogonal", lv_orthogonal_5_0 != null, "and");
                       					
                     }
 
@@ -25974,7 +25974,7 @@
               					if (current==null) {
               						current = createModelElement(grammarAccess.getSimpleStateRule());
               					}
-              					setWithLastConsumed(current, "simple", true, "state");
+              					setWithLastConsumed(current, "simple", lv_simple_1_0 != null, "state");
               				
             }
 
@@ -27035,7 +27035,7 @@
                       							if (current==null) {
                       								current = createModelElement(grammarAccess.getStartStateRule());
                       							}
-                      							setWithLastConsumed(current, "simple", true, "state");
+                      							setWithLastConsumed(current, "simple", lv_simple_1_0 != null, "state");
                       						
                     }
 
@@ -27146,7 +27146,7 @@
                       						if (current==null) {
                       							current = createModelElement(grammarAccess.getStartStateRule());
                       						}
-                      						setWithLastConsumed(current, "simple", true, "#start");
+                      						setWithLastConsumed(current, "simple", lv_simple_7_0 != null, "#start");
                       					
                     }
 
@@ -28279,7 +28279,7 @@
                       							if (current==null) {
                       								current = createModelElement(grammarAccess.getFinalStateRule());
                       							}
-                      							setWithLastConsumed(current, "simple", true, "state");
+                      							setWithLastConsumed(current, "simple", lv_simple_1_0 != null, "state");
                       						
                     }
 
@@ -28390,7 +28390,7 @@
                       						if (current==null) {
                       							current = createModelElement(grammarAccess.getFinalStateRule());
                       						}
-                      						setWithLastConsumed(current, "simple", true, "#final");
+                      						setWithLastConsumed(current, "simple", lv_simple_7_0 != null, "#final");
                       					
                     }
 
@@ -32924,7 +32924,7 @@
                       					if (current==null) {
                       						current = createModelElement(grammarAccess.getRoutineRule());
                       					}
-                      					setWithLastConsumed(current, "macro", true, "macro");
+                      					setWithLastConsumed(current, "macro", lv_macro_1_0 != null, "macro");
                       				
                     }
 
@@ -38755,7 +38755,7 @@
               					if (current==null) {
               						current = createModelElement(grammarAccess.getOtherDataTypeDefinitionRule());
               					}
-              					setWithLastConsumed(current, "typedef", true, "type");
+              					setWithLastConsumed(current, "typedef", lv_typedef_2_0 != null, "type");
               				
             }
 
@@ -42807,7 +42807,7 @@
                       						if (current==null) {
                       							current = createModelElement(grammarAccess.getPrimitiveTimeTypeRule());
                       						}
-                      						setWithLastConsumed(current, "clock", true, "clock");
+                      						setWithLastConsumed(current, "clock", lv_clock_7_0 != null, "clock");
                       					
                     }
 
@@ -44576,7 +44576,7 @@
                       						if (current==null) {
                       							current = createModelElement(grammarAccess.getIntervalTypeRule());
                       						}
-                      						setWithLastConsumed(current, "lopen", true, "]");
+                      						setWithLastConsumed(current, "lopen", lv_lopen_4_0 != null, "]");
                       					
                     }
 
@@ -44729,7 +44729,7 @@
                       						if (current==null) {
                       							current = createModelElement(grammarAccess.getIntervalTypeRule());
                       						}
-                      						setWithLastConsumed(current, "ropen", true, "[");
+                      						setWithLastConsumed(current, "ropen", lv_ropen_10_0 != null, "[");
                       					
                     }
 
@@ -45088,7 +45088,7 @@
                       						if (current==null) {
                       							current = createModelElement(grammarAccess.getIntervalTypeDefinitionRule());
                       						}
-                      						setWithLastConsumed(current, "lopen", true, "]");
+                      						setWithLastConsumed(current, "lopen", lv_lopen_8_0 != null, "]");
                       					
                     }
 
@@ -45241,7 +45241,7 @@
                       						if (current==null) {
                       							current = createModelElement(grammarAccess.getIntervalTypeDefinitionRule());
                       						}
-                      						setWithLastConsumed(current, "ropen", true, "[");
+                      						setWithLastConsumed(current, "ropen", lv_ropen_14_0 != null, "[");
                       					
                     }
 
@@ -45559,7 +45559,7 @@
                                       								if (current==null) {
                                       									current = createModelElement(grammarAccess.getCollectionTypeRule());
                                       								}
-                                      								setWithLastConsumed(current, "unbounded", true, "*");
+                                      								setWithLastConsumed(current, "unbounded", lv_unbounded_6_0 != null, "*");
                                       							
                                     }
 
@@ -46013,7 +46013,7 @@
                               							if (current==null) {
                               								current = createModelElement(grammarAccess.getCollectionTypeDefinitionRule());
                               							}
-                              							setWithLastConsumed(current, "unbounded", true, "*");
+                              							setWithLastConsumed(current, "unbounded", lv_unbounded_10_0 != null, "*");
                               						
                             }
 
@@ -46543,7 +46543,7 @@
               					if (current==null) {
               						current = createModelElement(grammarAccess.getEnumerationTypeDefinitionRule());
               					}
-              					setWithLastConsumed(current, "typedef", true, "type");
+              					setWithLastConsumed(current, "typedef", lv_typedef_2_0 != null, "type");
               				
             }
 
@@ -47446,7 +47446,7 @@
               					if (current==null) {
               						current = createModelElement(grammarAccess.getStructureTypeDefinitionRule());
               					}
-              					setWithLastConsumed(current, "typedef", true, "type");
+              					setWithLastConsumed(current, "typedef", lv_typedef_2_0 != null, "type");
               				
             }
 
@@ -48014,7 +48014,7 @@
               					if (current==null) {
               						current = createModelElement(grammarAccess.getUnionTypeDefinitionRule());
               					}
-              					setWithLastConsumed(current, "typedef", true, "type");
+              					setWithLastConsumed(current, "typedef", lv_typedef_2_0 != null, "type");
               				
             }
 
@@ -48582,7 +48582,7 @@
               					if (current==null) {
               						current = createModelElement(grammarAccess.getChoiceTypeDefinitionRule());
               					}
-              					setWithLastConsumed(current, "typedef", true, "type");
+              					setWithLastConsumed(current, "typedef", lv_typedef_2_0 != null, "type");
               				
             }
 
@@ -48940,7 +48940,7 @@
             	      										if (current==null) {
             	      											current = createModelElement(grammarAccess.getModifierRule());
             	      										}
-            	      										setWithLastConsumed(current, "static", true, "static");
+            	      										setWithLastConsumed(current, "static", lv_static_2_0 != null, "static");
             	      									
             	    }
 
@@ -49000,7 +49000,7 @@
             	      										if (current==null) {
             	      											current = createModelElement(grammarAccess.getModifierRule());
             	      										}
-            	      										setWithLastConsumed(current, "final", true, "final");
+            	      										setWithLastConsumed(current, "final", lv_final_3_0 != null, "final");
             	      									
             	    }
 
@@ -49060,7 +49060,7 @@
             	      										if (current==null) {
             	      											current = createModelElement(grammarAccess.getModifierRule());
             	      										}
-            	      										setWithLastConsumed(current, "volatile", true, "volatile");
+            	      										setWithLastConsumed(current, "volatile", lv_volatile_4_0 != null, "volatile");
             	      									
             	    }
 
@@ -49120,7 +49120,7 @@
             	      										if (current==null) {
             	      											current = createModelElement(grammarAccess.getModifierRule());
             	      										}
-            	      										setWithLastConsumed(current, "transient", true, "transient");
+            	      										setWithLastConsumed(current, "transient", lv_transient_5_0 != null, "transient");
             	      									
             	    }
 
@@ -49180,7 +49180,7 @@
             	      										if (current==null) {
             	      											current = createModelElement(grammarAccess.getModifierRule());
             	      										}
-            	      										setWithLastConsumed(current, "optional", true, "optional");
+            	      										setWithLastConsumed(current, "optional", lv_optional_6_0 != null, "optional");
             	      									
             	    }
 
@@ -50957,7 +50957,7 @@
                       						if (current==null) {
                       							current = createModelElement(grammarAccess.getVariableRule());
                       						}
-                      						setWithLastConsumed(current, "const", true, "val");
+                      						setWithLastConsumed(current, "const", lv_const_4_0 != null, "val");
                       					
                     }
 
@@ -51013,7 +51013,7 @@
                               								if (current==null) {
                               									current = createModelElement(grammarAccess.getVariableRule());
                               								}
-                              								setWithLastConsumed(current, "const", true, "const");
+                              								setWithLastConsumed(current, "const", lv_const_5_0 != null, "const");
                               							
                             }
 
@@ -51045,7 +51045,7 @@
                               								if (current==null) {
                               									current = createModelElement(grammarAccess.getVariableRule());
                               								}
-                              								setWithLastConsumed(current, "const", true, "final");
+                              								setWithLastConsumed(current, "const", lv_const_6_0 != null, "final");
                               							
                             }
 
@@ -51085,7 +51085,7 @@
                               							if (current==null) {
                               								current = createModelElement(grammarAccess.getVariableRule());
                               							}
-                              							setWithLastConsumed(current, "macro", true, "macro");
+                              							setWithLastConsumed(current, "macro", lv_macro_7_0 != null, "macro");
                               						
                             }
 
@@ -51149,7 +51149,7 @@
                       							if (current==null) {
                       								current = createModelElement(grammarAccess.getVariableRule());
                       							}
-                      							setWithLastConsumed(current, "macro", true, "macro");
+                      							setWithLastConsumed(current, "macro", lv_macro_9_0 != null, "macro");
                       						
                     }
 
@@ -51201,7 +51201,7 @@
                               								if (current==null) {
                               									current = createModelElement(grammarAccess.getVariableRule());
                               								}
-                              								setWithLastConsumed(current, "const", true, "val");
+                              								setWithLastConsumed(current, "const", lv_const_11_0 != null, "val");
                               							
                             }
 
@@ -51285,7 +51285,7 @@
                       					if (current==null) {
                       						current = createModelElement(grammarAccess.getVariableRule());
                       					}
-                      					setWithLastConsumed(current, "reference", true, "&");
+                      					setWithLastConsumed(current, "reference", lv_reference_13_0 != null, "&");
                       				
                     }
 
@@ -51789,7 +51789,7 @@
                       						if (current==null) {
                       							current = createModelElement(grammarAccess.getVariableImplRule());
                       						}
-                      						setWithLastConsumed(current, "const", true, "val");
+                      						setWithLastConsumed(current, "const", lv_const_2_0 != null, "val");
                       					
                     }
 
@@ -51824,7 +51824,7 @@
                       							if (current==null) {
                       								current = createModelElement(grammarAccess.getVariableImplRule());
                       							}
-                      							setWithLastConsumed(current, "const", true, "const");
+                      							setWithLastConsumed(current, "const", lv_const_3_0 != null, "const");
                       						
                     }
 
@@ -51858,7 +51858,7 @@
                               							if (current==null) {
                               								current = createModelElement(grammarAccess.getVariableImplRule());
                               							}
-                              							setWithLastConsumed(current, "macro", true, "macro");
+                              							setWithLastConsumed(current, "macro", lv_macro_4_0 != null, "macro");
                               						
                             }
 
@@ -51922,7 +51922,7 @@
                       							if (current==null) {
                       								current = createModelElement(grammarAccess.getVariableImplRule());
                       							}
-                      							setWithLastConsumed(current, "macro", true, "macro");
+                      							setWithLastConsumed(current, "macro", lv_macro_6_0 != null, "macro");
                       						
                     }
 
@@ -51974,7 +51974,7 @@
                               								if (current==null) {
                               									current = createModelElement(grammarAccess.getVariableImplRule());
                               								}
-                              								setWithLastConsumed(current, "const", true, "val");
+                              								setWithLastConsumed(current, "const", lv_const_8_0 != null, "val");
                               							
                             }
 
@@ -52058,7 +52058,7 @@
                       					if (current==null) {
                       						current = createModelElement(grammarAccess.getVariableImplRule());
                       					}
-                      					setWithLastConsumed(current, "reference", true, "&");
+                      					setWithLastConsumed(current, "reference", lv_reference_10_0 != null, "&");
                       				
                     }
 
@@ -55202,7 +55202,7 @@
                               								if (current==null) {
                               									current = createModelElement(grammarAccess.getBufferContainerTypeRule());
                               								}
-                              								setWithLastConsumed(current, "unbounded", true, "*");
+                              								setWithLastConsumed(current, "unbounded", lv_unbounded_5_0 != null, "*");
                               							
                             }
 
@@ -55342,7 +55342,7 @@
                               								if (current==null) {
                               									current = createModelElement(grammarAccess.getBufferContainerTypeRule());
                               								}
-                              								setWithLastConsumed(current, "unbounded", true, "*");
+                              								setWithLastConsumed(current, "unbounded", lv_unbounded_10_0 != null, "*");
                               							
                             }
 
@@ -60485,7 +60485,7 @@
                       					if (current==null) {
                       						current = createModelElement(grammarAccess.getTransitionRule());
                       					}
-                      					setWithLastConsumed(current, "transient", true, "transient");
+                      					setWithLastConsumed(current, "transient", lv_transient_1_0 != null, "transient");
                       				
                     }
 
@@ -62295,7 +62295,7 @@
                                       										if (current==null) {
                                       											current = createModelElement(grammarAccess.getTransitionMoeRule());
                                       										}
-                                      										setWithLastConsumed(current, "isElse", true, "else");
+                                      										setWithLastConsumed(current, "isElse", lv_isElse_4_0 != null, "else");
                                       									
                                     }
 
@@ -62336,7 +62336,7 @@
                               								if (current==null) {
                               									current = createModelElement(grammarAccess.getTransitionMoeRule());
                               								}
-                              								setWithLastConsumed(current, "isElse", true, "else");
+                              								setWithLastConsumed(current, "isElse", lv_isElse_5_0 != null, "else");
                               							
                             }
 
@@ -70658,7 +70658,7 @@
                       						if (current==null) {
                       							current = createModelElement(grammarAccess.getInvokeStatementRule());
                       						}
-                      						setWithLastConsumed(current, "execRoutine", true, "(");
+                      						setWithLastConsumed(current, "execRoutine", lv_execRoutine_3_0 != null, "(");
                       					
                     }
 
@@ -71014,7 +71014,7 @@
                       						if (current==null) {
                       							current = createModelElement(grammarAccess.getInvokeStatementRule());
                       						}
-                      						setWithLastConsumed(current, "execRoutine", true, "exec");
+                      						setWithLastConsumed(current, "execRoutine", lv_execRoutine_16_0 != null, "exec");
                       					
                     }
 
@@ -71415,7 +71415,7 @@
                       						if (current==null) {
                       							current = createModelElement(grammarAccess.getInvokeStatementRule());
                       						}
-                      						setWithLastConsumed(current, "callProcedure", true, "call");
+                      						setWithLastConsumed(current, "callProcedure", lv_callProcedure_31_0 != null, "call");
                       					
                     }
 
diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/scoping/AbstractFormalMLScopeProvider.java b/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/scoping/AbstractFormalMLScopeProvider.java
index 9b3afb6..311a1d1 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/scoping/AbstractFormalMLScopeProvider.java
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/scoping/AbstractFormalMLScopeProvider.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.formalml.xtext.scoping;
 
diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/serializer/FormalMLSemanticSequencer.java b/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/serializer/FormalMLSemanticSequencer.java
index d98962f..e348a34 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/serializer/FormalMLSemanticSequencer.java
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/serializer/FormalMLSemanticSequencer.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.formalml.xtext.serializer;
 
@@ -3167,7 +3167,7 @@
 	 *     LiteralCollectionExpression returns LiteralCollectionExpression
 	 *
 	 * Constraint:
-	 *     (datatype=DataType? ((value+=Expression | value+=NamedExpression) value+=NamedExpression? (value+=Expression? value+=NamedExpression?)*)?)
+	 *     (datatype=DataType? ((value+=Expression | value+=NamedExpression) value+=Expression? (value+=NamedExpression? value+=Expression?)*)?)
 	 */
 	protected void sequence_LiteralCollectionExpression(ISerializationContext context, LiteralCollectionExpression semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
@@ -4181,17 +4181,17 @@
 	 *         )* 
 	 *         name=ESIdentifier 
 	 *         unrestrictedName=UnrestrictedName? 
-	 *         function+=Function? 
+	 *         buffer+=Buffer? 
 	 *         (
 	 *             (
 	 *                 port+=Port | 
 	 *                 signal+=Signal | 
-	 *                 buffer+=Buffer | 
 	 *                 channel+=Channel | 
 	 *                 typedef+=TypeDefinition | 
+	 *                 function+=Function | 
 	 *                 variable+=Variable
 	 *             )? 
-	 *             function+=Function?
+	 *             buffer+=Buffer?
 	 *         )* 
 	 *         (
 	 *             port+=Port | 
@@ -4223,11 +4223,11 @@
 	 *             function+=FunctionPrivate | 
 	 *             variable+=VariablePrivate
 	 *         )* 
-	 *         ((procedure+=Procedure? (routine+=Routine? procedure+=Procedure?)*) | (routine+=Routine? (procedure+=Procedure? routine+=Routine?)*)) 
+	 *         ((procedure+=Procedure? (routine+=Routine? procedure+=Procedure?)*) | (procedure+=Procedure? (routine+=Routine? procedure+=Procedure?)*)) 
 	 *         machine+=AnyMachineBlock? 
 	 *         ((machine+=AnyMachineBlock | instance+=InstanceMachine | machine+=AnyMachineBlock | instance+=InstanceMachine)? machine+=AnyMachineBlock?)* 
-	 *         behavior+=Statemachine? 
-	 *         (behavior+=Behavior? behavior+=Statemachine?)* 
+	 *         behavior+=Behavior? 
+	 *         (behavior+=Statemachine? behavior+=Behavior?)* 
 	 *         main=MoeBehavior
 	 *     )
 	 */
@@ -4255,7 +4255,7 @@
 	 *     MixTupleExpressionList returns MixTupleExpression
 	 *
 	 * Constraint:
-	 *     ((value+=Expression | value+=NamedExpression) value+=NamedExpression? (value+=Expression? value+=NamedExpression?)*)
+	 *     ((value+=Expression | value+=NamedExpression) value+=Expression? (value+=NamedExpression? value+=Expression?)*)
 	 */
 	protected void sequence_MixTupleExpressionList(ISerializationContext context, MixTupleExpression semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
@@ -5460,39 +5460,39 @@
 	 *         unrestrictedName=UnrestrictedName? 
 	 *         (
 	 *             (
-	 *                 parameter+=ParameterOutput? 
+	 *                 parameter+=ParameterInout? 
 	 *                 (
 	 *                     (
 	 *                         parameter+=ParameterInput | 
 	 *                         parameter+=ParameterInput | 
 	 *                         parameter+=ParameterInout | 
-	 *                         parameter+=ParameterInout | 
+	 *                         parameter+=ParameterOutput | 
 	 *                         parameter+=ParameterOutput | 
 	 *                         parameter+=ParameterReturn | 
 	 *                         parameter+=ParameterReturn
 	 *                     )? 
-	 *                     parameter+=ParameterOutput?
+	 *                     parameter+=ParameterInout?
 	 *                 )*
 	 *             ) | 
 	 *             (
-	 *                 port+=Port? 
+	 *                 variable+=Variable? 
 	 *                 (
 	 *                     (
+	 *                         port+=Port | 
 	 *                         signal+=Signal | 
 	 *                         buffer+=Buffer | 
 	 *                         channel+=Channel | 
 	 *                         typedef+=TypeDefinition | 
-	 *                         function+=Function | 
-	 *                         variable+=Variable
+	 *                         function+=Function
 	 *                     )? 
-	 *                     port+=Port?
+	 *                     variable+=Variable?
 	 *                 )*
 	 *             )
 	 *         ) 
 	 *         parameter+=ParameterInput? 
 	 *         ((parameter+=ParameterInout | parameter+=ParameterOutput | parameter+=ParameterReturn)? parameter+=ParameterInput?)* 
 	 *         (
-	 *             channel+=ChannelPublic? 
+	 *             channel+=ChannelProtected? 
 	 *             (
 	 *                 port+=Port | 
 	 *                 signal+=Signal | 
@@ -5504,13 +5504,13 @@
 	 *                 port+=PortPublic | 
 	 *                 signal+=SignalPublic | 
 	 *                 buffer+=BufferPublic | 
+	 *                 channel+=ChannelPublic | 
 	 *                 typedef+=TypeDefinition | 
 	 *                 function+=FunctionPublic | 
 	 *                 variable+=VariablePublic | 
 	 *                 port+=PortProtected | 
 	 *                 signal+=SignalProtected | 
 	 *                 buffer+=BufferProtected | 
-	 *                 channel+=ChannelProtected | 
 	 *                 typedef+=TypeDefinition | 
 	 *                 function+=FunctionProtected | 
 	 *                 variable+=VariableProtected | 
@@ -5525,21 +5525,21 @@
 	 *         )* 
 	 *         (
 	 *             (
-	 *                 channel+=ChannelPublic? 
-	 *                 (routine+=Routine? procedure+=Procedure?)* 
-	 *                 routine+=Routine? 
+	 *                 channel+=ChannelProtected? 
+	 *                 (procedure+=Procedure? routine+=Routine?)* 
+	 *                 procedure+=Procedure? 
 	 *                 (region+=StatemachineRegion | region+=StatemachineNamedRegion+ | region+=StatemachineRegionLite)?
 	 *             ) | 
 	 *             (
-	 *                 channel+=ChannelPublic? 
+	 *                 channel+=ChannelProtected? 
 	 *                 (routine+=Routine? procedure+=Procedure?)* 
 	 *                 routine+=Routine? 
 	 *                 (region+=StatemachineRegion | region+=StatemachineNamedRegion+ | region+=StatemachineRegionLite)?
 	 *             ) | 
 	 *             (
 	 *                 (
-	 *                     (channel+=ChannelPublic? (routine+=Routine? procedure+=Procedure?)* routine+=Routine? machine+=AnyMachineBlock?) | 
-	 *                     (channel+=ChannelPublic? (routine+=Routine? procedure+=Procedure?)* routine+=Routine? machine+=AnyMachineBlock?)
+	 *                     (channel+=ChannelProtected? (procedure+=Procedure? routine+=Routine?)* procedure+=Procedure? machine+=AnyMachineBlock?) | 
+	 *                     (channel+=ChannelProtected? (routine+=Routine? procedure+=Procedure?)* routine+=Routine? machine+=AnyMachineBlock?)
 	 *                 ) 
 	 *                 ((machine+=Statemachine | machine+=AnyMachineBlock | machine+=AnyMachineBlock | instance+=InstanceMachine)? machine+=AnyMachineBlock?)*
 	 *             )
diff --git a/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/serializer/FormalMLSyntacticSequencer.java b/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/serializer/FormalMLSyntacticSequencer.java
index 88cf0e6..d3503c5 100644
--- a/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/serializer/FormalMLSyntacticSequencer.java
+++ b/editor/xlia/org.eclipse.efm.formalml.xtext/src-gen/org/eclipse/efm/formalml/xtext/serializer/FormalMLSyntacticSequencer.java
@@ -11,7 +11,7 @@
 *  - Initial API and implementation
 *
 ******************************************************************************
-* Generated by Xtext 2.21.0
+* Generated by Xtext 2.25.0
 *****************************************************************************/
 package org.eclipse.efm.formalml.xtext.serializer;
 
@@ -108,8 +108,8 @@
 	protected AbstractElementAlias match_MachineBlock_ExecutableKeyword_1_1_or_MachineKeyword_1_0;
 	protected AbstractElementAlias match_MachineBlock_InstanceKeyword_9_3_0_q;
 	protected AbstractElementAlias match_MachineBlock_MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0;
-	protected AbstractElementAlias match_MachineBlock_ModelKeyword_9_1_0_q;
 	protected AbstractElementAlias match_MachineBlock_ProcedureKeyword_8_0_1_0_q;
+	protected AbstractElementAlias match_MachineBlock_PrototypeKeyword_9_2_0_q;
 	protected AbstractElementAlias match_MachineBlock_StatemachineKeyword_10_1_0_q;
 	protected AbstractElementAlias match_MachineBlock___InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a;
 	protected AbstractElementAlias match_MachineBlock___LessThanSignKeyword_2_0___MocKeyword_2_1_0_q_ModelOfComputationKingParserRuleCall_2_1_1__q___InstanceKeyword_2_2_0_LeftSquareBracketKeyword_2_2_1___AsteriskKeyword_2_2_2_1_or_PlusSignKeyword_2_2_2_0_or___InitKeyword_2_2_2_2_0_EIntegerParserRuleCall_2_2_2_2_1_MaxKeyword_2_2_2_2_2_EIntegerParserRuleCall_2_2_2_2_3_____RightSquareBracketKeyword_2_2_3__q_GreaterThanSignKeyword_2_3__q;
@@ -117,10 +117,10 @@
 	protected AbstractElementAlias match_MachineBlock___PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a;
 	protected AbstractElementAlias match_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__a;
 	protected AbstractElementAlias match_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__p;
+	protected AbstractElementAlias match_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__q_PrototypeKeyword_9_2_0_q__a;
 	protected AbstractElementAlias match_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a___CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1____q;
 	protected AbstractElementAlias match_MachineBlock_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__a;
 	protected AbstractElementAlias match_MachineBlock_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__p;
-	protected AbstractElementAlias match_MachineBlock_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__q_ModelKeyword_9_1_0_q__a;
 	protected AbstractElementAlias match_MachineBlock_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__a;
 	protected AbstractElementAlias match_MachineBlock_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__p;
 	protected AbstractElementAlias match_MachineBlock_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__q_InstanceKeyword_9_3_0_q__a;
@@ -231,11 +231,11 @@
 	protected AbstractElementAlias match_Statemachine_MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0;
 	protected AbstractElementAlias match_Statemachine_ParameterKeyword_7_0_0_q;
 	protected AbstractElementAlias match_Statemachine_ProcedureKeyword_10_0_1_0_q;
-	protected AbstractElementAlias match_Statemachine_PropertyKeyword_9_0_0_q;
+	protected AbstractElementAlias match_Statemachine_ProtectedKeyword_9_2_0_q;
 	protected AbstractElementAlias match_Statemachine_PublicKeyword_9_1_0_q;
-	protected AbstractElementAlias match_Statemachine_ReturnKeyword_8_3_0_q;
 	protected AbstractElementAlias match_Statemachine___CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a;
 	protected AbstractElementAlias match_Statemachine___CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__p;
+	protected AbstractElementAlias match_Statemachine___InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a;
 	protected AbstractElementAlias match_Statemachine___LessThanSignKeyword_3_0_MocKeyword_3_1_q_ModelOfComputationKingParserRuleCall_3_2_GreaterThanSignKeyword_3_3__q;
 	protected AbstractElementAlias match_Statemachine___MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0__q;
 	protected AbstractElementAlias match_Statemachine___PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a;
@@ -252,7 +252,6 @@
 	protected AbstractElementAlias match_Statemachine_____CompositeKeyword_11_0_1_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_InstanceKeyword_11_0_4_0__p;
 	protected AbstractElementAlias match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__a;
 	protected AbstractElementAlias match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__p;
-	protected AbstractElementAlias match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__q_ReturnKeyword_8_3_0_q__a;
 	protected AbstractElementAlias match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__a;
 	protected AbstractElementAlias match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__p;
 	protected AbstractElementAlias match_Statemachine_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InputKeyword_8_0_0__a;
@@ -267,9 +266,9 @@
 	protected AbstractElementAlias match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__q_PublicKeyword_9_1_0_q__a;
 	protected AbstractElementAlias match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__a;
 	protected AbstractElementAlias match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__p;
+	protected AbstractElementAlias match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__q_ProtectedKeyword_9_2_0_q__a;
 	protected AbstractElementAlias match_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__a;
 	protected AbstractElementAlias match_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__p;
-	protected AbstractElementAlias match_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__q_PropertyKeyword_9_0_0_q__a;
 	protected AbstractElementAlias match_Statemachine_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__a;
 	protected AbstractElementAlias match_Statemachine_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__p;
 	protected AbstractElementAlias match_StructureTypeDefinitionImpl_PropertyKeyword_5_q;
@@ -403,8 +402,8 @@
 		match_MachineBlock_ExecutableKeyword_1_1_or_MachineKeyword_1_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getExecutableKeyword_1_1()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getMachineKeyword_1_0()));
 		match_MachineBlock_InstanceKeyword_9_3_0_q = new TokenAlias(false, true, grammarAccess.getMachineBlockAccess().getInstanceKeyword_9_3_0());
 		match_MachineBlock_MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getMacroKeyword_8_0_0_0_1()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getRoutineKeyword_8_0_0_0_0()));
-		match_MachineBlock_ModelKeyword_9_1_0_q = new TokenAlias(false, true, grammarAccess.getMachineBlockAccess().getModelKeyword_9_1_0());
 		match_MachineBlock_ProcedureKeyword_8_0_1_0_q = new TokenAlias(false, true, grammarAccess.getMachineBlockAccess().getProcedureKeyword_8_0_1_0());
+		match_MachineBlock_PrototypeKeyword_9_2_0_q = new TokenAlias(false, true, grammarAccess.getMachineBlockAccess().getPrototypeKeyword_9_2_0());
 		match_MachineBlock_StatemachineKeyword_10_1_0_q = new TokenAlias(false, true, grammarAccess.getMachineBlockAccess().getStatemachineKeyword_10_1_0());
 		match_MachineBlock___InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a = new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getInstanceKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getModelKeyword_9_1_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrototypeKeyword_9_2_0()));
 		match_MachineBlock___LessThanSignKeyword_2_0___MocKeyword_2_1_0_q_ModelOfComputationKingParserRuleCall_2_1_1__q___InstanceKeyword_2_2_0_LeftSquareBracketKeyword_2_2_1___AsteriskKeyword_2_2_2_1_or_PlusSignKeyword_2_2_2_0_or___InitKeyword_2_2_2_2_0_EIntegerParserRuleCall_2_2_2_2_1_MaxKeyword_2_2_2_2_2_EIntegerParserRuleCall_2_2_2_2_3_____RightSquareBracketKeyword_2_2_3__q_GreaterThanSignKeyword_2_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getLessThanSignKeyword_2_0()), new GroupAlias(false, true, new TokenAlias(false, true, grammarAccess.getMachineBlockAccess().getMocKeyword_2_1_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getModelOfComputationKingParserRuleCall_2_1_1())), new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getInstanceKeyword_2_2_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getLeftSquareBracketKeyword_2_2_1()), new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getInitKeyword_2_2_2_2_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getEIntegerParserRuleCall_2_2_2_2_1()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getMaxKeyword_2_2_2_2_2()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getEIntegerParserRuleCall_2_2_2_2_3())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getAsteriskKeyword_2_2_2_1()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPlusSignKeyword_2_2_2_0())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getRightSquareBracketKeyword_2_2_3())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getGreaterThanSignKeyword_2_3()));
@@ -412,10 +411,10 @@
 		match_MachineBlock___PrivateKeyword_7_3_0_or_PropertyKeyword_7_0_0_or_ProtectedKeyword_7_2_0_or_PublicKeyword_7_1_0__a = new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrivateKeyword_7_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPropertyKeyword_7_0_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getProtectedKeyword_7_2_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPublicKeyword_7_1_0()));
 		match_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getInstanceKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getModelKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrototypeKeyword_9_2_0()));
 		match_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getInstanceKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getModelKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrototypeKeyword_9_2_0()));
+		match_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__q_PrototypeKeyword_9_2_0_q__a = new GroupAlias(true, true, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getInstanceKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getModelKeyword_9_1_0())), new TokenAlias(false, true, grammarAccess.getMachineBlockAccess().getPrototypeKeyword_9_2_0()));
 		match_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a___CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1____q = new GroupAlias(false, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getInstanceKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getModelKeyword_9_1_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrototypeKeyword_9_2_0())), new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getCompositeKeyword_9_0_0_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getMachineKeyword_9_0_0_1())));
 		match_MachineBlock_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getInstanceKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrototypeKeyword_9_2_0())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getModelKeyword_9_1_0()));
 		match_MachineBlock_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getInstanceKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrototypeKeyword_9_2_0())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getModelKeyword_9_1_0()));
-		match_MachineBlock_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__q_ModelKeyword_9_1_0_q__a = new GroupAlias(true, true, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getInstanceKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrototypeKeyword_9_2_0())), new TokenAlias(false, true, grammarAccess.getMachineBlockAccess().getModelKeyword_9_1_0()));
 		match_MachineBlock_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getModelKeyword_9_1_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrototypeKeyword_9_2_0())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getInstanceKeyword_9_3_0()));
 		match_MachineBlock_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getModelKeyword_9_1_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrototypeKeyword_9_2_0())), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getInstanceKeyword_9_3_0()));
 		match_MachineBlock_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__q_InstanceKeyword_9_3_0_q__a = new GroupAlias(true, true, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getModelKeyword_9_1_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrototypeKeyword_9_2_0())), new TokenAlias(false, true, grammarAccess.getMachineBlockAccess().getInstanceKeyword_9_3_0()));
@@ -526,11 +525,11 @@
 		match_Statemachine_MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getMacroKeyword_10_0_0_0_1()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getRoutineKeyword_10_0_0_0_0()));
 		match_Statemachine_ParameterKeyword_7_0_0_q = new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getParameterKeyword_7_0_0());
 		match_Statemachine_ProcedureKeyword_10_0_1_0_q = new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getProcedureKeyword_10_0_1_0());
-		match_Statemachine_PropertyKeyword_9_0_0_q = new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getPropertyKeyword_9_0_0());
+		match_Statemachine_ProtectedKeyword_9_2_0_q = new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getProtectedKeyword_9_2_0());
 		match_Statemachine_PublicKeyword_9_1_0_q = new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getPublicKeyword_9_1_0());
-		match_Statemachine_ReturnKeyword_8_3_0_q = new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getReturnKeyword_8_3_0());
 		match_Statemachine___CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a = new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getCompositeKeyword_11_0_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInstanceKeyword_11_0_4_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getModelKeyword_11_0_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrototypeKeyword_11_0_3_0()));
 		match_Statemachine___CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__p = new AlternativeAlias(true, false, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getCompositeKeyword_11_0_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInstanceKeyword_11_0_4_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getModelKeyword_11_0_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrototypeKeyword_11_0_3_0()));
+		match_Statemachine___InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a = new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInoutKeyword_8_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInputKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getOutputKeyword_8_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getReturnKeyword_8_3_0()));
 		match_Statemachine___LessThanSignKeyword_3_0_MocKeyword_3_1_q_ModelOfComputationKingParserRuleCall_3_2_GreaterThanSignKeyword_3_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getLessThanSignKeyword_3_0()), new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getMocKeyword_3_1()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getModelOfComputationKingParserRuleCall_3_2()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getGreaterThanSignKeyword_3_3()));
 		match_Statemachine___MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0__q = new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getMacroKeyword_10_0_0_0_1()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getRoutineKeyword_10_0_0_0_0()));
 		match_Statemachine___PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a = new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPropertyKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getProtectedKeyword_9_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPublicKeyword_9_1_0()));
@@ -547,7 +546,6 @@
 		match_Statemachine_____CompositeKeyword_11_0_1_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a_InstanceKeyword_11_0_4_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getCompositeKeyword_11_0_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getModelKeyword_11_0_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrototypeKeyword_11_0_3_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInstanceKeyword_11_0_4_0()));
 		match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInoutKeyword_8_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInputKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getOutputKeyword_8_2_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getReturnKeyword_8_3_0()));
 		match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInoutKeyword_8_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInputKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getOutputKeyword_8_2_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getReturnKeyword_8_3_0()));
-		match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__q_ReturnKeyword_8_3_0_q__a = new GroupAlias(true, true, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInoutKeyword_8_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInputKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getOutputKeyword_8_2_0())), new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getReturnKeyword_8_3_0()));
 		match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInoutKeyword_8_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInputKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getReturnKeyword_8_3_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getOutputKeyword_8_2_0()));
 		match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInoutKeyword_8_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInputKeyword_8_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getReturnKeyword_8_3_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getOutputKeyword_8_2_0()));
 		match_Statemachine_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a_InputKeyword_8_0_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInoutKeyword_8_1_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getOutputKeyword_8_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getReturnKeyword_8_3_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getInputKeyword_8_0_0()));
@@ -562,9 +560,9 @@
 		match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0__q_PublicKeyword_9_1_0_q__a = new GroupAlias(true, true, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPropertyKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getProtectedKeyword_9_2_0())), new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getPublicKeyword_9_1_0()));
 		match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPropertyKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPublicKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getProtectedKeyword_9_2_0()));
 		match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPropertyKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPublicKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getProtectedKeyword_9_2_0()));
+		match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__q_ProtectedKeyword_9_2_0_q__a = new GroupAlias(true, true, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPropertyKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPublicKeyword_9_1_0())), new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getProtectedKeyword_9_2_0()));
 		match_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getProtectedKeyword_9_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPublicKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPropertyKeyword_9_0_0()));
 		match_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getProtectedKeyword_9_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPublicKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPropertyKeyword_9_0_0()));
-		match_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__q_PropertyKeyword_9_0_0_q__a = new GroupAlias(true, true, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrivateKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getProtectedKeyword_9_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPublicKeyword_9_1_0())), new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getPropertyKeyword_9_0_0()));
 		match_Statemachine_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__a = new GroupAlias(true, true, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPropertyKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getProtectedKeyword_9_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPublicKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrivateKeyword_9_3_0()));
 		match_Statemachine_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__p = new GroupAlias(true, false, new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPropertyKeyword_9_0_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getProtectedKeyword_9_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPublicKeyword_9_1_0())), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getPrivateKeyword_9_3_0()));
 		match_StructureTypeDefinitionImpl_PropertyKeyword_5_q = new TokenAlias(false, true, grammarAccess.getStructureTypeDefinitionImplAccess().getPropertyKeyword_5());
@@ -860,10 +858,10 @@
 				emit_MachineBlock_InstanceKeyword_9_3_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_MachineBlock_MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0.equals(syntax))
 				emit_MachineBlock_MacroKeyword_8_0_0_0_1_or_RoutineKeyword_8_0_0_0_0(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if (match_MachineBlock_ModelKeyword_9_1_0_q.equals(syntax))
-				emit_MachineBlock_ModelKeyword_9_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_MachineBlock_ProcedureKeyword_8_0_1_0_q.equals(syntax))
 				emit_MachineBlock_ProcedureKeyword_8_0_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if (match_MachineBlock_PrototypeKeyword_9_2_0_q.equals(syntax))
+				emit_MachineBlock_PrototypeKeyword_9_2_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_MachineBlock_StatemachineKeyword_10_1_0_q.equals(syntax))
 				emit_MachineBlock_StatemachineKeyword_10_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_MachineBlock___InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a.equals(syntax))
@@ -878,14 +876,14 @@
 				emit_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__p.equals(syntax))
 				emit_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__a_PrototypeKeyword_9_2_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if (match_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__q_PrototypeKeyword_9_2_0_q__a.equals(syntax))
+				emit_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__q_PrototypeKeyword_9_2_0_q__a(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a___CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1____q.equals(syntax))
 				emit_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a___CompositeKeyword_9_0_0_0_or_MachineKeyword_9_0_0_1____q(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_MachineBlock_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__a.equals(syntax))
 				emit_MachineBlock_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_MachineBlock_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__p.equals(syntax))
 				emit_MachineBlock_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__a_ModelKeyword_9_1_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if (match_MachineBlock_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__q_ModelKeyword_9_1_0_q__a.equals(syntax))
-				emit_MachineBlock_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__q_ModelKeyword_9_1_0_q__a(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_MachineBlock_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__a.equals(syntax))
 				emit_MachineBlock_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_MachineBlock_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__a_InstanceKeyword_9_3_0__p.equals(syntax))
@@ -1106,16 +1104,16 @@
 				emit_Statemachine_ParameterKeyword_7_0_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_Statemachine_ProcedureKeyword_10_0_1_0_q.equals(syntax))
 				emit_Statemachine_ProcedureKeyword_10_0_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if (match_Statemachine_PropertyKeyword_9_0_0_q.equals(syntax))
-				emit_Statemachine_PropertyKeyword_9_0_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if (match_Statemachine_ProtectedKeyword_9_2_0_q.equals(syntax))
+				emit_Statemachine_ProtectedKeyword_9_2_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_Statemachine_PublicKeyword_9_1_0_q.equals(syntax))
 				emit_Statemachine_PublicKeyword_9_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if (match_Statemachine_ReturnKeyword_8_3_0_q.equals(syntax))
-				emit_Statemachine_ReturnKeyword_8_3_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_Statemachine___CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a.equals(syntax))
 				emit_Statemachine___CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_Statemachine___CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__p.equals(syntax))
 				emit_Statemachine___CompositeKeyword_11_0_1_0_or_InstanceKeyword_11_0_4_0_or_ModelKeyword_11_0_2_0_or_PrototypeKeyword_11_0_3_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if (match_Statemachine___InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a.equals(syntax))
+				emit_Statemachine___InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_Statemachine___LessThanSignKeyword_3_0_MocKeyword_3_1_q_ModelOfComputationKingParserRuleCall_3_2_GreaterThanSignKeyword_3_3__q.equals(syntax))
 				emit_Statemachine___LessThanSignKeyword_3_0_MocKeyword_3_1_q_ModelOfComputationKingParserRuleCall_3_2_GreaterThanSignKeyword_3_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_Statemachine___MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0__q.equals(syntax))
@@ -1148,8 +1146,6 @@
 				emit_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__p.equals(syntax))
 				emit_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__a_ReturnKeyword_8_3_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if (match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__q_ReturnKeyword_8_3_0_q__a.equals(syntax))
-				emit_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_OutputKeyword_8_2_0__q_ReturnKeyword_8_3_0_q__a(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__a.equals(syntax))
 				emit_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_Statemachine_____InoutKeyword_8_1_0_or_InputKeyword_8_0_0_or_ReturnKeyword_8_3_0__a_OutputKeyword_8_2_0__p.equals(syntax))
@@ -1178,12 +1174,12 @@
 				emit_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__p.equals(syntax))
 				emit_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__a_ProtectedKeyword_9_2_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if (match_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__q_ProtectedKeyword_9_2_0_q__a.equals(syntax))
+				emit_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__q_ProtectedKeyword_9_2_0_q__a(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__a.equals(syntax))
 				emit_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__p.equals(syntax))
 				emit_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PropertyKeyword_9_0_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
-			else if (match_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__q_PropertyKeyword_9_0_0_q__a.equals(syntax))
-				emit_Statemachine_____PrivateKeyword_9_3_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__q_PropertyKeyword_9_0_0_q__a(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_Statemachine_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__a.equals(syntax))
 				emit_Statemachine_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
 			else if (match_Statemachine_____PropertyKeyword_9_0_0_or_ProtectedKeyword_9_2_0_or_PublicKeyword_9_1_0__a_PrivateKeyword_9_3_0__p.equals(syntax))
@@ -2719,43 +2715,6 @@
 	
 	/**
 	 * Ambiguous syntax:
-	 *     '@model:'?
-	 *
-	 * This ambiguous syntax occurs at:
-	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@prototype:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
-	 */
-	protected void emit_MachineBlock_ModelKeyword_9_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
-		acceptNodes(transition, nodes);
-	}
-	
-	/**
-	 * Ambiguous syntax:
 	 *     '@procedure:'?
 	 *
 	 * This ambiguous syntax occurs at:
@@ -2767,6 +2726,43 @@
 	
 	/**
 	 * Ambiguous syntax:
+	 *     '@prototype:'?
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
+	 */
+	protected void emit_MachineBlock_PrototypeKeyword_9_2_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Ambiguous syntax:
 	 *     '@statemachine:'?
 	 *
 	 * This ambiguous syntax occurs at:
@@ -2847,8 +2843,8 @@
 	 *     buffer+=Buffer (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     buffer+=Buffer (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     buffer+=Buffer (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     buffer+=Buffer (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     buffer+=Buffer (ambiguity) '@procedure:' procedure+=Procedure
+	 *     buffer+=Buffer (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     buffer+=Buffer (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     buffer+=Buffer (ambiguity) procedure+=Procedure
 	 *     buffer+=Buffer (ambiguity) routine+=Routine
@@ -2859,8 +2855,8 @@
 	 *     buffer+=BufferPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     buffer+=BufferPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     buffer+=BufferPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     buffer+=BufferPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     buffer+=BufferPrivate (ambiguity) '@procedure:' procedure+=Procedure
+	 *     buffer+=BufferPrivate (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     buffer+=BufferPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     buffer+=BufferPrivate (ambiguity) procedure+=Procedure
 	 *     buffer+=BufferPrivate (ambiguity) routine+=Routine
@@ -2871,8 +2867,8 @@
 	 *     buffer+=BufferProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     buffer+=BufferProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     buffer+=BufferProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     buffer+=BufferProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     buffer+=BufferProtected (ambiguity) '@procedure:' procedure+=Procedure
+	 *     buffer+=BufferProtected (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     buffer+=BufferProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     buffer+=BufferProtected (ambiguity) procedure+=Procedure
 	 *     buffer+=BufferProtected (ambiguity) routine+=Routine
@@ -2883,8 +2879,8 @@
 	 *     buffer+=BufferPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     buffer+=BufferPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     buffer+=BufferPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     buffer+=BufferPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     buffer+=BufferPublic (ambiguity) '@procedure:' procedure+=Procedure
+	 *     buffer+=BufferPublic (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     buffer+=BufferPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     buffer+=BufferPublic (ambiguity) procedure+=Procedure
 	 *     buffer+=BufferPublic (ambiguity) routine+=Routine
@@ -2895,8 +2891,8 @@
 	 *     channel+=Channel (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     channel+=Channel (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     channel+=Channel (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     channel+=Channel (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     channel+=Channel (ambiguity) '@procedure:' procedure+=Procedure
+	 *     channel+=Channel (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     channel+=Channel (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     channel+=Channel (ambiguity) procedure+=Procedure
 	 *     channel+=Channel (ambiguity) routine+=Routine
@@ -2907,8 +2903,8 @@
 	 *     channel+=ChannelPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     channel+=ChannelPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     channel+=ChannelPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     channel+=ChannelPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     channel+=ChannelPrivate (ambiguity) '@procedure:' procedure+=Procedure
+	 *     channel+=ChannelPrivate (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     channel+=ChannelPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     channel+=ChannelPrivate (ambiguity) procedure+=Procedure
 	 *     channel+=ChannelPrivate (ambiguity) routine+=Routine
@@ -2919,8 +2915,8 @@
 	 *     channel+=ChannelProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     channel+=ChannelProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     channel+=ChannelProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     channel+=ChannelProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     channel+=ChannelProtected (ambiguity) '@procedure:' procedure+=Procedure
+	 *     channel+=ChannelProtected (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     channel+=ChannelProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     channel+=ChannelProtected (ambiguity) procedure+=Procedure
 	 *     channel+=ChannelProtected (ambiguity) routine+=Routine
@@ -2931,8 +2927,8 @@
 	 *     channel+=ChannelPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     channel+=ChannelPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     channel+=ChannelPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     channel+=ChannelPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     channel+=ChannelPublic (ambiguity) '@procedure:' procedure+=Procedure
+	 *     channel+=ChannelPublic (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     channel+=ChannelPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     channel+=ChannelPublic (ambiguity) procedure+=Procedure
 	 *     channel+=ChannelPublic (ambiguity) routine+=Routine
@@ -2943,8 +2939,8 @@
 	 *     function+=Function (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     function+=Function (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     function+=Function (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     function+=Function (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     function+=Function (ambiguity) '@procedure:' procedure+=Procedure
+	 *     function+=Function (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     function+=Function (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     function+=Function (ambiguity) procedure+=Procedure
 	 *     function+=Function (ambiguity) routine+=Routine
@@ -2955,8 +2951,8 @@
 	 *     function+=FunctionPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     function+=FunctionPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     function+=FunctionPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     function+=FunctionPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     function+=FunctionPrivate (ambiguity) '@procedure:' procedure+=Procedure
+	 *     function+=FunctionPrivate (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     function+=FunctionPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     function+=FunctionPrivate (ambiguity) procedure+=Procedure
 	 *     function+=FunctionPrivate (ambiguity) routine+=Routine
@@ -2967,8 +2963,8 @@
 	 *     function+=FunctionProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     function+=FunctionProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     function+=FunctionProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     function+=FunctionProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     function+=FunctionProtected (ambiguity) '@procedure:' procedure+=Procedure
+	 *     function+=FunctionProtected (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     function+=FunctionProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     function+=FunctionProtected (ambiguity) procedure+=Procedure
 	 *     function+=FunctionProtected (ambiguity) routine+=Routine
@@ -2979,8 +2975,8 @@
 	 *     function+=FunctionPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     function+=FunctionPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     function+=FunctionPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     function+=FunctionPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     function+=FunctionPublic (ambiguity) '@procedure:' procedure+=Procedure
+	 *     function+=FunctionPublic (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     function+=FunctionPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     function+=FunctionPublic (ambiguity) procedure+=Procedure
 	 *     function+=FunctionPublic (ambiguity) routine+=Routine
@@ -2991,8 +2987,8 @@
 	 *     name=ESIdentifier '{' (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     name=ESIdentifier '{' (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     name=ESIdentifier '{' (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     name=ESIdentifier '{' (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     name=ESIdentifier '{' (ambiguity) '@procedure:' procedure+=Procedure
+	 *     name=ESIdentifier '{' (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     name=ESIdentifier '{' (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     name=ESIdentifier '{' (ambiguity) procedure+=Procedure
 	 *     name=ESIdentifier '{' (ambiguity) routine+=Routine
@@ -3003,8 +2999,8 @@
 	 *     port+=Port (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     port+=Port (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     port+=Port (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     port+=Port (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     port+=Port (ambiguity) '@procedure:' procedure+=Procedure
+	 *     port+=Port (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     port+=Port (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     port+=Port (ambiguity) procedure+=Procedure
 	 *     port+=Port (ambiguity) routine+=Routine
@@ -3015,8 +3011,8 @@
 	 *     port+=PortPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     port+=PortPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     port+=PortPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     port+=PortPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     port+=PortPrivate (ambiguity) '@procedure:' procedure+=Procedure
+	 *     port+=PortPrivate (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     port+=PortPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     port+=PortPrivate (ambiguity) procedure+=Procedure
 	 *     port+=PortPrivate (ambiguity) routine+=Routine
@@ -3027,8 +3023,8 @@
 	 *     port+=PortProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     port+=PortProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     port+=PortProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     port+=PortProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     port+=PortProtected (ambiguity) '@procedure:' procedure+=Procedure
+	 *     port+=PortProtected (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     port+=PortProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     port+=PortProtected (ambiguity) procedure+=Procedure
 	 *     port+=PortProtected (ambiguity) routine+=Routine
@@ -3039,8 +3035,8 @@
 	 *     port+=PortPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     port+=PortPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     port+=PortPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     port+=PortPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     port+=PortPublic (ambiguity) '@procedure:' procedure+=Procedure
+	 *     port+=PortPublic (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     port+=PortPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     port+=PortPublic (ambiguity) procedure+=Procedure
 	 *     port+=PortPublic (ambiguity) routine+=Routine
@@ -3051,8 +3047,8 @@
 	 *     signal+=Signal (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     signal+=Signal (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     signal+=Signal (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     signal+=Signal (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     signal+=Signal (ambiguity) '@procedure:' procedure+=Procedure
+	 *     signal+=Signal (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     signal+=Signal (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     signal+=Signal (ambiguity) procedure+=Procedure
 	 *     signal+=Signal (ambiguity) routine+=Routine
@@ -3063,8 +3059,8 @@
 	 *     signal+=SignalPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     signal+=SignalPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     signal+=SignalPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     signal+=SignalPrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     signal+=SignalPrivate (ambiguity) '@procedure:' procedure+=Procedure
+	 *     signal+=SignalPrivate (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     signal+=SignalPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     signal+=SignalPrivate (ambiguity) procedure+=Procedure
 	 *     signal+=SignalPrivate (ambiguity) routine+=Routine
@@ -3075,8 +3071,8 @@
 	 *     signal+=SignalProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     signal+=SignalProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     signal+=SignalProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     signal+=SignalProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     signal+=SignalProtected (ambiguity) '@procedure:' procedure+=Procedure
+	 *     signal+=SignalProtected (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     signal+=SignalProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     signal+=SignalProtected (ambiguity) procedure+=Procedure
 	 *     signal+=SignalProtected (ambiguity) routine+=Routine
@@ -3087,8 +3083,8 @@
 	 *     signal+=SignalPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     signal+=SignalPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     signal+=SignalPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     signal+=SignalPublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     signal+=SignalPublic (ambiguity) '@procedure:' procedure+=Procedure
+	 *     signal+=SignalPublic (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     signal+=SignalPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     signal+=SignalPublic (ambiguity) procedure+=Procedure
 	 *     signal+=SignalPublic (ambiguity) routine+=Routine
@@ -3099,8 +3095,8 @@
 	 *     typedef+=TypeDefinition (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     typedef+=TypeDefinition (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     typedef+=TypeDefinition (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     typedef+=TypeDefinition (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     typedef+=TypeDefinition (ambiguity) '@procedure:' procedure+=Procedure
+	 *     typedef+=TypeDefinition (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     typedef+=TypeDefinition (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     typedef+=TypeDefinition (ambiguity) procedure+=Procedure
 	 *     typedef+=TypeDefinition (ambiguity) routine+=Routine
@@ -3111,8 +3107,8 @@
 	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@procedure:' procedure+=Procedure
+	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) procedure+=Procedure
 	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) routine+=Routine
@@ -3123,8 +3119,8 @@
 	 *     variable+=Variable (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     variable+=Variable (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     variable+=Variable (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     variable+=Variable (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     variable+=Variable (ambiguity) '@procedure:' procedure+=Procedure
+	 *     variable+=Variable (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     variable+=Variable (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     variable+=Variable (ambiguity) procedure+=Procedure
 	 *     variable+=Variable (ambiguity) routine+=Routine
@@ -3135,8 +3131,8 @@
 	 *     variable+=VariablePrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     variable+=VariablePrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     variable+=VariablePrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     variable+=VariablePrivate (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     variable+=VariablePrivate (ambiguity) '@procedure:' procedure+=Procedure
+	 *     variable+=VariablePrivate (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     variable+=VariablePrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     variable+=VariablePrivate (ambiguity) procedure+=Procedure
 	 *     variable+=VariablePrivate (ambiguity) routine+=Routine
@@ -3147,8 +3143,8 @@
 	 *     variable+=VariableProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     variable+=VariableProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     variable+=VariableProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     variable+=VariableProtected (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     variable+=VariableProtected (ambiguity) '@procedure:' procedure+=Procedure
+	 *     variable+=VariableProtected (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     variable+=VariableProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     variable+=VariableProtected (ambiguity) procedure+=Procedure
 	 *     variable+=VariableProtected (ambiguity) routine+=Routine
@@ -3159,8 +3155,8 @@
 	 *     variable+=VariablePublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
 	 *     variable+=VariablePublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
 	 *     variable+=VariablePublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
-	 *     variable+=VariablePublic (ambiguity) '@model:'? (('@prototype:' | '@instance:')? '@model:'?)* '@instance:' instance+=InstanceMachine
 	 *     variable+=VariablePublic (ambiguity) '@procedure:' procedure+=Procedure
+	 *     variable+=VariablePublic (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
 	 *     variable+=VariablePublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
 	 *     variable+=VariablePublic (ambiguity) procedure+=Procedure
 	 *     variable+=VariablePublic (ambiguity) routine+=Routine
@@ -3196,6 +3192,43 @@
 	
 	/**
 	 * Ambiguous syntax:
+	 *     (('@model:' | '@instance:')? '@prototype:'?)*
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
+	 */
+	protected void emit_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__q_PrototypeKeyword_9_2_0_q__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Ambiguous syntax:
 	 *     (('@model:' | '@prototype:' | '@instance:')* ('@composite:' | '@machine:'))?
 	 *
 	 * This ambiguous syntax occurs at:
@@ -3235,43 +3268,6 @@
 	
 	/**
 	 * Ambiguous syntax:
-	 *     (('@prototype:' | '@instance:')? '@model:'?)*
-	 *
-	 * This ambiguous syntax occurs at:
-	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@model:'? (ambiguity) '@instance:' instance+=InstanceMachine
-	 */
-	protected void emit_MachineBlock_____InstanceKeyword_9_3_0_or_PrototypeKeyword_9_2_0__q_ModelKeyword_9_1_0_q__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
-		acceptNodes(transition, nodes);
-	}
-	
-	/**
-	 * Ambiguous syntax:
 	 *     (('@model:' | '@prototype:')* '@instance:')*
 	 *
 	 * This ambiguous syntax occurs at:
@@ -12913,8 +12909,8 @@
 	 *         buffer+=Buffer 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
 	 *         '@statemachine:' 
 	 *         machine+=Statemachine
@@ -12923,8 +12919,8 @@
 	 *         buffer+=Buffer 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         '}' 
 	 *         (rule end)
@@ -12933,8 +12929,8 @@
 	 *         buffer+=Buffer 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         execution=ModelOfExecution
 	 *     )
@@ -12942,8 +12938,8 @@
 	 *         buffer+=Buffer 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         interaction=ModelOfInteraction
 	 *     )
@@ -12951,8 +12947,8 @@
 	 *         buffer+=Buffer 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -12960,8 +12956,8 @@
 	 *         buffer+=Buffer 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
 	 *         instance+=InstanceMachine
 	 *     )
@@ -12969,8 +12965,8 @@
 	 *         buffer+=Buffer 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -12978,8 +12974,8 @@
 	 *         buffer+=Buffer 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -12987,8 +12983,8 @@
 	 *         channel+=Channel 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
 	 *         '@statemachine:' 
 	 *         machine+=Statemachine
@@ -12997,8 +12993,8 @@
 	 *         channel+=Channel 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         '}' 
 	 *         (rule end)
@@ -13007,8 +13003,8 @@
 	 *         channel+=Channel 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         execution=ModelOfExecution
 	 *     )
@@ -13016,8 +13012,8 @@
 	 *         channel+=Channel 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         interaction=ModelOfInteraction
 	 *     )
@@ -13025,8 +13021,8 @@
 	 *         channel+=Channel 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13034,8 +13030,8 @@
 	 *         channel+=Channel 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
 	 *         instance+=InstanceMachine
 	 *     )
@@ -13043,8 +13039,8 @@
 	 *         channel+=Channel 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13052,8 +13048,8 @@
 	 *         channel+=Channel 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13061,8 +13057,8 @@
 	 *         function+=Function 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
 	 *         '@statemachine:' 
 	 *         machine+=Statemachine
@@ -13071,8 +13067,8 @@
 	 *         function+=Function 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         '}' 
 	 *         (rule end)
@@ -13081,8 +13077,8 @@
 	 *         function+=Function 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         execution=ModelOfExecution
 	 *     )
@@ -13090,8 +13086,8 @@
 	 *         function+=Function 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         interaction=ModelOfInteraction
 	 *     )
@@ -13099,8 +13095,8 @@
 	 *         function+=Function 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13108,8 +13104,8 @@
 	 *         function+=Function 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
 	 *         instance+=InstanceMachine
 	 *     )
@@ -13117,8 +13113,8 @@
 	 *         function+=Function 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13126,8 +13122,8 @@
 	 *         function+=Function 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13137,8 +13133,8 @@
 	 *         '@parameter:'? 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
 	 *         '@statemachine:' 
 	 *         machine+=Statemachine
@@ -13149,8 +13145,8 @@
 	 *         '@parameter:'? 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         '}' 
 	 *         (rule end)
@@ -13161,8 +13157,8 @@
 	 *         '@parameter:'? 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         execution=ModelOfExecution
 	 *     )
@@ -13172,8 +13168,8 @@
 	 *         '@parameter:'? 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         interaction=ModelOfInteraction
 	 *     )
@@ -13183,8 +13179,8 @@
 	 *         '@parameter:'? 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13194,8 +13190,8 @@
 	 *         '@parameter:'? 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
 	 *         instance+=InstanceMachine
 	 *     )
@@ -13205,8 +13201,8 @@
 	 *         '@parameter:'? 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13216,8 +13212,8 @@
 	 *         '@parameter:'? 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13226,8 +13222,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
 	 *         '@statemachine:' 
 	 *         machine+=Statemachine
@@ -13237,8 +13233,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         '}' 
 	 *         (rule end)
@@ -13248,8 +13244,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         execution=ModelOfExecution
 	 *     )
@@ -13258,8 +13254,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         interaction=ModelOfInteraction
 	 *     )
@@ -13268,8 +13264,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13278,8 +13274,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
 	 *         instance+=InstanceMachine
 	 *     )
@@ -13288,8 +13284,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13298,8 +13294,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13307,8 +13303,8 @@
 	 *         parameter+=ParameterInout 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
 	 *         '@statemachine:' 
 	 *         machine+=Statemachine
@@ -13317,8 +13313,8 @@
 	 *         parameter+=ParameterInout 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         '}' 
 	 *         (rule end)
@@ -13327,8 +13323,8 @@
 	 *         parameter+=ParameterInout 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         execution=ModelOfExecution
 	 *     )
@@ -13336,8 +13332,8 @@
 	 *         parameter+=ParameterInout 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         interaction=ModelOfInteraction
 	 *     )
@@ -13345,8 +13341,8 @@
 	 *         parameter+=ParameterInout 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13354,8 +13350,8 @@
 	 *         parameter+=ParameterInout 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
 	 *         instance+=InstanceMachine
 	 *     )
@@ -13363,8 +13359,8 @@
 	 *         parameter+=ParameterInout 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13372,8 +13368,8 @@
 	 *         parameter+=ParameterInout 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13382,8 +13378,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
 	 *         '@statemachine:' 
 	 *         machine+=Statemachine
@@ -13393,8 +13389,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         '}' 
 	 *         (rule end)
@@ -13404,8 +13400,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         execution=ModelOfExecution
 	 *     )
@@ -13414,8 +13410,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         interaction=ModelOfInteraction
 	 *     )
@@ -13424,8 +13420,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13434,8 +13430,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
 	 *         instance+=InstanceMachine
 	 *     )
@@ -13444,8 +13440,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13454,8 +13450,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13463,8 +13459,8 @@
 	 *         parameter+=ParameterInput 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
 	 *         '@statemachine:' 
 	 *         machine+=Statemachine
@@ -13473,8 +13469,8 @@
 	 *         parameter+=ParameterInput 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         '}' 
 	 *         (rule end)
@@ -13483,8 +13479,8 @@
 	 *         parameter+=ParameterInput 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         execution=ModelOfExecution
 	 *     )
@@ -13492,8 +13488,8 @@
 	 *         parameter+=ParameterInput 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         interaction=ModelOfInteraction
 	 *     )
@@ -13501,8 +13497,8 @@
 	 *         parameter+=ParameterInput 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13510,8 +13506,8 @@
 	 *         parameter+=ParameterInput 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
 	 *         instance+=InstanceMachine
 	 *     )
@@ -13519,8 +13515,8 @@
 	 *         parameter+=ParameterInput 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13528,8 +13524,8 @@
 	 *         parameter+=ParameterInput 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13538,8 +13534,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
 	 *         '@statemachine:' 
 	 *         machine+=Statemachine
@@ -13549,8 +13545,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         '}' 
 	 *         (rule end)
@@ -13560,8 +13556,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         execution=ModelOfExecution
 	 *     )
@@ -13570,8 +13566,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         interaction=ModelOfInteraction
 	 *     )
@@ -13580,8 +13576,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13590,8 +13586,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
 	 *         instance+=InstanceMachine
 	 *     )
@@ -13600,8 +13596,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13610,8 +13606,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13619,8 +13615,8 @@
 	 *         parameter+=ParameterOutput 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
 	 *         '@statemachine:' 
 	 *         machine+=Statemachine
@@ -13629,8 +13625,8 @@
 	 *         parameter+=ParameterOutput 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         '}' 
 	 *         (rule end)
@@ -13639,8 +13635,8 @@
 	 *         parameter+=ParameterOutput 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         execution=ModelOfExecution
 	 *     )
@@ -13648,8 +13644,8 @@
 	 *         parameter+=ParameterOutput 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         interaction=ModelOfInteraction
 	 *     )
@@ -13657,8 +13653,8 @@
 	 *         parameter+=ParameterOutput 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13666,8 +13662,8 @@
 	 *         parameter+=ParameterOutput 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
 	 *         instance+=InstanceMachine
 	 *     )
@@ -13675,8 +13671,8 @@
 	 *         parameter+=ParameterOutput 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13684,8 +13680,8 @@
 	 *         parameter+=ParameterOutput 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13694,8 +13690,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
 	 *         '@statemachine:' 
 	 *         machine+=Statemachine
@@ -13705,8 +13701,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         '}' 
 	 *         (rule end)
@@ -13716,8 +13712,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         execution=ModelOfExecution
 	 *     )
@@ -13726,8 +13722,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         interaction=ModelOfInteraction
 	 *     )
@@ -13736,8 +13732,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13746,8 +13742,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
 	 *         instance+=InstanceMachine
 	 *     )
@@ -13756,8 +13752,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13766,8 +13762,8 @@
 	 *         '}' 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13775,8 +13771,8 @@
 	 *         parameter+=ParameterReturn 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
 	 *         '@statemachine:' 
 	 *         machine+=Statemachine
@@ -13785,8 +13781,8 @@
 	 *         parameter+=ParameterReturn 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         '}' 
 	 *         (rule end)
@@ -13795,8 +13791,8 @@
 	 *         parameter+=ParameterReturn 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         execution=ModelOfExecution
 	 *     )
@@ -13804,8 +13800,8 @@
 	 *         parameter+=ParameterReturn 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         interaction=ModelOfInteraction
 	 *     )
@@ -13813,8 +13809,8 @@
 	 *         parameter+=ParameterReturn 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13822,8 +13818,8 @@
 	 *         parameter+=ParameterReturn 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
 	 *         instance+=InstanceMachine
 	 *     )
@@ -13831,8 +13827,8 @@
 	 *         parameter+=ParameterReturn 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13840,8 +13836,8 @@
 	 *         parameter+=ParameterReturn 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13849,8 +13845,8 @@
 	 *         port+=Port 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
 	 *         '@statemachine:' 
 	 *         machine+=Statemachine
@@ -13859,8 +13855,8 @@
 	 *         port+=Port 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         '}' 
 	 *         (rule end)
@@ -13869,8 +13865,8 @@
 	 *         port+=Port 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         execution=ModelOfExecution
 	 *     )
@@ -13878,8 +13874,8 @@
 	 *         port+=Port 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         interaction=ModelOfInteraction
 	 *     )
@@ -13887,8 +13883,8 @@
 	 *         port+=Port 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13896,8 +13892,8 @@
 	 *         port+=Port 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
 	 *         instance+=InstanceMachine
 	 *     )
@@ -13905,8 +13901,8 @@
 	 *         port+=Port 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13914,8 +13910,8 @@
 	 *         port+=Port 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13923,8 +13919,8 @@
 	 *         signal+=Signal 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
 	 *         '@statemachine:' 
 	 *         machine+=Statemachine
@@ -13933,8 +13929,8 @@
 	 *         signal+=Signal 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         '}' 
 	 *         (rule end)
@@ -13943,8 +13939,8 @@
 	 *         signal+=Signal 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         execution=ModelOfExecution
 	 *     )
@@ -13952,8 +13948,8 @@
 	 *         signal+=Signal 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         interaction=ModelOfInteraction
 	 *     )
@@ -13961,8 +13957,8 @@
 	 *         signal+=Signal 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13970,8 +13966,8 @@
 	 *         signal+=Signal 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
 	 *         instance+=InstanceMachine
 	 *     )
@@ -13979,8 +13975,8 @@
 	 *         signal+=Signal 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13988,8 +13984,8 @@
 	 *         signal+=Signal 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -13997,8 +13993,8 @@
 	 *         typedef+=TypeDefinition 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
 	 *         '@statemachine:' 
 	 *         machine+=Statemachine
@@ -14007,8 +14003,8 @@
 	 *         typedef+=TypeDefinition 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         '}' 
 	 *         (rule end)
@@ -14017,8 +14013,8 @@
 	 *         typedef+=TypeDefinition 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         execution=ModelOfExecution
 	 *     )
@@ -14026,8 +14022,8 @@
 	 *         typedef+=TypeDefinition 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         interaction=ModelOfInteraction
 	 *     )
@@ -14035,8 +14031,8 @@
 	 *         typedef+=TypeDefinition 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -14044,8 +14040,8 @@
 	 *         typedef+=TypeDefinition 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
 	 *         instance+=InstanceMachine
 	 *     )
@@ -14053,8 +14049,8 @@
 	 *         typedef+=TypeDefinition 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -14062,8 +14058,8 @@
 	 *         typedef+=TypeDefinition 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -14073,8 +14069,8 @@
 	 *         '@parameter:'? 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
 	 *         '@statemachine:' 
 	 *         machine+=Statemachine
@@ -14085,8 +14081,8 @@
 	 *         '@parameter:'? 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         '}' 
 	 *         (rule end)
@@ -14097,8 +14093,8 @@
 	 *         '@parameter:'? 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         execution=ModelOfExecution
 	 *     )
@@ -14108,8 +14104,8 @@
 	 *         '@parameter:'? 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         interaction=ModelOfInteraction
 	 *     )
@@ -14119,8 +14115,8 @@
 	 *         '@parameter:'? 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -14130,8 +14126,8 @@
 	 *         '@parameter:'? 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
 	 *         instance+=InstanceMachine
 	 *     )
@@ -14141,8 +14137,8 @@
 	 *         '@parameter:'? 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -14152,8 +14148,8 @@
 	 *         '@parameter:'? 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -14199,8 +14195,8 @@
 	 *         variable+=Variable 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
 	 *         '@statemachine:' 
 	 *         machine+=Statemachine
@@ -14209,8 +14205,8 @@
 	 *         variable+=Variable 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         '}' 
 	 *         (rule end)
@@ -14219,8 +14215,8 @@
 	 *         variable+=Variable 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         execution=ModelOfExecution
 	 *     )
@@ -14228,8 +14224,8 @@
 	 *         variable+=Variable 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         interaction=ModelOfInteraction
 	 *     )
@@ -14237,8 +14233,8 @@
 	 *         variable+=Variable 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -14246,8 +14242,8 @@
 	 *         variable+=Variable 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
 	 *         instance+=InstanceMachine
 	 *     )
@@ -14255,8 +14251,8 @@
 	 *         variable+=Variable 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -14264,8 +14260,8 @@
 	 *         variable+=Variable 
 	 *         (ambiguity) 
 	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -14887,17 +14883,17 @@
 	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
 	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
 	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
-	 *     parameter+=ParameterInout '@return:'? (('@input:' | '@inout:' | '@output:')? '@return:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
 	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) routine+=Routine
 	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
-	 *     parameter+=ParameterInput '@return:'? (('@input:' | '@inout:' | '@output:')? '@return:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
 	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) routine+=Routine
 	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
-	 *     parameter+=ParameterOutput '@return:'? (('@input:' | '@inout:' | '@output:')? '@return:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
 	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) routine+=Routine
 	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
-	 *     parameter+=ParameterReturn '@return:'? (('@input:' | '@inout:' | '@output:')? '@return:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
 	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) routine+=Routine
 	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
 	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
 	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
@@ -14933,8 +14929,8 @@
 	 *         (ambiguity) 
 	 *         '@input:'? 
 	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
 	 *         '@statemachine:' 
 	 *         machine+=Statemachine
@@ -14945,8 +14941,8 @@
 	 *         (ambiguity) 
 	 *         '@input:'? 
 	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         '}' 
 	 *         (rule end)
@@ -14957,8 +14953,8 @@
 	 *         (ambiguity) 
 	 *         '@input:'? 
 	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         execution=ModelOfExecution
 	 *     )
@@ -14968,8 +14964,8 @@
 	 *         (ambiguity) 
 	 *         '@input:'? 
 	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         interaction=ModelOfInteraction
 	 *     )
@@ -14979,8 +14975,8 @@
 	 *         (ambiguity) 
 	 *         '@input:'? 
 	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -14990,8 +14986,8 @@
 	 *         (ambiguity) 
 	 *         '@input:'? 
 	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
 	 *         instance+=InstanceMachine
 	 *     )
@@ -15001,8 +14997,8 @@
 	 *         (ambiguity) 
 	 *         '@input:'? 
 	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -15012,8 +15008,8 @@
 	 *         (ambiguity) 
 	 *         '@input:'? 
 	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -15023,8 +15019,8 @@
 	 *         (ambiguity) 
 	 *         '@input:'? 
 	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
 	 *         '@statemachine:' 
 	 *         machine+=Statemachine
@@ -15035,8 +15031,8 @@
 	 *         (ambiguity) 
 	 *         '@input:'? 
 	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         '}' 
 	 *         (rule end)
@@ -15047,8 +15043,8 @@
 	 *         (ambiguity) 
 	 *         '@input:'? 
 	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         execution=ModelOfExecution
 	 *     )
@@ -15058,8 +15054,8 @@
 	 *         (ambiguity) 
 	 *         '@input:'? 
 	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         interaction=ModelOfInteraction
 	 *     )
@@ -15069,8 +15065,8 @@
 	 *         (ambiguity) 
 	 *         '@input:'? 
 	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -15080,8 +15076,8 @@
 	 *         (ambiguity) 
 	 *         '@input:'? 
 	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
 	 *         instance+=InstanceMachine
 	 *     )
@@ -15091,8 +15087,8 @@
 	 *         (ambiguity) 
 	 *         '@input:'? 
 	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -15102,8 +15098,8 @@
 	 *         (ambiguity) 
 	 *         '@input:'? 
 	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         '@public:'? 
-	 *         (('@property:' | '@protected:' | '@private:')? '@public:'?)* 
+	 *         '@protected:'? 
+	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
 	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
@@ -15212,507 +15208,1645 @@
 	
 	/**
 	 * Ambiguous syntax:
-	 *     '@property:'?
+	 *     '@protected:'?
 	 *
 	 * This ambiguous syntax occurs at:
 	 *     (
-	 *         parameter+=ParameterInout 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         buffer+=Buffer 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
+	 *         '@statemachine:' 
+	 *         machine+=Statemachine
+	 *     )
+	 *     (
+	 *         buffer+=Buffer 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         '}' 
+	 *         (rule end)
+	 *     )
+	 *     (
+	 *         buffer+=Buffer 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         execution=ModelOfExecution
+	 *     )
+	 *     (
+	 *         buffer+=Buffer 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         interaction=ModelOfInteraction
+	 *     )
+	 *     (
+	 *         buffer+=Buffer 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         buffer+=Buffer 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
+	 *         instance+=InstanceMachine
+	 *     )
+	 *     (
+	 *         buffer+=Buffer 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         buffer+=Buffer 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         channel+=Channel 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
+	 *         '@statemachine:' 
+	 *         machine+=Statemachine
+	 *     )
+	 *     (
+	 *         channel+=Channel 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         '}' 
+	 *         (rule end)
+	 *     )
+	 *     (
+	 *         channel+=Channel 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         execution=ModelOfExecution
+	 *     )
+	 *     (
+	 *         channel+=Channel 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         interaction=ModelOfInteraction
+	 *     )
+	 *     (
+	 *         channel+=Channel 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         channel+=Channel 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
+	 *         instance+=InstanceMachine
+	 *     )
+	 *     (
+	 *         channel+=Channel 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         channel+=Channel 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         function+=Function 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
+	 *         '@statemachine:' 
+	 *         machine+=Statemachine
+	 *     )
+	 *     (
+	 *         function+=Function 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         '}' 
+	 *         (rule end)
+	 *     )
+	 *     (
+	 *         function+=Function 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         execution=ModelOfExecution
+	 *     )
+	 *     (
+	 *         function+=Function 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         interaction=ModelOfInteraction
+	 *     )
+	 *     (
+	 *         function+=Function 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         function+=Function 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
+	 *         instance+=InstanceMachine
+	 *     )
+	 *     (
+	 *         function+=Function 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         function+=Function 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         name=ESIdentifier 
+	 *         '{' 
+	 *         '@parameter:'? 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
+	 *         '@statemachine:' 
+	 *         machine+=Statemachine
+	 *     )
+	 *     (
+	 *         name=ESIdentifier 
+	 *         '{' 
+	 *         '@parameter:'? 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         '}' 
+	 *         (rule end)
+	 *     )
+	 *     (
+	 *         name=ESIdentifier 
+	 *         '{' 
+	 *         '@parameter:'? 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         execution=ModelOfExecution
+	 *     )
+	 *     (
+	 *         name=ESIdentifier 
+	 *         '{' 
+	 *         '@parameter:'? 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         interaction=ModelOfInteraction
+	 *     )
+	 *     (
+	 *         name=ESIdentifier 
+	 *         '{' 
+	 *         '@parameter:'? 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         name=ESIdentifier 
+	 *         '{' 
+	 *         '@parameter:'? 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
+	 *         instance+=InstanceMachine
+	 *     )
+	 *     (
+	 *         name=ESIdentifier 
+	 *         '{' 
+	 *         '@parameter:'? 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         name=ESIdentifier 
+	 *         '{' 
+	 *         '@parameter:'? 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         parameter+=ParameterInout 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
 	 *         '@statemachine:' 
 	 *         machine+=Statemachine
 	 *     )
 	 *     (
 	 *         parameter+=ParameterInout 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         '}' 
 	 *         (rule end)
 	 *     )
 	 *     (
 	 *         parameter+=ParameterInout 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         execution=ModelOfExecution
 	 *     )
 	 *     (
 	 *         parameter+=ParameterInout 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         interaction=ModelOfInteraction
 	 *     )
 	 *     (
 	 *         parameter+=ParameterInout 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
 	 *     (
 	 *         parameter+=ParameterInout 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
 	 *         instance+=InstanceMachine
 	 *     )
 	 *     (
 	 *         parameter+=ParameterInout 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
 	 *     (
 	 *         parameter+=ParameterInout 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         parameter+=ParameterInout 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
+	 *         '@statemachine:' 
+	 *         machine+=Statemachine
+	 *     )
+	 *     (
+	 *         parameter+=ParameterInout 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         '}' 
+	 *         (rule end)
+	 *     )
+	 *     (
+	 *         parameter+=ParameterInout 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         execution=ModelOfExecution
+	 *     )
+	 *     (
+	 *         parameter+=ParameterInout 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         interaction=ModelOfInteraction
+	 *     )
+	 *     (
+	 *         parameter+=ParameterInout 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         parameter+=ParameterInout 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
+	 *         instance+=InstanceMachine
+	 *     )
+	 *     (
+	 *         parameter+=ParameterInout 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         parameter+=ParameterInout 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
 	 *     (
 	 *         parameter+=ParameterInput 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
 	 *         '@statemachine:' 
 	 *         machine+=Statemachine
 	 *     )
 	 *     (
 	 *         parameter+=ParameterInput 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         '}' 
 	 *         (rule end)
 	 *     )
 	 *     (
 	 *         parameter+=ParameterInput 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         execution=ModelOfExecution
 	 *     )
 	 *     (
 	 *         parameter+=ParameterInput 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         interaction=ModelOfInteraction
 	 *     )
 	 *     (
 	 *         parameter+=ParameterInput 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
 	 *     (
 	 *         parameter+=ParameterInput 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
 	 *         instance+=InstanceMachine
 	 *     )
 	 *     (
 	 *         parameter+=ParameterInput 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
 	 *     (
 	 *         parameter+=ParameterInput 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         parameter+=ParameterInput 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
+	 *         '@statemachine:' 
+	 *         machine+=Statemachine
+	 *     )
+	 *     (
+	 *         parameter+=ParameterInput 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         '}' 
+	 *         (rule end)
+	 *     )
+	 *     (
+	 *         parameter+=ParameterInput 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         execution=ModelOfExecution
+	 *     )
+	 *     (
+	 *         parameter+=ParameterInput 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         interaction=ModelOfInteraction
+	 *     )
+	 *     (
+	 *         parameter+=ParameterInput 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         parameter+=ParameterInput 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
+	 *         instance+=InstanceMachine
+	 *     )
+	 *     (
+	 *         parameter+=ParameterInput 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         parameter+=ParameterInput 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
 	 *     (
 	 *         parameter+=ParameterOutput 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
 	 *         '@statemachine:' 
 	 *         machine+=Statemachine
 	 *     )
 	 *     (
 	 *         parameter+=ParameterOutput 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         '}' 
 	 *         (rule end)
 	 *     )
 	 *     (
 	 *         parameter+=ParameterOutput 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         execution=ModelOfExecution
 	 *     )
 	 *     (
 	 *         parameter+=ParameterOutput 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         interaction=ModelOfInteraction
 	 *     )
 	 *     (
 	 *         parameter+=ParameterOutput 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
 	 *     (
 	 *         parameter+=ParameterOutput 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
 	 *         instance+=InstanceMachine
 	 *     )
 	 *     (
 	 *         parameter+=ParameterOutput 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
 	 *     (
 	 *         parameter+=ParameterOutput 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         parameter+=ParameterOutput 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
+	 *         '@statemachine:' 
+	 *         machine+=Statemachine
+	 *     )
+	 *     (
+	 *         parameter+=ParameterOutput 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         '}' 
+	 *         (rule end)
+	 *     )
+	 *     (
+	 *         parameter+=ParameterOutput 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         execution=ModelOfExecution
+	 *     )
+	 *     (
+	 *         parameter+=ParameterOutput 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         interaction=ModelOfInteraction
+	 *     )
+	 *     (
+	 *         parameter+=ParameterOutput 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         parameter+=ParameterOutput 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
+	 *         instance+=InstanceMachine
+	 *     )
+	 *     (
+	 *         parameter+=ParameterOutput 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         parameter+=ParameterOutput 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
 	 *     (
 	 *         parameter+=ParameterReturn 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
 	 *         '@statemachine:' 
 	 *         machine+=Statemachine
 	 *     )
 	 *     (
 	 *         parameter+=ParameterReturn 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         '}' 
 	 *         (rule end)
 	 *     )
 	 *     (
 	 *         parameter+=ParameterReturn 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         execution=ModelOfExecution
 	 *     )
 	 *     (
 	 *         parameter+=ParameterReturn 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
 	 *         interaction=ModelOfInteraction
 	 *     )
 	 *     (
 	 *         parameter+=ParameterReturn 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
 	 *     (
 	 *         parameter+=ParameterReturn 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
 	 *         instance+=InstanceMachine
 	 *     )
 	 *     (
 	 *         parameter+=ParameterReturn 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
 	 *     (
 	 *         parameter+=ParameterReturn 
-	 *         '@return:'? 
-	 *         (('@input:' | '@inout:' | '@output:')? '@return:'?)* 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
 	 *         (ambiguity) 
-	 *         (('@public:' | '@protected:' | '@private:')? (ambiguity))* 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
 	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
 	 *         machine+=AnyMachineBlock
 	 *     )
-	 *     buffer+=Buffer (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     buffer+=Buffer (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     buffer+=Buffer (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     buffer+=Buffer (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     buffer+=Buffer (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     buffer+=Buffer (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     buffer+=Buffer (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     buffer+=Buffer (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     buffer+=BufferPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     buffer+=BufferPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     buffer+=BufferPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     buffer+=BufferPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     buffer+=BufferPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     buffer+=BufferPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     buffer+=BufferPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     buffer+=BufferPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     buffer+=BufferProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     buffer+=BufferProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     buffer+=BufferProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     buffer+=BufferProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     buffer+=BufferProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     buffer+=BufferProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     buffer+=BufferProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     buffer+=BufferProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     buffer+=BufferPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     buffer+=BufferPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     buffer+=BufferPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     buffer+=BufferPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     buffer+=BufferPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     buffer+=BufferPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     buffer+=BufferPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     buffer+=BufferPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     channel+=Channel (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     channel+=Channel (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     channel+=Channel (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     channel+=Channel (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     channel+=Channel (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     channel+=Channel (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     channel+=Channel (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     channel+=Channel (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     channel+=ChannelPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     channel+=ChannelPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     channel+=ChannelPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     channel+=ChannelPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     channel+=ChannelPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     channel+=ChannelPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     channel+=ChannelPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     channel+=ChannelPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     channel+=ChannelProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     channel+=ChannelProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     channel+=ChannelProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     channel+=ChannelProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     channel+=ChannelProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     channel+=ChannelProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     channel+=ChannelProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     channel+=ChannelProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     channel+=ChannelPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     channel+=ChannelPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     channel+=ChannelPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     channel+=ChannelPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     channel+=ChannelPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     channel+=ChannelPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     channel+=ChannelPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     channel+=ChannelPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     function+=Function (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     function+=Function (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     function+=Function (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     function+=Function (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     function+=Function (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     function+=Function (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     function+=Function (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     function+=Function (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     function+=FunctionPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     function+=FunctionPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     function+=FunctionPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     function+=FunctionPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     function+=FunctionPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     function+=FunctionPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     function+=FunctionPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     function+=FunctionPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     function+=FunctionProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     function+=FunctionProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     function+=FunctionProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     function+=FunctionProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     function+=FunctionProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     function+=FunctionProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     function+=FunctionProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     function+=FunctionProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     function+=FunctionPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     function+=FunctionPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     function+=FunctionPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     function+=FunctionPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     function+=FunctionPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     function+=FunctionPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     function+=FunctionPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     function+=FunctionPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     port+=Port (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     port+=Port (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     port+=Port (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     port+=Port (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     port+=Port (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     port+=Port (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     port+=Port (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     port+=Port (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     port+=PortPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     port+=PortPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     port+=PortPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     port+=PortPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     port+=PortPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     port+=PortPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     port+=PortPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     port+=PortPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     port+=PortProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     port+=PortProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     port+=PortProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     port+=PortProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     port+=PortProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     port+=PortProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     port+=PortProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     port+=PortProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     port+=PortPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     port+=PortPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     port+=PortPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     port+=PortPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     port+=PortPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     port+=PortPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     port+=PortPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     port+=PortPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     signal+=Signal (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     signal+=Signal (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     signal+=Signal (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     signal+=Signal (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     signal+=Signal (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     signal+=Signal (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     signal+=Signal (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     signal+=Signal (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     signal+=SignalPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     signal+=SignalPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     signal+=SignalPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     signal+=SignalPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     signal+=SignalPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     signal+=SignalPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     signal+=SignalPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     signal+=SignalPrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     signal+=SignalProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     signal+=SignalProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     signal+=SignalProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     signal+=SignalProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     signal+=SignalProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     signal+=SignalProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     signal+=SignalProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     signal+=SignalProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     signal+=SignalPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     signal+=SignalPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     signal+=SignalPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     signal+=SignalPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     signal+=SignalPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     signal+=SignalPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     signal+=SignalPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     signal+=SignalPublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     typedef+=TypeDefinition (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     typedef+=TypeDefinition (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     typedef+=TypeDefinition (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     typedef+=TypeDefinition (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     typedef+=TypeDefinition (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     typedef+=TypeDefinition (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     typedef+=TypeDefinition (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     typedef+=TypeDefinition (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     variable+=Variable (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     variable+=Variable (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     variable+=Variable (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     variable+=Variable (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     variable+=Variable (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     variable+=Variable (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     variable+=Variable (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     variable+=Variable (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     variable+=VariablePrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     variable+=VariablePrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     variable+=VariablePrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     variable+=VariablePrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     variable+=VariablePrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     variable+=VariablePrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     variable+=VariablePrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     variable+=VariablePrivate (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     variable+=VariableProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     variable+=VariableProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     variable+=VariableProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     variable+=VariableProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     variable+=VariableProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     variable+=VariableProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     variable+=VariableProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     variable+=VariableProtected (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
-	 *     variable+=VariablePublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
-	 *     variable+=VariablePublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
-	 *     variable+=VariablePublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
-	 *     variable+=VariablePublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
-	 *     variable+=VariablePublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
-	 *     variable+=VariablePublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
-	 *     variable+=VariablePublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
-	 *     variable+=VariablePublic (ambiguity) (('@public:' | '@protected:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     (
+	 *         parameter+=ParameterReturn 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
+	 *         '@statemachine:' 
+	 *         machine+=Statemachine
+	 *     )
+	 *     (
+	 *         parameter+=ParameterReturn 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         '}' 
+	 *         (rule end)
+	 *     )
+	 *     (
+	 *         parameter+=ParameterReturn 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         execution=ModelOfExecution
+	 *     )
+	 *     (
+	 *         parameter+=ParameterReturn 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         interaction=ModelOfInteraction
+	 *     )
+	 *     (
+	 *         parameter+=ParameterReturn 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         parameter+=ParameterReturn 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
+	 *         instance+=InstanceMachine
+	 *     )
+	 *     (
+	 *         parameter+=ParameterReturn 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         parameter+=ParameterReturn 
+	 *         '}' 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         port+=Port 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
+	 *         '@statemachine:' 
+	 *         machine+=Statemachine
+	 *     )
+	 *     (
+	 *         port+=Port 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         '}' 
+	 *         (rule end)
+	 *     )
+	 *     (
+	 *         port+=Port 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         execution=ModelOfExecution
+	 *     )
+	 *     (
+	 *         port+=Port 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         interaction=ModelOfInteraction
+	 *     )
+	 *     (
+	 *         port+=Port 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         port+=Port 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
+	 *         instance+=InstanceMachine
+	 *     )
+	 *     (
+	 *         port+=Port 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         port+=Port 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         signal+=Signal 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
+	 *         '@statemachine:' 
+	 *         machine+=Statemachine
+	 *     )
+	 *     (
+	 *         signal+=Signal 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         '}' 
+	 *         (rule end)
+	 *     )
+	 *     (
+	 *         signal+=Signal 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         execution=ModelOfExecution
+	 *     )
+	 *     (
+	 *         signal+=Signal 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         interaction=ModelOfInteraction
+	 *     )
+	 *     (
+	 *         signal+=Signal 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         signal+=Signal 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
+	 *         instance+=InstanceMachine
+	 *     )
+	 *     (
+	 *         signal+=Signal 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         signal+=Signal 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         typedef+=TypeDefinition 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
+	 *         '@statemachine:' 
+	 *         machine+=Statemachine
+	 *     )
+	 *     (
+	 *         typedef+=TypeDefinition 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         '}' 
+	 *         (rule end)
+	 *     )
+	 *     (
+	 *         typedef+=TypeDefinition 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         execution=ModelOfExecution
+	 *     )
+	 *     (
+	 *         typedef+=TypeDefinition 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         interaction=ModelOfInteraction
+	 *     )
+	 *     (
+	 *         typedef+=TypeDefinition 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         typedef+=TypeDefinition 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
+	 *         instance+=InstanceMachine
+	 *     )
+	 *     (
+	 *         typedef+=TypeDefinition 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         typedef+=TypeDefinition 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         unrestrictedName=UnrestrictedName 
+	 *         '{' 
+	 *         '@parameter:'? 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
+	 *         '@statemachine:' 
+	 *         machine+=Statemachine
+	 *     )
+	 *     (
+	 *         unrestrictedName=UnrestrictedName 
+	 *         '{' 
+	 *         '@parameter:'? 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         '}' 
+	 *         (rule end)
+	 *     )
+	 *     (
+	 *         unrestrictedName=UnrestrictedName 
+	 *         '{' 
+	 *         '@parameter:'? 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         execution=ModelOfExecution
+	 *     )
+	 *     (
+	 *         unrestrictedName=UnrestrictedName 
+	 *         '{' 
+	 *         '@parameter:'? 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         interaction=ModelOfInteraction
+	 *     )
+	 *     (
+	 *         unrestrictedName=UnrestrictedName 
+	 *         '{' 
+	 *         '@parameter:'? 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         unrestrictedName=UnrestrictedName 
+	 *         '{' 
+	 *         '@parameter:'? 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
+	 *         instance+=InstanceMachine
+	 *     )
+	 *     (
+	 *         unrestrictedName=UnrestrictedName 
+	 *         '{' 
+	 *         '@parameter:'? 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         unrestrictedName=UnrestrictedName 
+	 *         '{' 
+	 *         '@parameter:'? 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         variable+=Variable 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
+	 *         '@statemachine:' 
+	 *         machine+=Statemachine
+	 *     )
+	 *     (
+	 *         variable+=Variable 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         '}' 
+	 *         (rule end)
+	 *     )
+	 *     (
+	 *         variable+=Variable 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         execution=ModelOfExecution
+	 *     )
+	 *     (
+	 *         variable+=Variable 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
+	 *         interaction=ModelOfInteraction
+	 *     )
+	 *     (
+	 *         variable+=Variable 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         variable+=Variable 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
+	 *         instance+=InstanceMachine
+	 *     )
+	 *     (
+	 *         variable+=Variable 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     (
+	 *         variable+=Variable 
+	 *         '@input:'? 
+	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
+	 *         (ambiguity) 
+	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
+	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
+	 *         machine+=AnyMachineBlock
+	 *     )
+	 *     buffer+=Buffer (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     buffer+=Buffer (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     buffer+=Buffer (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     buffer+=Buffer (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     buffer+=Buffer (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     buffer+=Buffer (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     buffer+=Buffer (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     buffer+=Buffer (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     channel+=Channel (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     channel+=Channel (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     channel+=Channel (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     channel+=Channel (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     channel+=Channel (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     channel+=Channel (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     channel+=Channel (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     channel+=Channel (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     function+=Function (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     function+=Function (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     function+=Function (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     function+=Function (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     function+=Function (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     function+=Function (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     function+=Function (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     function+=Function (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' function+=Function
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' port+=Port
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* procedure+=Procedure
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineRegion
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
+	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* routine+=Routine
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' function+=Function
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' port+=Port
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* procedure+=Procedure
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineRegion
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
+	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* routine+=Routine
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' function+=Function
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' port+=Port
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* procedure+=Procedure
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineRegion
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
+	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* routine+=Routine
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' function+=Function
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' port+=Port
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* procedure+=Procedure
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineRegion
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
+	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* routine+=Routine
+	 *     port+=Port (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     port+=Port (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     port+=Port (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     port+=Port (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     port+=Port (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     port+=Port (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     port+=Port (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     port+=Port (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     port+=PortPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     port+=PortPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     port+=PortPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     port+=PortPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     port+=PortPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     port+=PortPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     port+=PortPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     port+=PortPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     port+=PortProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     port+=PortProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     port+=PortProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     port+=PortProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     port+=PortProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     port+=PortProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     port+=PortProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     port+=PortProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     port+=PortPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     port+=PortPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     port+=PortPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     port+=PortPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     port+=PortPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     port+=PortPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     port+=PortPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     port+=PortPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     signal+=Signal (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     signal+=Signal (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     signal+=Signal (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     signal+=Signal (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     signal+=Signal (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     signal+=Signal (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     signal+=Signal (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     signal+=Signal (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     variable+=Variable (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     variable+=Variable (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     variable+=Variable (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     variable+=Variable (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     variable+=Variable (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     variable+=Variable (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     variable+=Variable (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     variable+=Variable (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
+	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
+	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
+	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
+	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
+	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
+	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
+	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
+	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
 	 */
-	protected void emit_Statemachine_PropertyKeyword_9_0_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+	protected void emit_Statemachine_ProtectedKeyword_9_2_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
 		acceptNodes(transition, nodes);
 	}
 	
@@ -15721,1328 +16855,34 @@
 	 *     '@public:'?
 	 *
 	 * This ambiguous syntax occurs at:
-	 *     (
-	 *         buffer+=Buffer 
-	 *         '@input:'? 
-	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         (ambiguity) 
-	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
-	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
-	 *         '@statemachine:' 
-	 *         machine+=Statemachine
-	 *     )
-	 *     (
-	 *         buffer+=Buffer 
-	 *         '@input:'? 
-	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         (ambiguity) 
-	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
-	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
-	 *         '}' 
-	 *         (rule end)
-	 *     )
-	 *     (
-	 *         buffer+=Buffer 
-	 *         '@input:'? 
-	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         (ambiguity) 
-	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
-	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
-	 *         execution=ModelOfExecution
-	 *     )
-	 *     (
-	 *         buffer+=Buffer 
-	 *         '@input:'? 
-	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         (ambiguity) 
-	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
-	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
-	 *         interaction=ModelOfInteraction
-	 *     )
-	 *     (
-	 *         buffer+=Buffer 
-	 *         '@input:'? 
-	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         (ambiguity) 
-	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
-	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
-	 *         machine+=AnyMachineBlock
-	 *     )
-	 *     (
-	 *         buffer+=Buffer 
-	 *         '@input:'? 
-	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         (ambiguity) 
-	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
-	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
-	 *         instance+=InstanceMachine
-	 *     )
-	 *     (
-	 *         buffer+=Buffer 
-	 *         '@input:'? 
-	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         (ambiguity) 
-	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
-	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
-	 *         machine+=AnyMachineBlock
-	 *     )
-	 *     (
-	 *         buffer+=Buffer 
-	 *         '@input:'? 
-	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         (ambiguity) 
-	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
-	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
-	 *         machine+=AnyMachineBlock
-	 *     )
-	 *     (
-	 *         channel+=Channel 
-	 *         '@input:'? 
-	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
-	 *         (ambiguity) 
-	 *         (('@property:' | '@protected:' | '@private:')? (ambiguity))* 
-	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
-	 *         '@statemachine:' 
-	 *         machine+=Statemachine
-	 *     )
-	 *     (
-	 *         channel+=Channel 
-	 *         '@input:'?