[cpp] improved DataClass, added first InitializationTest for attributes

Change-Id: I734fa413f5f8a5bdcfac89d3427c8e5ff620b3f7
diff --git a/plugins/org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g b/plugins/org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g
index c99a3b1..3663620 100644
--- a/plugins/org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g
+++ b/plugins/org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g
@@ -7028,7 +7028,7 @@
 :
 (
 { before(grammarAccess.getAttributeAccess().getTypeAssignment_4()); }
-(rule__Attribute__TypeAssignment_4)
+(rule__Attribute__TypeAssignment_4)?
 { after(grammarAccess.getAttributeAccess().getTypeAssignment_4()); }
 )
 
diff --git a/plugins/org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoomParser.java b/plugins/org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoomParser.java
index 3976f30..bcb1eae 100644
--- a/plugins/org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoomParser.java
+++ b/plugins/org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoomParser.java
@@ -9916,12 +9916,12 @@
             if ( (LA13_0==70) ) {
                 int LA13_1 = input.LA(2);
 
-                if ( (LA13_1==62) ) {
-                    alt13=1;
-                }
-                else if ( (LA13_1==63) ) {
+                if ( (LA13_1==63) ) {
                     alt13=2;
                 }
+                else if ( (LA13_1==62) ) {
+                    alt13=1;
+                }
                 else {
                     NoViableAltException nvae =
                         new NoViableAltException("", 13, 1, input);
@@ -11953,12 +11953,12 @@
                     if ( (LA28_2==42) ) {
                         int LA28_3 = input.LA(4);
 
-                        if ( (LA28_3==104) ) {
-                            alt28=1;
-                        }
-                        else if ( (LA28_3==RULE_ID||(LA28_3>=111 && LA28_3<=112)) ) {
+                        if ( (LA28_3==RULE_ID||(LA28_3>=111 && LA28_3<=112)) ) {
                             alt28=2;
                         }
+                        else if ( (LA28_3==104) ) {
+                            alt28=1;
+                        }
                         else {
                             NoViableAltException nvae =
                                 new NoViableAltException("", 28, 3, input);
@@ -11976,12 +11976,12 @@
                 else if ( (LA28_1==42) ) {
                     int LA28_3 = input.LA(3);
 
-                    if ( (LA28_3==104) ) {
-                        alt28=1;
-                    }
-                    else if ( (LA28_3==RULE_ID||(LA28_3>=111 && LA28_3<=112)) ) {
+                    if ( (LA28_3==RULE_ID||(LA28_3>=111 && LA28_3<=112)) ) {
                         alt28=2;
                     }
+                    else if ( (LA28_3==104) ) {
+                        alt28=1;
+                    }
                     else {
                         NoViableAltException nvae =
                             new NoViableAltException("", 28, 3, input);
@@ -12723,12 +12723,12 @@
                         if ( (LA36_4==42) ) {
                             int LA36_5 = input.LA(5);
 
-                            if ( ((LA36_5>=35 && LA36_5<=38)) ) {
-                                alt36=1;
-                            }
-                            else if ( (LA36_5==40) ) {
+                            if ( (LA36_5==40) ) {
                                 alt36=2;
                             }
+                            else if ( ((LA36_5>=35 && LA36_5<=38)) ) {
+                                alt36=1;
+                            }
                             else {
                                 NoViableAltException nvae =
                                     new NoViableAltException("", 36, 5, input);
@@ -12769,12 +12769,12 @@
                         if ( (LA36_4==42) ) {
                             int LA36_5 = input.LA(5);
 
-                            if ( ((LA36_5>=35 && LA36_5<=38)) ) {
-                                alt36=1;
-                            }
-                            else if ( (LA36_5==40) ) {
+                            if ( (LA36_5==40) ) {
                                 alt36=2;
                             }
+                            else if ( ((LA36_5>=35 && LA36_5<=38)) ) {
+                                alt36=1;
+                            }
                             else {
                                 NoViableAltException nvae =
                                     new NoViableAltException("", 36, 5, input);
@@ -20616,27 +20616,38 @@
 
 
     // $ANTLR start "rule__Attribute__Group__4__Impl"
-    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7024:1: rule__Attribute__Group__4__Impl : ( ( rule__Attribute__TypeAssignment_4 ) ) ;
+    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7024:1: rule__Attribute__Group__4__Impl : ( ( rule__Attribute__TypeAssignment_4 )? ) ;
     public final void rule__Attribute__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
             
         try {
-            // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7028:1: ( ( ( rule__Attribute__TypeAssignment_4 ) ) )
-            // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7029:1: ( ( rule__Attribute__TypeAssignment_4 ) )
+            // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7028:1: ( ( ( rule__Attribute__TypeAssignment_4 )? ) )
+            // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7029:1: ( ( rule__Attribute__TypeAssignment_4 )? )
             {
-            // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7029:1: ( ( rule__Attribute__TypeAssignment_4 ) )
-            // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7030:1: ( rule__Attribute__TypeAssignment_4 )
+            // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7029:1: ( ( rule__Attribute__TypeAssignment_4 )? )
+            // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7030:1: ( rule__Attribute__TypeAssignment_4 )?
             {
              before(grammarAccess.getAttributeAccess().getTypeAssignment_4()); 
-            // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7031:1: ( rule__Attribute__TypeAssignment_4 )
-            // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7031:2: rule__Attribute__TypeAssignment_4
-            {
-            pushFollow(FOLLOW_rule__Attribute__TypeAssignment_4_in_rule__Attribute__Group__4__Impl14866);
-            rule__Attribute__TypeAssignment_4();
+            // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7031:1: ( rule__Attribute__TypeAssignment_4 )?
+            int alt75=2;
+            int LA75_0 = input.LA(1);
 
-            state._fsp--;
+            if ( (LA75_0==RULE_ID) ) {
+                alt75=1;
+            }
+            switch (alt75) {
+                case 1 :
+                    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7031:2: rule__Attribute__TypeAssignment_4
+                    {
+                    pushFollow(FOLLOW_rule__Attribute__TypeAssignment_4_in_rule__Attribute__Group__4__Impl14866);
+                    rule__Attribute__TypeAssignment_4();
 
+                    state._fsp--;
+
+
+                    }
+                    break;
 
             }
 
@@ -20672,12 +20683,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7045:1: ( rule__Attribute__Group__5__Impl rule__Attribute__Group__6 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7046:2: rule__Attribute__Group__5__Impl rule__Attribute__Group__6
             {
-            pushFollow(FOLLOW_rule__Attribute__Group__5__Impl_in_rule__Attribute__Group__514896);
+            pushFollow(FOLLOW_rule__Attribute__Group__5__Impl_in_rule__Attribute__Group__514897);
             rule__Attribute__Group__5__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Attribute__Group__6_in_rule__Attribute__Group__514899);
+            pushFollow(FOLLOW_rule__Attribute__Group__6_in_rule__Attribute__Group__514900);
             rule__Attribute__Group__6();
 
             state._fsp--;
@@ -20715,17 +20726,17 @@
             {
              before(grammarAccess.getAttributeAccess().getGroup_5()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7060:1: ( rule__Attribute__Group_5__0 )?
-            int alt75=2;
-            int LA75_0 = input.LA(1);
+            int alt76=2;
+            int LA76_0 = input.LA(1);
 
-            if ( (LA75_0==51) ) {
-                alt75=1;
+            if ( (LA76_0==51) ) {
+                alt76=1;
             }
-            switch (alt75) {
+            switch (alt76) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7060:2: rule__Attribute__Group_5__0
                     {
-                    pushFollow(FOLLOW_rule__Attribute__Group_5__0_in_rule__Attribute__Group__5__Impl14926);
+                    pushFollow(FOLLOW_rule__Attribute__Group_5__0_in_rule__Attribute__Group__5__Impl14927);
                     rule__Attribute__Group_5__0();
 
                     state._fsp--;
@@ -20768,7 +20779,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7074:1: ( rule__Attribute__Group__6__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7075:2: rule__Attribute__Group__6__Impl
             {
-            pushFollow(FOLLOW_rule__Attribute__Group__6__Impl_in_rule__Attribute__Group__614957);
+            pushFollow(FOLLOW_rule__Attribute__Group__6__Impl_in_rule__Attribute__Group__614958);
             rule__Attribute__Group__6__Impl();
 
             state._fsp--;
@@ -20806,17 +20817,17 @@
             {
              before(grammarAccess.getAttributeAccess().getDocuAssignment_6()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7088:1: ( rule__Attribute__DocuAssignment_6 )?
-            int alt76=2;
-            int LA76_0 = input.LA(1);
+            int alt77=2;
+            int LA77_0 = input.LA(1);
 
-            if ( (LA76_0==58) ) {
-                alt76=1;
+            if ( (LA77_0==58) ) {
+                alt77=1;
             }
-            switch (alt76) {
+            switch (alt77) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7088:2: rule__Attribute__DocuAssignment_6
                     {
-                    pushFollow(FOLLOW_rule__Attribute__DocuAssignment_6_in_rule__Attribute__Group__6__Impl14984);
+                    pushFollow(FOLLOW_rule__Attribute__DocuAssignment_6_in_rule__Attribute__Group__6__Impl14985);
                     rule__Attribute__DocuAssignment_6();
 
                     state._fsp--;
@@ -20859,12 +20870,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7116:1: ( rule__Attribute__Group_2__0__Impl rule__Attribute__Group_2__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7117:2: rule__Attribute__Group_2__0__Impl rule__Attribute__Group_2__1
             {
-            pushFollow(FOLLOW_rule__Attribute__Group_2__0__Impl_in_rule__Attribute__Group_2__015029);
+            pushFollow(FOLLOW_rule__Attribute__Group_2__0__Impl_in_rule__Attribute__Group_2__015030);
             rule__Attribute__Group_2__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Attribute__Group_2__1_in_rule__Attribute__Group_2__015032);
+            pushFollow(FOLLOW_rule__Attribute__Group_2__1_in_rule__Attribute__Group_2__015033);
             rule__Attribute__Group_2__1();
 
             state._fsp--;
@@ -20901,7 +20912,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7130:1: '['
             {
              before(grammarAccess.getAttributeAccess().getLeftSquareBracketKeyword_2_0()); 
-            match(input,58,FOLLOW_58_in_rule__Attribute__Group_2__0__Impl15060); 
+            match(input,58,FOLLOW_58_in_rule__Attribute__Group_2__0__Impl15061); 
              after(grammarAccess.getAttributeAccess().getLeftSquareBracketKeyword_2_0()); 
 
             }
@@ -20934,12 +20945,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7147:1: ( rule__Attribute__Group_2__1__Impl rule__Attribute__Group_2__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7148:2: rule__Attribute__Group_2__1__Impl rule__Attribute__Group_2__2
             {
-            pushFollow(FOLLOW_rule__Attribute__Group_2__1__Impl_in_rule__Attribute__Group_2__115091);
+            pushFollow(FOLLOW_rule__Attribute__Group_2__1__Impl_in_rule__Attribute__Group_2__115092);
             rule__Attribute__Group_2__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Attribute__Group_2__2_in_rule__Attribute__Group_2__115094);
+            pushFollow(FOLLOW_rule__Attribute__Group_2__2_in_rule__Attribute__Group_2__115095);
             rule__Attribute__Group_2__2();
 
             state._fsp--;
@@ -20979,7 +20990,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7162:1: ( rule__Attribute__SizeAssignment_2_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7162:2: rule__Attribute__SizeAssignment_2_1
             {
-            pushFollow(FOLLOW_rule__Attribute__SizeAssignment_2_1_in_rule__Attribute__Group_2__1__Impl15121);
+            pushFollow(FOLLOW_rule__Attribute__SizeAssignment_2_1_in_rule__Attribute__Group_2__1__Impl15122);
             rule__Attribute__SizeAssignment_2_1();
 
             state._fsp--;
@@ -21019,7 +21030,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7176:1: ( rule__Attribute__Group_2__2__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7177:2: rule__Attribute__Group_2__2__Impl
             {
-            pushFollow(FOLLOW_rule__Attribute__Group_2__2__Impl_in_rule__Attribute__Group_2__215151);
+            pushFollow(FOLLOW_rule__Attribute__Group_2__2__Impl_in_rule__Attribute__Group_2__215152);
             rule__Attribute__Group_2__2__Impl();
 
             state._fsp--;
@@ -21056,7 +21067,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7189:1: ']'
             {
              before(grammarAccess.getAttributeAccess().getRightSquareBracketKeyword_2_2()); 
-            match(input,59,FOLLOW_59_in_rule__Attribute__Group_2__2__Impl15179); 
+            match(input,59,FOLLOW_59_in_rule__Attribute__Group_2__2__Impl15180); 
              after(grammarAccess.getAttributeAccess().getRightSquareBracketKeyword_2_2()); 
 
             }
@@ -21089,12 +21100,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7212:1: ( rule__Attribute__Group_5__0__Impl rule__Attribute__Group_5__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7213:2: rule__Attribute__Group_5__0__Impl rule__Attribute__Group_5__1
             {
-            pushFollow(FOLLOW_rule__Attribute__Group_5__0__Impl_in_rule__Attribute__Group_5__015216);
+            pushFollow(FOLLOW_rule__Attribute__Group_5__0__Impl_in_rule__Attribute__Group_5__015217);
             rule__Attribute__Group_5__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Attribute__Group_5__1_in_rule__Attribute__Group_5__015219);
+            pushFollow(FOLLOW_rule__Attribute__Group_5__1_in_rule__Attribute__Group_5__015220);
             rule__Attribute__Group_5__1();
 
             state._fsp--;
@@ -21131,7 +21142,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7226:1: '='
             {
              before(grammarAccess.getAttributeAccess().getEqualsSignKeyword_5_0()); 
-            match(input,51,FOLLOW_51_in_rule__Attribute__Group_5__0__Impl15247); 
+            match(input,51,FOLLOW_51_in_rule__Attribute__Group_5__0__Impl15248); 
              after(grammarAccess.getAttributeAccess().getEqualsSignKeyword_5_0()); 
 
             }
@@ -21164,7 +21175,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7243:1: ( rule__Attribute__Group_5__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7244:2: rule__Attribute__Group_5__1__Impl
             {
-            pushFollow(FOLLOW_rule__Attribute__Group_5__1__Impl_in_rule__Attribute__Group_5__115278);
+            pushFollow(FOLLOW_rule__Attribute__Group_5__1__Impl_in_rule__Attribute__Group_5__115279);
             rule__Attribute__Group_5__1__Impl();
 
             state._fsp--;
@@ -21204,7 +21215,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7257:1: ( rule__Attribute__DefaultValueLiteralAssignment_5_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7257:2: rule__Attribute__DefaultValueLiteralAssignment_5_1
             {
-            pushFollow(FOLLOW_rule__Attribute__DefaultValueLiteralAssignment_5_1_in_rule__Attribute__Group_5__1__Impl15305);
+            pushFollow(FOLLOW_rule__Attribute__DefaultValueLiteralAssignment_5_1_in_rule__Attribute__Group_5__1__Impl15306);
             rule__Attribute__DefaultValueLiteralAssignment_5_1();
 
             state._fsp--;
@@ -21244,12 +21255,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7275:1: ( rule__StandardOperation__Group__0__Impl rule__StandardOperation__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7276:2: rule__StandardOperation__Group__0__Impl rule__StandardOperation__Group__1
             {
-            pushFollow(FOLLOW_rule__StandardOperation__Group__0__Impl_in_rule__StandardOperation__Group__015339);
+            pushFollow(FOLLOW_rule__StandardOperation__Group__0__Impl_in_rule__StandardOperation__Group__015340);
             rule__StandardOperation__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__StandardOperation__Group__1_in_rule__StandardOperation__Group__015342);
+            pushFollow(FOLLOW_rule__StandardOperation__Group__1_in_rule__StandardOperation__Group__015343);
             rule__StandardOperation__Group__1();
 
             state._fsp--;
@@ -21287,17 +21298,17 @@
             {
              before(grammarAccess.getStandardOperationAccess().getOverrideAssignment_0()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7290:1: ( rule__StandardOperation__OverrideAssignment_0 )?
-            int alt77=2;
-            int LA77_0 = input.LA(1);
+            int alt78=2;
+            int LA78_0 = input.LA(1);
 
-            if ( (LA77_0==126) ) {
-                alt77=1;
+            if ( (LA78_0==126) ) {
+                alt78=1;
             }
-            switch (alt77) {
+            switch (alt78) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7290:2: rule__StandardOperation__OverrideAssignment_0
                     {
-                    pushFollow(FOLLOW_rule__StandardOperation__OverrideAssignment_0_in_rule__StandardOperation__Group__0__Impl15369);
+                    pushFollow(FOLLOW_rule__StandardOperation__OverrideAssignment_0_in_rule__StandardOperation__Group__0__Impl15370);
                     rule__StandardOperation__OverrideAssignment_0();
 
                     state._fsp--;
@@ -21340,12 +21351,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7304:1: ( rule__StandardOperation__Group__1__Impl rule__StandardOperation__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7305:2: rule__StandardOperation__Group__1__Impl rule__StandardOperation__Group__2
             {
-            pushFollow(FOLLOW_rule__StandardOperation__Group__1__Impl_in_rule__StandardOperation__Group__115400);
+            pushFollow(FOLLOW_rule__StandardOperation__Group__1__Impl_in_rule__StandardOperation__Group__115401);
             rule__StandardOperation__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__StandardOperation__Group__2_in_rule__StandardOperation__Group__115403);
+            pushFollow(FOLLOW_rule__StandardOperation__Group__2_in_rule__StandardOperation__Group__115404);
             rule__StandardOperation__Group__2();
 
             state._fsp--;
@@ -21382,7 +21393,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7318:1: 'Operation'
             {
              before(grammarAccess.getStandardOperationAccess().getOperationKeyword_1()); 
-            match(input,60,FOLLOW_60_in_rule__StandardOperation__Group__1__Impl15431); 
+            match(input,60,FOLLOW_60_in_rule__StandardOperation__Group__1__Impl15432); 
              after(grammarAccess.getStandardOperationAccess().getOperationKeyword_1()); 
 
             }
@@ -21415,12 +21426,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7335:1: ( rule__StandardOperation__Group__2__Impl rule__StandardOperation__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7336:2: rule__StandardOperation__Group__2__Impl rule__StandardOperation__Group__3
             {
-            pushFollow(FOLLOW_rule__StandardOperation__Group__2__Impl_in_rule__StandardOperation__Group__215462);
+            pushFollow(FOLLOW_rule__StandardOperation__Group__2__Impl_in_rule__StandardOperation__Group__215463);
             rule__StandardOperation__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__StandardOperation__Group__3_in_rule__StandardOperation__Group__215465);
+            pushFollow(FOLLOW_rule__StandardOperation__Group__3_in_rule__StandardOperation__Group__215466);
             rule__StandardOperation__Group__3();
 
             state._fsp--;
@@ -21460,7 +21471,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7350:1: ( rule__StandardOperation__NameAssignment_2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7350:2: rule__StandardOperation__NameAssignment_2
             {
-            pushFollow(FOLLOW_rule__StandardOperation__NameAssignment_2_in_rule__StandardOperation__Group__2__Impl15492);
+            pushFollow(FOLLOW_rule__StandardOperation__NameAssignment_2_in_rule__StandardOperation__Group__2__Impl15493);
             rule__StandardOperation__NameAssignment_2();
 
             state._fsp--;
@@ -21500,12 +21511,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7364:1: ( rule__StandardOperation__Group__3__Impl rule__StandardOperation__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7365:2: rule__StandardOperation__Group__3__Impl rule__StandardOperation__Group__4
             {
-            pushFollow(FOLLOW_rule__StandardOperation__Group__3__Impl_in_rule__StandardOperation__Group__315522);
+            pushFollow(FOLLOW_rule__StandardOperation__Group__3__Impl_in_rule__StandardOperation__Group__315523);
             rule__StandardOperation__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__StandardOperation__Group__4_in_rule__StandardOperation__Group__315525);
+            pushFollow(FOLLOW_rule__StandardOperation__Group__4_in_rule__StandardOperation__Group__315526);
             rule__StandardOperation__Group__4();
 
             state._fsp--;
@@ -21542,7 +21553,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7378:1: '('
             {
              before(grammarAccess.getStandardOperationAccess().getLeftParenthesisKeyword_3()); 
-            match(input,46,FOLLOW_46_in_rule__StandardOperation__Group__3__Impl15553); 
+            match(input,46,FOLLOW_46_in_rule__StandardOperation__Group__3__Impl15554); 
              after(grammarAccess.getStandardOperationAccess().getLeftParenthesisKeyword_3()); 
 
             }
@@ -21575,12 +21586,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7395:1: ( rule__StandardOperation__Group__4__Impl rule__StandardOperation__Group__5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7396:2: rule__StandardOperation__Group__4__Impl rule__StandardOperation__Group__5
             {
-            pushFollow(FOLLOW_rule__StandardOperation__Group__4__Impl_in_rule__StandardOperation__Group__415584);
+            pushFollow(FOLLOW_rule__StandardOperation__Group__4__Impl_in_rule__StandardOperation__Group__415585);
             rule__StandardOperation__Group__4__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__StandardOperation__Group__5_in_rule__StandardOperation__Group__415587);
+            pushFollow(FOLLOW_rule__StandardOperation__Group__5_in_rule__StandardOperation__Group__415588);
             rule__StandardOperation__Group__5();
 
             state._fsp--;
@@ -21618,17 +21629,17 @@
             {
              before(grammarAccess.getStandardOperationAccess().getGroup_4()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7410:1: ( rule__StandardOperation__Group_4__0 )?
-            int alt78=2;
-            int LA78_0 = input.LA(1);
+            int alt79=2;
+            int LA79_0 = input.LA(1);
 
-            if ( (LA78_0==RULE_ID) ) {
-                alt78=1;
+            if ( (LA79_0==RULE_ID) ) {
+                alt79=1;
             }
-            switch (alt78) {
+            switch (alt79) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7410:2: rule__StandardOperation__Group_4__0
                     {
-                    pushFollow(FOLLOW_rule__StandardOperation__Group_4__0_in_rule__StandardOperation__Group__4__Impl15614);
+                    pushFollow(FOLLOW_rule__StandardOperation__Group_4__0_in_rule__StandardOperation__Group__4__Impl15615);
                     rule__StandardOperation__Group_4__0();
 
                     state._fsp--;
@@ -21671,12 +21682,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7424:1: ( rule__StandardOperation__Group__5__Impl rule__StandardOperation__Group__6 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7425:2: rule__StandardOperation__Group__5__Impl rule__StandardOperation__Group__6
             {
-            pushFollow(FOLLOW_rule__StandardOperation__Group__5__Impl_in_rule__StandardOperation__Group__515645);
+            pushFollow(FOLLOW_rule__StandardOperation__Group__5__Impl_in_rule__StandardOperation__Group__515646);
             rule__StandardOperation__Group__5__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__StandardOperation__Group__6_in_rule__StandardOperation__Group__515648);
+            pushFollow(FOLLOW_rule__StandardOperation__Group__6_in_rule__StandardOperation__Group__515649);
             rule__StandardOperation__Group__6();
 
             state._fsp--;
@@ -21713,7 +21724,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7438:1: ')'
             {
              before(grammarAccess.getStandardOperationAccess().getRightParenthesisKeyword_5()); 
-            match(input,47,FOLLOW_47_in_rule__StandardOperation__Group__5__Impl15676); 
+            match(input,47,FOLLOW_47_in_rule__StandardOperation__Group__5__Impl15677); 
              after(grammarAccess.getStandardOperationAccess().getRightParenthesisKeyword_5()); 
 
             }
@@ -21746,12 +21757,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7455:1: ( rule__StandardOperation__Group__6__Impl rule__StandardOperation__Group__7 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7456:2: rule__StandardOperation__Group__6__Impl rule__StandardOperation__Group__7
             {
-            pushFollow(FOLLOW_rule__StandardOperation__Group__6__Impl_in_rule__StandardOperation__Group__615707);
+            pushFollow(FOLLOW_rule__StandardOperation__Group__6__Impl_in_rule__StandardOperation__Group__615708);
             rule__StandardOperation__Group__6__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__StandardOperation__Group__7_in_rule__StandardOperation__Group__615710);
+            pushFollow(FOLLOW_rule__StandardOperation__Group__7_in_rule__StandardOperation__Group__615711);
             rule__StandardOperation__Group__7();
 
             state._fsp--;
@@ -21789,17 +21800,17 @@
             {
              before(grammarAccess.getStandardOperationAccess().getGroup_6()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7470:1: ( rule__StandardOperation__Group_6__0 )?
-            int alt79=2;
-            int LA79_0 = input.LA(1);
+            int alt80=2;
+            int LA80_0 = input.LA(1);
 
-            if ( (LA79_0==42) ) {
-                alt79=1;
+            if ( (LA80_0==42) ) {
+                alt80=1;
             }
-            switch (alt79) {
+            switch (alt80) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7470:2: rule__StandardOperation__Group_6__0
                     {
-                    pushFollow(FOLLOW_rule__StandardOperation__Group_6__0_in_rule__StandardOperation__Group__6__Impl15737);
+                    pushFollow(FOLLOW_rule__StandardOperation__Group_6__0_in_rule__StandardOperation__Group__6__Impl15738);
                     rule__StandardOperation__Group_6__0();
 
                     state._fsp--;
@@ -21842,12 +21853,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7484:1: ( rule__StandardOperation__Group__7__Impl rule__StandardOperation__Group__8 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7485:2: rule__StandardOperation__Group__7__Impl rule__StandardOperation__Group__8
             {
-            pushFollow(FOLLOW_rule__StandardOperation__Group__7__Impl_in_rule__StandardOperation__Group__715768);
+            pushFollow(FOLLOW_rule__StandardOperation__Group__7__Impl_in_rule__StandardOperation__Group__715769);
             rule__StandardOperation__Group__7__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__StandardOperation__Group__8_in_rule__StandardOperation__Group__715771);
+            pushFollow(FOLLOW_rule__StandardOperation__Group__8_in_rule__StandardOperation__Group__715772);
             rule__StandardOperation__Group__8();
 
             state._fsp--;
@@ -21885,17 +21896,17 @@
             {
              before(grammarAccess.getStandardOperationAccess().getDocuAssignment_7()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7499:1: ( rule__StandardOperation__DocuAssignment_7 )?
-            int alt80=2;
-            int LA80_0 = input.LA(1);
+            int alt81=2;
+            int LA81_0 = input.LA(1);
 
-            if ( (LA80_0==58) ) {
-                alt80=1;
+            if ( (LA81_0==58) ) {
+                alt81=1;
             }
-            switch (alt80) {
+            switch (alt81) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7499:2: rule__StandardOperation__DocuAssignment_7
                     {
-                    pushFollow(FOLLOW_rule__StandardOperation__DocuAssignment_7_in_rule__StandardOperation__Group__7__Impl15798);
+                    pushFollow(FOLLOW_rule__StandardOperation__DocuAssignment_7_in_rule__StandardOperation__Group__7__Impl15799);
                     rule__StandardOperation__DocuAssignment_7();
 
                     state._fsp--;
@@ -21938,7 +21949,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7513:1: ( rule__StandardOperation__Group__8__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7514:2: rule__StandardOperation__Group__8__Impl
             {
-            pushFollow(FOLLOW_rule__StandardOperation__Group__8__Impl_in_rule__StandardOperation__Group__815829);
+            pushFollow(FOLLOW_rule__StandardOperation__Group__8__Impl_in_rule__StandardOperation__Group__815830);
             rule__StandardOperation__Group__8__Impl();
 
             state._fsp--;
@@ -21978,7 +21989,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7527:1: ( rule__StandardOperation__DetailCodeAssignment_8 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7527:2: rule__StandardOperation__DetailCodeAssignment_8
             {
-            pushFollow(FOLLOW_rule__StandardOperation__DetailCodeAssignment_8_in_rule__StandardOperation__Group__8__Impl15856);
+            pushFollow(FOLLOW_rule__StandardOperation__DetailCodeAssignment_8_in_rule__StandardOperation__Group__8__Impl15857);
             rule__StandardOperation__DetailCodeAssignment_8();
 
             state._fsp--;
@@ -22018,12 +22029,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7559:1: ( rule__StandardOperation__Group_4__0__Impl rule__StandardOperation__Group_4__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7560:2: rule__StandardOperation__Group_4__0__Impl rule__StandardOperation__Group_4__1
             {
-            pushFollow(FOLLOW_rule__StandardOperation__Group_4__0__Impl_in_rule__StandardOperation__Group_4__015904);
+            pushFollow(FOLLOW_rule__StandardOperation__Group_4__0__Impl_in_rule__StandardOperation__Group_4__015905);
             rule__StandardOperation__Group_4__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__StandardOperation__Group_4__1_in_rule__StandardOperation__Group_4__015907);
+            pushFollow(FOLLOW_rule__StandardOperation__Group_4__1_in_rule__StandardOperation__Group_4__015908);
             rule__StandardOperation__Group_4__1();
 
             state._fsp--;
@@ -22063,7 +22074,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7574:1: ( rule__StandardOperation__ArgumentsAssignment_4_0 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7574:2: rule__StandardOperation__ArgumentsAssignment_4_0
             {
-            pushFollow(FOLLOW_rule__StandardOperation__ArgumentsAssignment_4_0_in_rule__StandardOperation__Group_4__0__Impl15934);
+            pushFollow(FOLLOW_rule__StandardOperation__ArgumentsAssignment_4_0_in_rule__StandardOperation__Group_4__0__Impl15935);
             rule__StandardOperation__ArgumentsAssignment_4_0();
 
             state._fsp--;
@@ -22103,7 +22114,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7588:1: ( rule__StandardOperation__Group_4__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7589:2: rule__StandardOperation__Group_4__1__Impl
             {
-            pushFollow(FOLLOW_rule__StandardOperation__Group_4__1__Impl_in_rule__StandardOperation__Group_4__115964);
+            pushFollow(FOLLOW_rule__StandardOperation__Group_4__1__Impl_in_rule__StandardOperation__Group_4__115965);
             rule__StandardOperation__Group_4__1__Impl();
 
             state._fsp--;
@@ -22141,21 +22152,21 @@
             {
              before(grammarAccess.getStandardOperationAccess().getGroup_4_1()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7602:1: ( rule__StandardOperation__Group_4_1__0 )*
-            loop81:
+            loop82:
             do {
-                int alt81=2;
-                int LA81_0 = input.LA(1);
+                int alt82=2;
+                int LA82_0 = input.LA(1);
 
-                if ( (LA81_0==50) ) {
-                    alt81=1;
+                if ( (LA82_0==50) ) {
+                    alt82=1;
                 }
 
 
-                switch (alt81) {
+                switch (alt82) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7602:2: rule__StandardOperation__Group_4_1__0
             	    {
-            	    pushFollow(FOLLOW_rule__StandardOperation__Group_4_1__0_in_rule__StandardOperation__Group_4__1__Impl15991);
+            	    pushFollow(FOLLOW_rule__StandardOperation__Group_4_1__0_in_rule__StandardOperation__Group_4__1__Impl15992);
             	    rule__StandardOperation__Group_4_1__0();
 
             	    state._fsp--;
@@ -22165,7 +22176,7 @@
             	    break;
 
             	default :
-            	    break loop81;
+            	    break loop82;
                 }
             } while (true);
 
@@ -22201,12 +22212,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7620:1: ( rule__StandardOperation__Group_4_1__0__Impl rule__StandardOperation__Group_4_1__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7621:2: rule__StandardOperation__Group_4_1__0__Impl rule__StandardOperation__Group_4_1__1
             {
-            pushFollow(FOLLOW_rule__StandardOperation__Group_4_1__0__Impl_in_rule__StandardOperation__Group_4_1__016026);
+            pushFollow(FOLLOW_rule__StandardOperation__Group_4_1__0__Impl_in_rule__StandardOperation__Group_4_1__016027);
             rule__StandardOperation__Group_4_1__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__StandardOperation__Group_4_1__1_in_rule__StandardOperation__Group_4_1__016029);
+            pushFollow(FOLLOW_rule__StandardOperation__Group_4_1__1_in_rule__StandardOperation__Group_4_1__016030);
             rule__StandardOperation__Group_4_1__1();
 
             state._fsp--;
@@ -22243,7 +22254,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7634:1: ','
             {
              before(grammarAccess.getStandardOperationAccess().getCommaKeyword_4_1_0()); 
-            match(input,50,FOLLOW_50_in_rule__StandardOperation__Group_4_1__0__Impl16057); 
+            match(input,50,FOLLOW_50_in_rule__StandardOperation__Group_4_1__0__Impl16058); 
              after(grammarAccess.getStandardOperationAccess().getCommaKeyword_4_1_0()); 
 
             }
@@ -22276,7 +22287,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7651:1: ( rule__StandardOperation__Group_4_1__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7652:2: rule__StandardOperation__Group_4_1__1__Impl
             {
-            pushFollow(FOLLOW_rule__StandardOperation__Group_4_1__1__Impl_in_rule__StandardOperation__Group_4_1__116088);
+            pushFollow(FOLLOW_rule__StandardOperation__Group_4_1__1__Impl_in_rule__StandardOperation__Group_4_1__116089);
             rule__StandardOperation__Group_4_1__1__Impl();
 
             state._fsp--;
@@ -22316,7 +22327,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7665:1: ( rule__StandardOperation__ArgumentsAssignment_4_1_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7665:2: rule__StandardOperation__ArgumentsAssignment_4_1_1
             {
-            pushFollow(FOLLOW_rule__StandardOperation__ArgumentsAssignment_4_1_1_in_rule__StandardOperation__Group_4_1__1__Impl16115);
+            pushFollow(FOLLOW_rule__StandardOperation__ArgumentsAssignment_4_1_1_in_rule__StandardOperation__Group_4_1__1__Impl16116);
             rule__StandardOperation__ArgumentsAssignment_4_1_1();
 
             state._fsp--;
@@ -22356,12 +22367,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7683:1: ( rule__StandardOperation__Group_6__0__Impl rule__StandardOperation__Group_6__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7684:2: rule__StandardOperation__Group_6__0__Impl rule__StandardOperation__Group_6__1
             {
-            pushFollow(FOLLOW_rule__StandardOperation__Group_6__0__Impl_in_rule__StandardOperation__Group_6__016149);
+            pushFollow(FOLLOW_rule__StandardOperation__Group_6__0__Impl_in_rule__StandardOperation__Group_6__016150);
             rule__StandardOperation__Group_6__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__StandardOperation__Group_6__1_in_rule__StandardOperation__Group_6__016152);
+            pushFollow(FOLLOW_rule__StandardOperation__Group_6__1_in_rule__StandardOperation__Group_6__016153);
             rule__StandardOperation__Group_6__1();
 
             state._fsp--;
@@ -22398,7 +22409,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7697:1: ':'
             {
              before(grammarAccess.getStandardOperationAccess().getColonKeyword_6_0()); 
-            match(input,42,FOLLOW_42_in_rule__StandardOperation__Group_6__0__Impl16180); 
+            match(input,42,FOLLOW_42_in_rule__StandardOperation__Group_6__0__Impl16181); 
              after(grammarAccess.getStandardOperationAccess().getColonKeyword_6_0()); 
 
             }
@@ -22431,7 +22442,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7714:1: ( rule__StandardOperation__Group_6__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7715:2: rule__StandardOperation__Group_6__1__Impl
             {
-            pushFollow(FOLLOW_rule__StandardOperation__Group_6__1__Impl_in_rule__StandardOperation__Group_6__116211);
+            pushFollow(FOLLOW_rule__StandardOperation__Group_6__1__Impl_in_rule__StandardOperation__Group_6__116212);
             rule__StandardOperation__Group_6__1__Impl();
 
             state._fsp--;
@@ -22471,7 +22482,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7728:1: ( rule__StandardOperation__Alternatives_6_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7728:2: rule__StandardOperation__Alternatives_6_1
             {
-            pushFollow(FOLLOW_rule__StandardOperation__Alternatives_6_1_in_rule__StandardOperation__Group_6__1__Impl16238);
+            pushFollow(FOLLOW_rule__StandardOperation__Alternatives_6_1_in_rule__StandardOperation__Group_6__1__Impl16239);
             rule__StandardOperation__Alternatives_6_1();
 
             state._fsp--;
@@ -22511,12 +22522,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7746:1: ( rule__PortOperation__Group__0__Impl rule__PortOperation__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7747:2: rule__PortOperation__Group__0__Impl rule__PortOperation__Group__1
             {
-            pushFollow(FOLLOW_rule__PortOperation__Group__0__Impl_in_rule__PortOperation__Group__016272);
+            pushFollow(FOLLOW_rule__PortOperation__Group__0__Impl_in_rule__PortOperation__Group__016273);
             rule__PortOperation__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__PortOperation__Group__1_in_rule__PortOperation__Group__016275);
+            pushFollow(FOLLOW_rule__PortOperation__Group__1_in_rule__PortOperation__Group__016276);
             rule__PortOperation__Group__1();
 
             state._fsp--;
@@ -22553,7 +22564,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7760:1: 'Operation'
             {
              before(grammarAccess.getPortOperationAccess().getOperationKeyword_0()); 
-            match(input,60,FOLLOW_60_in_rule__PortOperation__Group__0__Impl16303); 
+            match(input,60,FOLLOW_60_in_rule__PortOperation__Group__0__Impl16304); 
              after(grammarAccess.getPortOperationAccess().getOperationKeyword_0()); 
 
             }
@@ -22586,12 +22597,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7777:1: ( rule__PortOperation__Group__1__Impl rule__PortOperation__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7778:2: rule__PortOperation__Group__1__Impl rule__PortOperation__Group__2
             {
-            pushFollow(FOLLOW_rule__PortOperation__Group__1__Impl_in_rule__PortOperation__Group__116334);
+            pushFollow(FOLLOW_rule__PortOperation__Group__1__Impl_in_rule__PortOperation__Group__116335);
             rule__PortOperation__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__PortOperation__Group__2_in_rule__PortOperation__Group__116337);
+            pushFollow(FOLLOW_rule__PortOperation__Group__2_in_rule__PortOperation__Group__116338);
             rule__PortOperation__Group__2();
 
             state._fsp--;
@@ -22631,7 +22642,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7792:1: ( rule__PortOperation__NameAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7792:2: rule__PortOperation__NameAssignment_1
             {
-            pushFollow(FOLLOW_rule__PortOperation__NameAssignment_1_in_rule__PortOperation__Group__1__Impl16364);
+            pushFollow(FOLLOW_rule__PortOperation__NameAssignment_1_in_rule__PortOperation__Group__1__Impl16365);
             rule__PortOperation__NameAssignment_1();
 
             state._fsp--;
@@ -22671,12 +22682,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7806:1: ( rule__PortOperation__Group__2__Impl rule__PortOperation__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7807:2: rule__PortOperation__Group__2__Impl rule__PortOperation__Group__3
             {
-            pushFollow(FOLLOW_rule__PortOperation__Group__2__Impl_in_rule__PortOperation__Group__216394);
+            pushFollow(FOLLOW_rule__PortOperation__Group__2__Impl_in_rule__PortOperation__Group__216395);
             rule__PortOperation__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__PortOperation__Group__3_in_rule__PortOperation__Group__216397);
+            pushFollow(FOLLOW_rule__PortOperation__Group__3_in_rule__PortOperation__Group__216398);
             rule__PortOperation__Group__3();
 
             state._fsp--;
@@ -22713,7 +22724,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7820:1: '('
             {
              before(grammarAccess.getPortOperationAccess().getLeftParenthesisKeyword_2()); 
-            match(input,46,FOLLOW_46_in_rule__PortOperation__Group__2__Impl16425); 
+            match(input,46,FOLLOW_46_in_rule__PortOperation__Group__2__Impl16426); 
              after(grammarAccess.getPortOperationAccess().getLeftParenthesisKeyword_2()); 
 
             }
@@ -22746,12 +22757,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7837:1: ( rule__PortOperation__Group__3__Impl rule__PortOperation__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7838:2: rule__PortOperation__Group__3__Impl rule__PortOperation__Group__4
             {
-            pushFollow(FOLLOW_rule__PortOperation__Group__3__Impl_in_rule__PortOperation__Group__316456);
+            pushFollow(FOLLOW_rule__PortOperation__Group__3__Impl_in_rule__PortOperation__Group__316457);
             rule__PortOperation__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__PortOperation__Group__4_in_rule__PortOperation__Group__316459);
+            pushFollow(FOLLOW_rule__PortOperation__Group__4_in_rule__PortOperation__Group__316460);
             rule__PortOperation__Group__4();
 
             state._fsp--;
@@ -22789,17 +22800,17 @@
             {
              before(grammarAccess.getPortOperationAccess().getGroup_3()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7852:1: ( rule__PortOperation__Group_3__0 )?
-            int alt82=2;
-            int LA82_0 = input.LA(1);
+            int alt83=2;
+            int LA83_0 = input.LA(1);
 
-            if ( (LA82_0==RULE_ID) ) {
-                alt82=1;
+            if ( (LA83_0==RULE_ID) ) {
+                alt83=1;
             }
-            switch (alt82) {
+            switch (alt83) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7852:2: rule__PortOperation__Group_3__0
                     {
-                    pushFollow(FOLLOW_rule__PortOperation__Group_3__0_in_rule__PortOperation__Group__3__Impl16486);
+                    pushFollow(FOLLOW_rule__PortOperation__Group_3__0_in_rule__PortOperation__Group__3__Impl16487);
                     rule__PortOperation__Group_3__0();
 
                     state._fsp--;
@@ -22842,12 +22853,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7866:1: ( rule__PortOperation__Group__4__Impl rule__PortOperation__Group__5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7867:2: rule__PortOperation__Group__4__Impl rule__PortOperation__Group__5
             {
-            pushFollow(FOLLOW_rule__PortOperation__Group__4__Impl_in_rule__PortOperation__Group__416517);
+            pushFollow(FOLLOW_rule__PortOperation__Group__4__Impl_in_rule__PortOperation__Group__416518);
             rule__PortOperation__Group__4__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__PortOperation__Group__5_in_rule__PortOperation__Group__416520);
+            pushFollow(FOLLOW_rule__PortOperation__Group__5_in_rule__PortOperation__Group__416521);
             rule__PortOperation__Group__5();
 
             state._fsp--;
@@ -22884,7 +22895,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7880:1: ')'
             {
              before(grammarAccess.getPortOperationAccess().getRightParenthesisKeyword_4()); 
-            match(input,47,FOLLOW_47_in_rule__PortOperation__Group__4__Impl16548); 
+            match(input,47,FOLLOW_47_in_rule__PortOperation__Group__4__Impl16549); 
              after(grammarAccess.getPortOperationAccess().getRightParenthesisKeyword_4()); 
 
             }
@@ -22917,12 +22928,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7897:1: ( rule__PortOperation__Group__5__Impl rule__PortOperation__Group__6 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7898:2: rule__PortOperation__Group__5__Impl rule__PortOperation__Group__6
             {
-            pushFollow(FOLLOW_rule__PortOperation__Group__5__Impl_in_rule__PortOperation__Group__516579);
+            pushFollow(FOLLOW_rule__PortOperation__Group__5__Impl_in_rule__PortOperation__Group__516580);
             rule__PortOperation__Group__5__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__PortOperation__Group__6_in_rule__PortOperation__Group__516582);
+            pushFollow(FOLLOW_rule__PortOperation__Group__6_in_rule__PortOperation__Group__516583);
             rule__PortOperation__Group__6();
 
             state._fsp--;
@@ -22960,17 +22971,17 @@
             {
              before(grammarAccess.getPortOperationAccess().getAlternatives_5()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7912:1: ( rule__PortOperation__Alternatives_5 )?
-            int alt83=2;
-            int LA83_0 = input.LA(1);
+            int alt84=2;
+            int LA84_0 = input.LA(1);
 
-            if ( (LA83_0==42||LA83_0==61) ) {
-                alt83=1;
+            if ( (LA84_0==42||LA84_0==61) ) {
+                alt84=1;
             }
-            switch (alt83) {
+            switch (alt84) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7912:2: rule__PortOperation__Alternatives_5
                     {
-                    pushFollow(FOLLOW_rule__PortOperation__Alternatives_5_in_rule__PortOperation__Group__5__Impl16609);
+                    pushFollow(FOLLOW_rule__PortOperation__Alternatives_5_in_rule__PortOperation__Group__5__Impl16610);
                     rule__PortOperation__Alternatives_5();
 
                     state._fsp--;
@@ -23013,12 +23024,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7926:1: ( rule__PortOperation__Group__6__Impl rule__PortOperation__Group__7 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7927:2: rule__PortOperation__Group__6__Impl rule__PortOperation__Group__7
             {
-            pushFollow(FOLLOW_rule__PortOperation__Group__6__Impl_in_rule__PortOperation__Group__616640);
+            pushFollow(FOLLOW_rule__PortOperation__Group__6__Impl_in_rule__PortOperation__Group__616641);
             rule__PortOperation__Group__6__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__PortOperation__Group__7_in_rule__PortOperation__Group__616643);
+            pushFollow(FOLLOW_rule__PortOperation__Group__7_in_rule__PortOperation__Group__616644);
             rule__PortOperation__Group__7();
 
             state._fsp--;
@@ -23056,17 +23067,17 @@
             {
              before(grammarAccess.getPortOperationAccess().getDocuAssignment_6()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7941:1: ( rule__PortOperation__DocuAssignment_6 )?
-            int alt84=2;
-            int LA84_0 = input.LA(1);
+            int alt85=2;
+            int LA85_0 = input.LA(1);
 
-            if ( (LA84_0==58) ) {
-                alt84=1;
+            if ( (LA85_0==58) ) {
+                alt85=1;
             }
-            switch (alt84) {
+            switch (alt85) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7941:2: rule__PortOperation__DocuAssignment_6
                     {
-                    pushFollow(FOLLOW_rule__PortOperation__DocuAssignment_6_in_rule__PortOperation__Group__6__Impl16670);
+                    pushFollow(FOLLOW_rule__PortOperation__DocuAssignment_6_in_rule__PortOperation__Group__6__Impl16671);
                     rule__PortOperation__DocuAssignment_6();
 
                     state._fsp--;
@@ -23109,7 +23120,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7955:1: ( rule__PortOperation__Group__7__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7956:2: rule__PortOperation__Group__7__Impl
             {
-            pushFollow(FOLLOW_rule__PortOperation__Group__7__Impl_in_rule__PortOperation__Group__716701);
+            pushFollow(FOLLOW_rule__PortOperation__Group__7__Impl_in_rule__PortOperation__Group__716702);
             rule__PortOperation__Group__7__Impl();
 
             state._fsp--;
@@ -23149,7 +23160,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7969:1: ( rule__PortOperation__DetailCodeAssignment_7 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7969:2: rule__PortOperation__DetailCodeAssignment_7
             {
-            pushFollow(FOLLOW_rule__PortOperation__DetailCodeAssignment_7_in_rule__PortOperation__Group__7__Impl16728);
+            pushFollow(FOLLOW_rule__PortOperation__DetailCodeAssignment_7_in_rule__PortOperation__Group__7__Impl16729);
             rule__PortOperation__DetailCodeAssignment_7();
 
             state._fsp--;
@@ -23189,12 +23200,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:7999:1: ( rule__PortOperation__Group_3__0__Impl rule__PortOperation__Group_3__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8000:2: rule__PortOperation__Group_3__0__Impl rule__PortOperation__Group_3__1
             {
-            pushFollow(FOLLOW_rule__PortOperation__Group_3__0__Impl_in_rule__PortOperation__Group_3__016774);
+            pushFollow(FOLLOW_rule__PortOperation__Group_3__0__Impl_in_rule__PortOperation__Group_3__016775);
             rule__PortOperation__Group_3__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__PortOperation__Group_3__1_in_rule__PortOperation__Group_3__016777);
+            pushFollow(FOLLOW_rule__PortOperation__Group_3__1_in_rule__PortOperation__Group_3__016778);
             rule__PortOperation__Group_3__1();
 
             state._fsp--;
@@ -23234,7 +23245,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8014:1: ( rule__PortOperation__ArgumentsAssignment_3_0 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8014:2: rule__PortOperation__ArgumentsAssignment_3_0
             {
-            pushFollow(FOLLOW_rule__PortOperation__ArgumentsAssignment_3_0_in_rule__PortOperation__Group_3__0__Impl16804);
+            pushFollow(FOLLOW_rule__PortOperation__ArgumentsAssignment_3_0_in_rule__PortOperation__Group_3__0__Impl16805);
             rule__PortOperation__ArgumentsAssignment_3_0();
 
             state._fsp--;
@@ -23274,7 +23285,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8028:1: ( rule__PortOperation__Group_3__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8029:2: rule__PortOperation__Group_3__1__Impl
             {
-            pushFollow(FOLLOW_rule__PortOperation__Group_3__1__Impl_in_rule__PortOperation__Group_3__116834);
+            pushFollow(FOLLOW_rule__PortOperation__Group_3__1__Impl_in_rule__PortOperation__Group_3__116835);
             rule__PortOperation__Group_3__1__Impl();
 
             state._fsp--;
@@ -23312,21 +23323,21 @@
             {
              before(grammarAccess.getPortOperationAccess().getGroup_3_1()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8042:1: ( rule__PortOperation__Group_3_1__0 )*
-            loop85:
+            loop86:
             do {
-                int alt85=2;
-                int LA85_0 = input.LA(1);
+                int alt86=2;
+                int LA86_0 = input.LA(1);
 
-                if ( (LA85_0==50) ) {
-                    alt85=1;
+                if ( (LA86_0==50) ) {
+                    alt86=1;
                 }
 
 
-                switch (alt85) {
+                switch (alt86) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8042:2: rule__PortOperation__Group_3_1__0
             	    {
-            	    pushFollow(FOLLOW_rule__PortOperation__Group_3_1__0_in_rule__PortOperation__Group_3__1__Impl16861);
+            	    pushFollow(FOLLOW_rule__PortOperation__Group_3_1__0_in_rule__PortOperation__Group_3__1__Impl16862);
             	    rule__PortOperation__Group_3_1__0();
 
             	    state._fsp--;
@@ -23336,7 +23347,7 @@
             	    break;
 
             	default :
-            	    break loop85;
+            	    break loop86;
                 }
             } while (true);
 
@@ -23372,12 +23383,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8060:1: ( rule__PortOperation__Group_3_1__0__Impl rule__PortOperation__Group_3_1__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8061:2: rule__PortOperation__Group_3_1__0__Impl rule__PortOperation__Group_3_1__1
             {
-            pushFollow(FOLLOW_rule__PortOperation__Group_3_1__0__Impl_in_rule__PortOperation__Group_3_1__016896);
+            pushFollow(FOLLOW_rule__PortOperation__Group_3_1__0__Impl_in_rule__PortOperation__Group_3_1__016897);
             rule__PortOperation__Group_3_1__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__PortOperation__Group_3_1__1_in_rule__PortOperation__Group_3_1__016899);
+            pushFollow(FOLLOW_rule__PortOperation__Group_3_1__1_in_rule__PortOperation__Group_3_1__016900);
             rule__PortOperation__Group_3_1__1();
 
             state._fsp--;
@@ -23414,7 +23425,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8074:1: ','
             {
              before(grammarAccess.getPortOperationAccess().getCommaKeyword_3_1_0()); 
-            match(input,50,FOLLOW_50_in_rule__PortOperation__Group_3_1__0__Impl16927); 
+            match(input,50,FOLLOW_50_in_rule__PortOperation__Group_3_1__0__Impl16928); 
              after(grammarAccess.getPortOperationAccess().getCommaKeyword_3_1_0()); 
 
             }
@@ -23447,7 +23458,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8091:1: ( rule__PortOperation__Group_3_1__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8092:2: rule__PortOperation__Group_3_1__1__Impl
             {
-            pushFollow(FOLLOW_rule__PortOperation__Group_3_1__1__Impl_in_rule__PortOperation__Group_3_1__116958);
+            pushFollow(FOLLOW_rule__PortOperation__Group_3_1__1__Impl_in_rule__PortOperation__Group_3_1__116959);
             rule__PortOperation__Group_3_1__1__Impl();
 
             state._fsp--;
@@ -23487,7 +23498,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8105:1: ( rule__PortOperation__ArgumentsAssignment_3_1_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8105:2: rule__PortOperation__ArgumentsAssignment_3_1_1
             {
-            pushFollow(FOLLOW_rule__PortOperation__ArgumentsAssignment_3_1_1_in_rule__PortOperation__Group_3_1__1__Impl16985);
+            pushFollow(FOLLOW_rule__PortOperation__ArgumentsAssignment_3_1_1_in_rule__PortOperation__Group_3_1__1__Impl16986);
             rule__PortOperation__ArgumentsAssignment_3_1_1();
 
             state._fsp--;
@@ -23527,12 +23538,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8123:1: ( rule__PortOperation__Group_5_0__0__Impl rule__PortOperation__Group_5_0__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8124:2: rule__PortOperation__Group_5_0__0__Impl rule__PortOperation__Group_5_0__1
             {
-            pushFollow(FOLLOW_rule__PortOperation__Group_5_0__0__Impl_in_rule__PortOperation__Group_5_0__017019);
+            pushFollow(FOLLOW_rule__PortOperation__Group_5_0__0__Impl_in_rule__PortOperation__Group_5_0__017020);
             rule__PortOperation__Group_5_0__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__PortOperation__Group_5_0__1_in_rule__PortOperation__Group_5_0__017022);
+            pushFollow(FOLLOW_rule__PortOperation__Group_5_0__1_in_rule__PortOperation__Group_5_0__017023);
             rule__PortOperation__Group_5_0__1();
 
             state._fsp--;
@@ -23569,7 +23580,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8137:1: ':'
             {
              before(grammarAccess.getPortOperationAccess().getColonKeyword_5_0_0()); 
-            match(input,42,FOLLOW_42_in_rule__PortOperation__Group_5_0__0__Impl17050); 
+            match(input,42,FOLLOW_42_in_rule__PortOperation__Group_5_0__0__Impl17051); 
              after(grammarAccess.getPortOperationAccess().getColonKeyword_5_0_0()); 
 
             }
@@ -23602,7 +23613,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8154:1: ( rule__PortOperation__Group_5_0__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8155:2: rule__PortOperation__Group_5_0__1__Impl
             {
-            pushFollow(FOLLOW_rule__PortOperation__Group_5_0__1__Impl_in_rule__PortOperation__Group_5_0__117081);
+            pushFollow(FOLLOW_rule__PortOperation__Group_5_0__1__Impl_in_rule__PortOperation__Group_5_0__117082);
             rule__PortOperation__Group_5_0__1__Impl();
 
             state._fsp--;
@@ -23642,7 +23653,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8168:1: ( rule__PortOperation__Alternatives_5_0_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8168:2: rule__PortOperation__Alternatives_5_0_1
             {
-            pushFollow(FOLLOW_rule__PortOperation__Alternatives_5_0_1_in_rule__PortOperation__Group_5_0__1__Impl17108);
+            pushFollow(FOLLOW_rule__PortOperation__Alternatives_5_0_1_in_rule__PortOperation__Group_5_0__1__Impl17109);
             rule__PortOperation__Alternatives_5_0_1();
 
             state._fsp--;
@@ -23682,12 +23693,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8186:1: ( rule__PortOperation__Group_5_1__0__Impl rule__PortOperation__Group_5_1__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8187:2: rule__PortOperation__Group_5_1__0__Impl rule__PortOperation__Group_5_1__1
             {
-            pushFollow(FOLLOW_rule__PortOperation__Group_5_1__0__Impl_in_rule__PortOperation__Group_5_1__017142);
+            pushFollow(FOLLOW_rule__PortOperation__Group_5_1__0__Impl_in_rule__PortOperation__Group_5_1__017143);
             rule__PortOperation__Group_5_1__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__PortOperation__Group_5_1__1_in_rule__PortOperation__Group_5_1__017145);
+            pushFollow(FOLLOW_rule__PortOperation__Group_5_1__1_in_rule__PortOperation__Group_5_1__017146);
             rule__PortOperation__Group_5_1__1();
 
             state._fsp--;
@@ -23724,7 +23735,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8200:1: 'sends'
             {
              before(grammarAccess.getPortOperationAccess().getSendsKeyword_5_1_0()); 
-            match(input,61,FOLLOW_61_in_rule__PortOperation__Group_5_1__0__Impl17173); 
+            match(input,61,FOLLOW_61_in_rule__PortOperation__Group_5_1__0__Impl17174); 
              after(grammarAccess.getPortOperationAccess().getSendsKeyword_5_1_0()); 
 
             }
@@ -23757,7 +23768,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8217:1: ( rule__PortOperation__Group_5_1__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8218:2: rule__PortOperation__Group_5_1__1__Impl
             {
-            pushFollow(FOLLOW_rule__PortOperation__Group_5_1__1__Impl_in_rule__PortOperation__Group_5_1__117204);
+            pushFollow(FOLLOW_rule__PortOperation__Group_5_1__1__Impl_in_rule__PortOperation__Group_5_1__117205);
             rule__PortOperation__Group_5_1__1__Impl();
 
             state._fsp--;
@@ -23797,7 +23808,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8231:1: ( rule__PortOperation__SendsMsgAssignment_5_1_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8231:2: rule__PortOperation__SendsMsgAssignment_5_1_1
             {
-            pushFollow(FOLLOW_rule__PortOperation__SendsMsgAssignment_5_1_1_in_rule__PortOperation__Group_5_1__1__Impl17231);
+            pushFollow(FOLLOW_rule__PortOperation__SendsMsgAssignment_5_1_1_in_rule__PortOperation__Group_5_1__1__Impl17232);
             rule__PortOperation__SendsMsgAssignment_5_1_1();
 
             state._fsp--;
@@ -23837,12 +23848,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8249:1: ( rule__ClassStructor__Group__0__Impl rule__ClassStructor__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8250:2: rule__ClassStructor__Group__0__Impl rule__ClassStructor__Group__1
             {
-            pushFollow(FOLLOW_rule__ClassStructor__Group__0__Impl_in_rule__ClassStructor__Group__017265);
+            pushFollow(FOLLOW_rule__ClassStructor__Group__0__Impl_in_rule__ClassStructor__Group__017266);
             rule__ClassStructor__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ClassStructor__Group__1_in_rule__ClassStructor__Group__017268);
+            pushFollow(FOLLOW_rule__ClassStructor__Group__1_in_rule__ClassStructor__Group__017269);
             rule__ClassStructor__Group__1();
 
             state._fsp--;
@@ -23882,7 +23893,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8264:1: ( rule__ClassStructor__NameAssignment_0 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8264:2: rule__ClassStructor__NameAssignment_0
             {
-            pushFollow(FOLLOW_rule__ClassStructor__NameAssignment_0_in_rule__ClassStructor__Group__0__Impl17295);
+            pushFollow(FOLLOW_rule__ClassStructor__NameAssignment_0_in_rule__ClassStructor__Group__0__Impl17296);
             rule__ClassStructor__NameAssignment_0();
 
             state._fsp--;
@@ -23922,7 +23933,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8278:1: ( rule__ClassStructor__Group__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8279:2: rule__ClassStructor__Group__1__Impl
             {
-            pushFollow(FOLLOW_rule__ClassStructor__Group__1__Impl_in_rule__ClassStructor__Group__117325);
+            pushFollow(FOLLOW_rule__ClassStructor__Group__1__Impl_in_rule__ClassStructor__Group__117326);
             rule__ClassStructor__Group__1__Impl();
 
             state._fsp--;
@@ -23962,7 +23973,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8292:1: ( rule__ClassStructor__DetailCodeAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8292:2: rule__ClassStructor__DetailCodeAssignment_1
             {
-            pushFollow(FOLLOW_rule__ClassStructor__DetailCodeAssignment_1_in_rule__ClassStructor__Group__1__Impl17352);
+            pushFollow(FOLLOW_rule__ClassStructor__DetailCodeAssignment_1_in_rule__ClassStructor__Group__1__Impl17353);
             rule__ClassStructor__DetailCodeAssignment_1();
 
             state._fsp--;
@@ -24002,12 +24013,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8310:1: ( rule__ProtocolClass__Group__0__Impl rule__ProtocolClass__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8311:2: rule__ProtocolClass__Group__0__Impl rule__ProtocolClass__Group__1
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__0__Impl_in_rule__ProtocolClass__Group__017386);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__0__Impl_in_rule__ProtocolClass__Group__017387);
             rule__ProtocolClass__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__1_in_rule__ProtocolClass__Group__017389);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__1_in_rule__ProtocolClass__Group__017390);
             rule__ProtocolClass__Group__1();
 
             state._fsp--;
@@ -24045,17 +24056,17 @@
             {
              before(grammarAccess.getProtocolClassAccess().getCommTypeAssignment_0()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8325:1: ( rule__ProtocolClass__CommTypeAssignment_0 )?
-            int alt86=2;
-            int LA86_0 = input.LA(1);
+            int alt87=2;
+            int LA87_0 = input.LA(1);
 
-            if ( ((LA86_0>=29 && LA86_0<=31)) ) {
-                alt86=1;
+            if ( ((LA87_0>=29 && LA87_0<=31)) ) {
+                alt87=1;
             }
-            switch (alt86) {
+            switch (alt87) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8325:2: rule__ProtocolClass__CommTypeAssignment_0
                     {
-                    pushFollow(FOLLOW_rule__ProtocolClass__CommTypeAssignment_0_in_rule__ProtocolClass__Group__0__Impl17416);
+                    pushFollow(FOLLOW_rule__ProtocolClass__CommTypeAssignment_0_in_rule__ProtocolClass__Group__0__Impl17417);
                     rule__ProtocolClass__CommTypeAssignment_0();
 
                     state._fsp--;
@@ -24098,12 +24109,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8339:1: ( rule__ProtocolClass__Group__1__Impl rule__ProtocolClass__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8340:2: rule__ProtocolClass__Group__1__Impl rule__ProtocolClass__Group__2
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__1__Impl_in_rule__ProtocolClass__Group__117447);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__1__Impl_in_rule__ProtocolClass__Group__117448);
             rule__ProtocolClass__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__2_in_rule__ProtocolClass__Group__117450);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__2_in_rule__ProtocolClass__Group__117451);
             rule__ProtocolClass__Group__2();
 
             state._fsp--;
@@ -24140,7 +24151,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8353:1: 'ProtocolClass'
             {
              before(grammarAccess.getProtocolClassAccess().getProtocolClassKeyword_1()); 
-            match(input,20,FOLLOW_20_in_rule__ProtocolClass__Group__1__Impl17478); 
+            match(input,20,FOLLOW_20_in_rule__ProtocolClass__Group__1__Impl17479); 
              after(grammarAccess.getProtocolClassAccess().getProtocolClassKeyword_1()); 
 
             }
@@ -24173,12 +24184,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8370:1: ( rule__ProtocolClass__Group__2__Impl rule__ProtocolClass__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8371:2: rule__ProtocolClass__Group__2__Impl rule__ProtocolClass__Group__3
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__2__Impl_in_rule__ProtocolClass__Group__217509);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__2__Impl_in_rule__ProtocolClass__Group__217510);
             rule__ProtocolClass__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__3_in_rule__ProtocolClass__Group__217512);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__3_in_rule__ProtocolClass__Group__217513);
             rule__ProtocolClass__Group__3();
 
             state._fsp--;
@@ -24218,7 +24229,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8385:1: ( rule__ProtocolClass__NameAssignment_2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8385:2: rule__ProtocolClass__NameAssignment_2
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__NameAssignment_2_in_rule__ProtocolClass__Group__2__Impl17539);
+            pushFollow(FOLLOW_rule__ProtocolClass__NameAssignment_2_in_rule__ProtocolClass__Group__2__Impl17540);
             rule__ProtocolClass__NameAssignment_2();
 
             state._fsp--;
@@ -24258,12 +24269,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8399:1: ( rule__ProtocolClass__Group__3__Impl rule__ProtocolClass__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8400:2: rule__ProtocolClass__Group__3__Impl rule__ProtocolClass__Group__4
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__3__Impl_in_rule__ProtocolClass__Group__317569);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__3__Impl_in_rule__ProtocolClass__Group__317570);
             rule__ProtocolClass__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__4_in_rule__ProtocolClass__Group__317572);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__4_in_rule__ProtocolClass__Group__317573);
             rule__ProtocolClass__Group__4();
 
             state._fsp--;
@@ -24301,17 +24312,17 @@
             {
              before(grammarAccess.getProtocolClassAccess().getDocuAssignment_3()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8414:1: ( rule__ProtocolClass__DocuAssignment_3 )?
-            int alt87=2;
-            int LA87_0 = input.LA(1);
+            int alt88=2;
+            int LA88_0 = input.LA(1);
 
-            if ( (LA87_0==58) ) {
-                alt87=1;
+            if ( (LA88_0==58) ) {
+                alt88=1;
             }
-            switch (alt87) {
+            switch (alt88) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8414:2: rule__ProtocolClass__DocuAssignment_3
                     {
-                    pushFollow(FOLLOW_rule__ProtocolClass__DocuAssignment_3_in_rule__ProtocolClass__Group__3__Impl17599);
+                    pushFollow(FOLLOW_rule__ProtocolClass__DocuAssignment_3_in_rule__ProtocolClass__Group__3__Impl17600);
                     rule__ProtocolClass__DocuAssignment_3();
 
                     state._fsp--;
@@ -24354,12 +24365,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8428:1: ( rule__ProtocolClass__Group__4__Impl rule__ProtocolClass__Group__5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8429:2: rule__ProtocolClass__Group__4__Impl rule__ProtocolClass__Group__5
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__4__Impl_in_rule__ProtocolClass__Group__417630);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__4__Impl_in_rule__ProtocolClass__Group__417631);
             rule__ProtocolClass__Group__4__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__5_in_rule__ProtocolClass__Group__417633);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__5_in_rule__ProtocolClass__Group__417634);
             rule__ProtocolClass__Group__5();
 
             state._fsp--;
@@ -24397,17 +24408,17 @@
             {
              before(grammarAccess.getProtocolClassAccess().getGroup_4()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8443:1: ( rule__ProtocolClass__Group_4__0 )?
-            int alt88=2;
-            int LA88_0 = input.LA(1);
+            int alt89=2;
+            int LA89_0 = input.LA(1);
 
-            if ( (LA88_0==53) ) {
-                alt88=1;
+            if ( (LA89_0==53) ) {
+                alt89=1;
             }
-            switch (alt88) {
+            switch (alt89) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8443:2: rule__ProtocolClass__Group_4__0
                     {
-                    pushFollow(FOLLOW_rule__ProtocolClass__Group_4__0_in_rule__ProtocolClass__Group__4__Impl17660);
+                    pushFollow(FOLLOW_rule__ProtocolClass__Group_4__0_in_rule__ProtocolClass__Group__4__Impl17661);
                     rule__ProtocolClass__Group_4__0();
 
                     state._fsp--;
@@ -24450,12 +24461,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8457:1: ( rule__ProtocolClass__Group__5__Impl rule__ProtocolClass__Group__6 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8458:2: rule__ProtocolClass__Group__5__Impl rule__ProtocolClass__Group__6
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__5__Impl_in_rule__ProtocolClass__Group__517691);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__5__Impl_in_rule__ProtocolClass__Group__517692);
             rule__ProtocolClass__Group__5__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__6_in_rule__ProtocolClass__Group__517694);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__6_in_rule__ProtocolClass__Group__517695);
             rule__ProtocolClass__Group__6();
 
             state._fsp--;
@@ -24492,7 +24503,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8471:1: '{'
             {
              before(grammarAccess.getProtocolClassAccess().getLeftCurlyBracketKeyword_5()); 
-            match(input,40,FOLLOW_40_in_rule__ProtocolClass__Group__5__Impl17722); 
+            match(input,40,FOLLOW_40_in_rule__ProtocolClass__Group__5__Impl17723); 
              after(grammarAccess.getProtocolClassAccess().getLeftCurlyBracketKeyword_5()); 
 
             }
@@ -24525,12 +24536,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8488:1: ( rule__ProtocolClass__Group__6__Impl rule__ProtocolClass__Group__7 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8489:2: rule__ProtocolClass__Group__6__Impl rule__ProtocolClass__Group__7
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__6__Impl_in_rule__ProtocolClass__Group__617753);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__6__Impl_in_rule__ProtocolClass__Group__617754);
             rule__ProtocolClass__Group__6__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__7_in_rule__ProtocolClass__Group__617756);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__7_in_rule__ProtocolClass__Group__617757);
             rule__ProtocolClass__Group__7();
 
             state._fsp--;
@@ -24568,21 +24579,21 @@
             {
              before(grammarAccess.getProtocolClassAccess().getAnnotationsAssignment_6()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8503:1: ( rule__ProtocolClass__AnnotationsAssignment_6 )*
-            loop89:
+            loop90:
             do {
-                int alt89=2;
-                int LA89_0 = input.LA(1);
+                int alt90=2;
+                int LA90_0 = input.LA(1);
 
-                if ( (LA89_0==119) ) {
-                    alt89=1;
+                if ( (LA90_0==119) ) {
+                    alt90=1;
                 }
 
 
-                switch (alt89) {
+                switch (alt90) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8503:2: rule__ProtocolClass__AnnotationsAssignment_6
             	    {
-            	    pushFollow(FOLLOW_rule__ProtocolClass__AnnotationsAssignment_6_in_rule__ProtocolClass__Group__6__Impl17783);
+            	    pushFollow(FOLLOW_rule__ProtocolClass__AnnotationsAssignment_6_in_rule__ProtocolClass__Group__6__Impl17784);
             	    rule__ProtocolClass__AnnotationsAssignment_6();
 
             	    state._fsp--;
@@ -24592,7 +24603,7 @@
             	    break;
 
             	default :
-            	    break loop89;
+            	    break loop90;
                 }
             } while (true);
 
@@ -24628,12 +24639,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8517:1: ( rule__ProtocolClass__Group__7__Impl rule__ProtocolClass__Group__8 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8518:2: rule__ProtocolClass__Group__7__Impl rule__ProtocolClass__Group__8
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__7__Impl_in_rule__ProtocolClass__Group__717814);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__7__Impl_in_rule__ProtocolClass__Group__717815);
             rule__ProtocolClass__Group__7__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__8_in_rule__ProtocolClass__Group__717817);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__8_in_rule__ProtocolClass__Group__717818);
             rule__ProtocolClass__Group__8();
 
             state._fsp--;
@@ -24671,17 +24682,17 @@
             {
              before(grammarAccess.getProtocolClassAccess().getGroup_7()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8532:1: ( rule__ProtocolClass__Group_7__0 )?
-            int alt90=2;
-            int LA90_0 = input.LA(1);
+            int alt91=2;
+            int LA91_0 = input.LA(1);
 
-            if ( (LA90_0==54) ) {
-                alt90=1;
+            if ( (LA91_0==54) ) {
+                alt91=1;
             }
-            switch (alt90) {
+            switch (alt91) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8532:2: rule__ProtocolClass__Group_7__0
                     {
-                    pushFollow(FOLLOW_rule__ProtocolClass__Group_7__0_in_rule__ProtocolClass__Group__7__Impl17844);
+                    pushFollow(FOLLOW_rule__ProtocolClass__Group_7__0_in_rule__ProtocolClass__Group__7__Impl17845);
                     rule__ProtocolClass__Group_7__0();
 
                     state._fsp--;
@@ -24724,12 +24735,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8546:1: ( rule__ProtocolClass__Group__8__Impl rule__ProtocolClass__Group__9 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8547:2: rule__ProtocolClass__Group__8__Impl rule__ProtocolClass__Group__9
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__8__Impl_in_rule__ProtocolClass__Group__817875);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__8__Impl_in_rule__ProtocolClass__Group__817876);
             rule__ProtocolClass__Group__8__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__9_in_rule__ProtocolClass__Group__817878);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__9_in_rule__ProtocolClass__Group__817879);
             rule__ProtocolClass__Group__9();
 
             state._fsp--;
@@ -24767,17 +24778,17 @@
             {
              before(grammarAccess.getProtocolClassAccess().getGroup_8()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8561:1: ( rule__ProtocolClass__Group_8__0 )?
-            int alt91=2;
-            int LA91_0 = input.LA(1);
+            int alt92=2;
+            int LA92_0 = input.LA(1);
 
-            if ( (LA91_0==55) ) {
-                alt91=1;
+            if ( (LA92_0==55) ) {
+                alt92=1;
             }
-            switch (alt91) {
+            switch (alt92) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8561:2: rule__ProtocolClass__Group_8__0
                     {
-                    pushFollow(FOLLOW_rule__ProtocolClass__Group_8__0_in_rule__ProtocolClass__Group__8__Impl17905);
+                    pushFollow(FOLLOW_rule__ProtocolClass__Group_8__0_in_rule__ProtocolClass__Group__8__Impl17906);
                     rule__ProtocolClass__Group_8__0();
 
                     state._fsp--;
@@ -24820,12 +24831,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8575:1: ( rule__ProtocolClass__Group__9__Impl rule__ProtocolClass__Group__10 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8576:2: rule__ProtocolClass__Group__9__Impl rule__ProtocolClass__Group__10
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__9__Impl_in_rule__ProtocolClass__Group__917936);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__9__Impl_in_rule__ProtocolClass__Group__917937);
             rule__ProtocolClass__Group__9__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__10_in_rule__ProtocolClass__Group__917939);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__10_in_rule__ProtocolClass__Group__917940);
             rule__ProtocolClass__Group__10();
 
             state._fsp--;
@@ -24863,17 +24874,17 @@
             {
              before(grammarAccess.getProtocolClassAccess().getGroup_9()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8590:1: ( rule__ProtocolClass__Group_9__0 )?
-            int alt92=2;
-            int LA92_0 = input.LA(1);
+            int alt93=2;
+            int LA93_0 = input.LA(1);
 
-            if ( (LA92_0==56) ) {
-                alt92=1;
+            if ( (LA93_0==56) ) {
+                alt93=1;
             }
-            switch (alt92) {
+            switch (alt93) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8590:2: rule__ProtocolClass__Group_9__0
                     {
-                    pushFollow(FOLLOW_rule__ProtocolClass__Group_9__0_in_rule__ProtocolClass__Group__9__Impl17966);
+                    pushFollow(FOLLOW_rule__ProtocolClass__Group_9__0_in_rule__ProtocolClass__Group__9__Impl17967);
                     rule__ProtocolClass__Group_9__0();
 
                     state._fsp--;
@@ -24916,12 +24927,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8604:1: ( rule__ProtocolClass__Group__10__Impl rule__ProtocolClass__Group__11 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8605:2: rule__ProtocolClass__Group__10__Impl rule__ProtocolClass__Group__11
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__10__Impl_in_rule__ProtocolClass__Group__1017997);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__10__Impl_in_rule__ProtocolClass__Group__1017998);
             rule__ProtocolClass__Group__10__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__11_in_rule__ProtocolClass__Group__1018000);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__11_in_rule__ProtocolClass__Group__1018001);
             rule__ProtocolClass__Group__11();
 
             state._fsp--;
@@ -24959,17 +24970,17 @@
             {
              before(grammarAccess.getProtocolClassAccess().getGroup_10()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8619:1: ( rule__ProtocolClass__Group_10__0 )?
-            int alt93=2;
-            int LA93_0 = input.LA(1);
+            int alt94=2;
+            int LA94_0 = input.LA(1);
 
-            if ( (LA93_0==62) ) {
-                alt93=1;
+            if ( (LA94_0==62) ) {
+                alt94=1;
             }
-            switch (alt93) {
+            switch (alt94) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8619:2: rule__ProtocolClass__Group_10__0
                     {
-                    pushFollow(FOLLOW_rule__ProtocolClass__Group_10__0_in_rule__ProtocolClass__Group__10__Impl18027);
+                    pushFollow(FOLLOW_rule__ProtocolClass__Group_10__0_in_rule__ProtocolClass__Group__10__Impl18028);
                     rule__ProtocolClass__Group_10__0();
 
                     state._fsp--;
@@ -25012,12 +25023,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8633:1: ( rule__ProtocolClass__Group__11__Impl rule__ProtocolClass__Group__12 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8634:2: rule__ProtocolClass__Group__11__Impl rule__ProtocolClass__Group__12
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__11__Impl_in_rule__ProtocolClass__Group__1118058);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__11__Impl_in_rule__ProtocolClass__Group__1118059);
             rule__ProtocolClass__Group__11__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__12_in_rule__ProtocolClass__Group__1118061);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__12_in_rule__ProtocolClass__Group__1118062);
             rule__ProtocolClass__Group__12();
 
             state._fsp--;
@@ -25055,17 +25066,17 @@
             {
              before(grammarAccess.getProtocolClassAccess().getGroup_11()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8648:1: ( rule__ProtocolClass__Group_11__0 )?
-            int alt94=2;
-            int LA94_0 = input.LA(1);
+            int alt95=2;
+            int LA95_0 = input.LA(1);
 
-            if ( (LA94_0==63) ) {
-                alt94=1;
+            if ( (LA95_0==63) ) {
+                alt95=1;
             }
-            switch (alt94) {
+            switch (alt95) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8648:2: rule__ProtocolClass__Group_11__0
                     {
-                    pushFollow(FOLLOW_rule__ProtocolClass__Group_11__0_in_rule__ProtocolClass__Group__11__Impl18088);
+                    pushFollow(FOLLOW_rule__ProtocolClass__Group_11__0_in_rule__ProtocolClass__Group__11__Impl18089);
                     rule__ProtocolClass__Group_11__0();
 
                     state._fsp--;
@@ -25108,12 +25119,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8662:1: ( rule__ProtocolClass__Group__12__Impl rule__ProtocolClass__Group__13 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8663:2: rule__ProtocolClass__Group__12__Impl rule__ProtocolClass__Group__13
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__12__Impl_in_rule__ProtocolClass__Group__1218119);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__12__Impl_in_rule__ProtocolClass__Group__1218120);
             rule__ProtocolClass__Group__12__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__13_in_rule__ProtocolClass__Group__1218122);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__13_in_rule__ProtocolClass__Group__1218123);
             rule__ProtocolClass__Group__13();
 
             state._fsp--;
@@ -25151,17 +25162,17 @@
             {
              before(grammarAccess.getProtocolClassAccess().getGroup_12()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8677:1: ( rule__ProtocolClass__Group_12__0 )?
-            int alt95=2;
-            int LA95_0 = input.LA(1);
+            int alt96=2;
+            int LA96_0 = input.LA(1);
 
-            if ( (LA95_0==64) ) {
-                alt95=1;
+            if ( (LA96_0==64) ) {
+                alt96=1;
             }
-            switch (alt95) {
+            switch (alt96) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8677:2: rule__ProtocolClass__Group_12__0
                     {
-                    pushFollow(FOLLOW_rule__ProtocolClass__Group_12__0_in_rule__ProtocolClass__Group__12__Impl18149);
+                    pushFollow(FOLLOW_rule__ProtocolClass__Group_12__0_in_rule__ProtocolClass__Group__12__Impl18150);
                     rule__ProtocolClass__Group_12__0();
 
                     state._fsp--;
@@ -25204,12 +25215,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8691:1: ( rule__ProtocolClass__Group__13__Impl rule__ProtocolClass__Group__14 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8692:2: rule__ProtocolClass__Group__13__Impl rule__ProtocolClass__Group__14
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__13__Impl_in_rule__ProtocolClass__Group__1318180);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__13__Impl_in_rule__ProtocolClass__Group__1318181);
             rule__ProtocolClass__Group__13__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__14_in_rule__ProtocolClass__Group__1318183);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__14_in_rule__ProtocolClass__Group__1318184);
             rule__ProtocolClass__Group__14();
 
             state._fsp--;
@@ -25247,17 +25258,17 @@
             {
              before(grammarAccess.getProtocolClassAccess().getGroup_13()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8706:1: ( rule__ProtocolClass__Group_13__0 )?
-            int alt96=2;
-            int LA96_0 = input.LA(1);
+            int alt97=2;
+            int LA97_0 = input.LA(1);
 
-            if ( (LA96_0==66) ) {
-                alt96=1;
+            if ( (LA97_0==66) ) {
+                alt97=1;
             }
-            switch (alt96) {
+            switch (alt97) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8706:2: rule__ProtocolClass__Group_13__0
                     {
-                    pushFollow(FOLLOW_rule__ProtocolClass__Group_13__0_in_rule__ProtocolClass__Group__13__Impl18210);
+                    pushFollow(FOLLOW_rule__ProtocolClass__Group_13__0_in_rule__ProtocolClass__Group__13__Impl18211);
                     rule__ProtocolClass__Group_13__0();
 
                     state._fsp--;
@@ -25300,12 +25311,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8720:1: ( rule__ProtocolClass__Group__14__Impl rule__ProtocolClass__Group__15 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8721:2: rule__ProtocolClass__Group__14__Impl rule__ProtocolClass__Group__15
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__14__Impl_in_rule__ProtocolClass__Group__1418241);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__14__Impl_in_rule__ProtocolClass__Group__1418242);
             rule__ProtocolClass__Group__14__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__15_in_rule__ProtocolClass__Group__1418244);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__15_in_rule__ProtocolClass__Group__1418245);
             rule__ProtocolClass__Group__15();
 
             state._fsp--;
@@ -25343,17 +25354,17 @@
             {
              before(grammarAccess.getProtocolClassAccess().getSemanticsAssignment_14()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8735:1: ( rule__ProtocolClass__SemanticsAssignment_14 )?
-            int alt97=2;
-            int LA97_0 = input.LA(1);
+            int alt98=2;
+            int LA98_0 = input.LA(1);
 
-            if ( (LA97_0==116) ) {
-                alt97=1;
+            if ( (LA98_0==116) ) {
+                alt98=1;
             }
-            switch (alt97) {
+            switch (alt98) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8735:2: rule__ProtocolClass__SemanticsAssignment_14
                     {
-                    pushFollow(FOLLOW_rule__ProtocolClass__SemanticsAssignment_14_in_rule__ProtocolClass__Group__14__Impl18271);
+                    pushFollow(FOLLOW_rule__ProtocolClass__SemanticsAssignment_14_in_rule__ProtocolClass__Group__14__Impl18272);
                     rule__ProtocolClass__SemanticsAssignment_14();
 
                     state._fsp--;
@@ -25396,7 +25407,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8749:1: ( rule__ProtocolClass__Group__15__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8750:2: rule__ProtocolClass__Group__15__Impl
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group__15__Impl_in_rule__ProtocolClass__Group__1518302);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group__15__Impl_in_rule__ProtocolClass__Group__1518303);
             rule__ProtocolClass__Group__15__Impl();
 
             state._fsp--;
@@ -25433,7 +25444,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8762:1: '}'
             {
              before(grammarAccess.getProtocolClassAccess().getRightCurlyBracketKeyword_15()); 
-            match(input,41,FOLLOW_41_in_rule__ProtocolClass__Group__15__Impl18330); 
+            match(input,41,FOLLOW_41_in_rule__ProtocolClass__Group__15__Impl18331); 
              after(grammarAccess.getProtocolClassAccess().getRightCurlyBracketKeyword_15()); 
 
             }
@@ -25466,12 +25477,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8811:1: ( rule__ProtocolClass__Group_4__0__Impl rule__ProtocolClass__Group_4__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8812:2: rule__ProtocolClass__Group_4__0__Impl rule__ProtocolClass__Group_4__1
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_4__0__Impl_in_rule__ProtocolClass__Group_4__018393);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_4__0__Impl_in_rule__ProtocolClass__Group_4__018394);
             rule__ProtocolClass__Group_4__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_4__1_in_rule__ProtocolClass__Group_4__018396);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_4__1_in_rule__ProtocolClass__Group_4__018397);
             rule__ProtocolClass__Group_4__1();
 
             state._fsp--;
@@ -25508,7 +25519,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8825:1: 'extends'
             {
              before(grammarAccess.getProtocolClassAccess().getExtendsKeyword_4_0()); 
-            match(input,53,FOLLOW_53_in_rule__ProtocolClass__Group_4__0__Impl18424); 
+            match(input,53,FOLLOW_53_in_rule__ProtocolClass__Group_4__0__Impl18425); 
              after(grammarAccess.getProtocolClassAccess().getExtendsKeyword_4_0()); 
 
             }
@@ -25541,7 +25552,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8842:1: ( rule__ProtocolClass__Group_4__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8843:2: rule__ProtocolClass__Group_4__1__Impl
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_4__1__Impl_in_rule__ProtocolClass__Group_4__118455);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_4__1__Impl_in_rule__ProtocolClass__Group_4__118456);
             rule__ProtocolClass__Group_4__1__Impl();
 
             state._fsp--;
@@ -25581,7 +25592,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8856:1: ( rule__ProtocolClass__BaseAssignment_4_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8856:2: rule__ProtocolClass__BaseAssignment_4_1
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__BaseAssignment_4_1_in_rule__ProtocolClass__Group_4__1__Impl18482);
+            pushFollow(FOLLOW_rule__ProtocolClass__BaseAssignment_4_1_in_rule__ProtocolClass__Group_4__1__Impl18483);
             rule__ProtocolClass__BaseAssignment_4_1();
 
             state._fsp--;
@@ -25621,12 +25632,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8874:1: ( rule__ProtocolClass__Group_7__0__Impl rule__ProtocolClass__Group_7__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8875:2: rule__ProtocolClass__Group_7__0__Impl rule__ProtocolClass__Group_7__1
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_7__0__Impl_in_rule__ProtocolClass__Group_7__018516);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_7__0__Impl_in_rule__ProtocolClass__Group_7__018517);
             rule__ProtocolClass__Group_7__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_7__1_in_rule__ProtocolClass__Group_7__018519);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_7__1_in_rule__ProtocolClass__Group_7__018520);
             rule__ProtocolClass__Group_7__1();
 
             state._fsp--;
@@ -25663,7 +25674,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8888:1: 'usercode1'
             {
              before(grammarAccess.getProtocolClassAccess().getUsercode1Keyword_7_0()); 
-            match(input,54,FOLLOW_54_in_rule__ProtocolClass__Group_7__0__Impl18547); 
+            match(input,54,FOLLOW_54_in_rule__ProtocolClass__Group_7__0__Impl18548); 
              after(grammarAccess.getProtocolClassAccess().getUsercode1Keyword_7_0()); 
 
             }
@@ -25696,7 +25707,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8905:1: ( rule__ProtocolClass__Group_7__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8906:2: rule__ProtocolClass__Group_7__1__Impl
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_7__1__Impl_in_rule__ProtocolClass__Group_7__118578);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_7__1__Impl_in_rule__ProtocolClass__Group_7__118579);
             rule__ProtocolClass__Group_7__1__Impl();
 
             state._fsp--;
@@ -25736,7 +25747,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8919:1: ( rule__ProtocolClass__UserCode1Assignment_7_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8919:2: rule__ProtocolClass__UserCode1Assignment_7_1
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__UserCode1Assignment_7_1_in_rule__ProtocolClass__Group_7__1__Impl18605);
+            pushFollow(FOLLOW_rule__ProtocolClass__UserCode1Assignment_7_1_in_rule__ProtocolClass__Group_7__1__Impl18606);
             rule__ProtocolClass__UserCode1Assignment_7_1();
 
             state._fsp--;
@@ -25776,12 +25787,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8937:1: ( rule__ProtocolClass__Group_8__0__Impl rule__ProtocolClass__Group_8__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8938:2: rule__ProtocolClass__Group_8__0__Impl rule__ProtocolClass__Group_8__1
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_8__0__Impl_in_rule__ProtocolClass__Group_8__018639);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_8__0__Impl_in_rule__ProtocolClass__Group_8__018640);
             rule__ProtocolClass__Group_8__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_8__1_in_rule__ProtocolClass__Group_8__018642);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_8__1_in_rule__ProtocolClass__Group_8__018643);
             rule__ProtocolClass__Group_8__1();
 
             state._fsp--;
@@ -25818,7 +25829,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8951:1: 'usercode2'
             {
              before(grammarAccess.getProtocolClassAccess().getUsercode2Keyword_8_0()); 
-            match(input,55,FOLLOW_55_in_rule__ProtocolClass__Group_8__0__Impl18670); 
+            match(input,55,FOLLOW_55_in_rule__ProtocolClass__Group_8__0__Impl18671); 
              after(grammarAccess.getProtocolClassAccess().getUsercode2Keyword_8_0()); 
 
             }
@@ -25851,7 +25862,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8968:1: ( rule__ProtocolClass__Group_8__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8969:2: rule__ProtocolClass__Group_8__1__Impl
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_8__1__Impl_in_rule__ProtocolClass__Group_8__118701);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_8__1__Impl_in_rule__ProtocolClass__Group_8__118702);
             rule__ProtocolClass__Group_8__1__Impl();
 
             state._fsp--;
@@ -25891,7 +25902,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8982:1: ( rule__ProtocolClass__UserCode2Assignment_8_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:8982:2: rule__ProtocolClass__UserCode2Assignment_8_1
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__UserCode2Assignment_8_1_in_rule__ProtocolClass__Group_8__1__Impl18728);
+            pushFollow(FOLLOW_rule__ProtocolClass__UserCode2Assignment_8_1_in_rule__ProtocolClass__Group_8__1__Impl18729);
             rule__ProtocolClass__UserCode2Assignment_8_1();
 
             state._fsp--;
@@ -25931,12 +25942,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9000:1: ( rule__ProtocolClass__Group_9__0__Impl rule__ProtocolClass__Group_9__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9001:2: rule__ProtocolClass__Group_9__0__Impl rule__ProtocolClass__Group_9__1
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_9__0__Impl_in_rule__ProtocolClass__Group_9__018762);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_9__0__Impl_in_rule__ProtocolClass__Group_9__018763);
             rule__ProtocolClass__Group_9__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_9__1_in_rule__ProtocolClass__Group_9__018765);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_9__1_in_rule__ProtocolClass__Group_9__018766);
             rule__ProtocolClass__Group_9__1();
 
             state._fsp--;
@@ -25973,7 +25984,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9014:1: 'usercode3'
             {
              before(grammarAccess.getProtocolClassAccess().getUsercode3Keyword_9_0()); 
-            match(input,56,FOLLOW_56_in_rule__ProtocolClass__Group_9__0__Impl18793); 
+            match(input,56,FOLLOW_56_in_rule__ProtocolClass__Group_9__0__Impl18794); 
              after(grammarAccess.getProtocolClassAccess().getUsercode3Keyword_9_0()); 
 
             }
@@ -26006,7 +26017,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9031:1: ( rule__ProtocolClass__Group_9__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9032:2: rule__ProtocolClass__Group_9__1__Impl
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_9__1__Impl_in_rule__ProtocolClass__Group_9__118824);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_9__1__Impl_in_rule__ProtocolClass__Group_9__118825);
             rule__ProtocolClass__Group_9__1__Impl();
 
             state._fsp--;
@@ -26046,7 +26057,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9045:1: ( rule__ProtocolClass__UserCode3Assignment_9_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9045:2: rule__ProtocolClass__UserCode3Assignment_9_1
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__UserCode3Assignment_9_1_in_rule__ProtocolClass__Group_9__1__Impl18851);
+            pushFollow(FOLLOW_rule__ProtocolClass__UserCode3Assignment_9_1_in_rule__ProtocolClass__Group_9__1__Impl18852);
             rule__ProtocolClass__UserCode3Assignment_9_1();
 
             state._fsp--;
@@ -26086,12 +26097,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9063:1: ( rule__ProtocolClass__Group_10__0__Impl rule__ProtocolClass__Group_10__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9064:2: rule__ProtocolClass__Group_10__0__Impl rule__ProtocolClass__Group_10__1
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_10__0__Impl_in_rule__ProtocolClass__Group_10__018885);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_10__0__Impl_in_rule__ProtocolClass__Group_10__018886);
             rule__ProtocolClass__Group_10__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_10__1_in_rule__ProtocolClass__Group_10__018888);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_10__1_in_rule__ProtocolClass__Group_10__018889);
             rule__ProtocolClass__Group_10__1();
 
             state._fsp--;
@@ -26128,7 +26139,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9077:1: 'incoming'
             {
              before(grammarAccess.getProtocolClassAccess().getIncomingKeyword_10_0()); 
-            match(input,62,FOLLOW_62_in_rule__ProtocolClass__Group_10__0__Impl18916); 
+            match(input,62,FOLLOW_62_in_rule__ProtocolClass__Group_10__0__Impl18917); 
              after(grammarAccess.getProtocolClassAccess().getIncomingKeyword_10_0()); 
 
             }
@@ -26161,12 +26172,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9094:1: ( rule__ProtocolClass__Group_10__1__Impl rule__ProtocolClass__Group_10__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9095:2: rule__ProtocolClass__Group_10__1__Impl rule__ProtocolClass__Group_10__2
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_10__1__Impl_in_rule__ProtocolClass__Group_10__118947);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_10__1__Impl_in_rule__ProtocolClass__Group_10__118948);
             rule__ProtocolClass__Group_10__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_10__2_in_rule__ProtocolClass__Group_10__118950);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_10__2_in_rule__ProtocolClass__Group_10__118951);
             rule__ProtocolClass__Group_10__2();
 
             state._fsp--;
@@ -26203,7 +26214,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9108:1: '{'
             {
              before(grammarAccess.getProtocolClassAccess().getLeftCurlyBracketKeyword_10_1()); 
-            match(input,40,FOLLOW_40_in_rule__ProtocolClass__Group_10__1__Impl18978); 
+            match(input,40,FOLLOW_40_in_rule__ProtocolClass__Group_10__1__Impl18979); 
              after(grammarAccess.getProtocolClassAccess().getLeftCurlyBracketKeyword_10_1()); 
 
             }
@@ -26236,12 +26247,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9125:1: ( rule__ProtocolClass__Group_10__2__Impl rule__ProtocolClass__Group_10__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9126:2: rule__ProtocolClass__Group_10__2__Impl rule__ProtocolClass__Group_10__3
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_10__2__Impl_in_rule__ProtocolClass__Group_10__219009);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_10__2__Impl_in_rule__ProtocolClass__Group_10__219010);
             rule__ProtocolClass__Group_10__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_10__3_in_rule__ProtocolClass__Group_10__219012);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_10__3_in_rule__ProtocolClass__Group_10__219013);
             rule__ProtocolClass__Group_10__3();
 
             state._fsp--;
@@ -26279,21 +26290,21 @@
             {
              before(grammarAccess.getProtocolClassAccess().getIncomingMessagesAssignment_10_2()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9140:1: ( rule__ProtocolClass__IncomingMessagesAssignment_10_2 )*
-            loop98:
+            loop99:
             do {
-                int alt98=2;
-                int LA98_0 = input.LA(1);
+                int alt99=2;
+                int LA99_0 = input.LA(1);
 
-                if ( (LA98_0==68||LA98_0==127) ) {
-                    alt98=1;
+                if ( (LA99_0==68||LA99_0==127) ) {
+                    alt99=1;
                 }
 
 
-                switch (alt98) {
+                switch (alt99) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9140:2: rule__ProtocolClass__IncomingMessagesAssignment_10_2
             	    {
-            	    pushFollow(FOLLOW_rule__ProtocolClass__IncomingMessagesAssignment_10_2_in_rule__ProtocolClass__Group_10__2__Impl19039);
+            	    pushFollow(FOLLOW_rule__ProtocolClass__IncomingMessagesAssignment_10_2_in_rule__ProtocolClass__Group_10__2__Impl19040);
             	    rule__ProtocolClass__IncomingMessagesAssignment_10_2();
 
             	    state._fsp--;
@@ -26303,7 +26314,7 @@
             	    break;
 
             	default :
-            	    break loop98;
+            	    break loop99;
                 }
             } while (true);
 
@@ -26339,7 +26350,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9154:1: ( rule__ProtocolClass__Group_10__3__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9155:2: rule__ProtocolClass__Group_10__3__Impl
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_10__3__Impl_in_rule__ProtocolClass__Group_10__319070);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_10__3__Impl_in_rule__ProtocolClass__Group_10__319071);
             rule__ProtocolClass__Group_10__3__Impl();
 
             state._fsp--;
@@ -26376,7 +26387,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9167:1: '}'
             {
              before(grammarAccess.getProtocolClassAccess().getRightCurlyBracketKeyword_10_3()); 
-            match(input,41,FOLLOW_41_in_rule__ProtocolClass__Group_10__3__Impl19098); 
+            match(input,41,FOLLOW_41_in_rule__ProtocolClass__Group_10__3__Impl19099); 
              after(grammarAccess.getProtocolClassAccess().getRightCurlyBracketKeyword_10_3()); 
 
             }
@@ -26409,12 +26420,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9192:1: ( rule__ProtocolClass__Group_11__0__Impl rule__ProtocolClass__Group_11__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9193:2: rule__ProtocolClass__Group_11__0__Impl rule__ProtocolClass__Group_11__1
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_11__0__Impl_in_rule__ProtocolClass__Group_11__019137);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_11__0__Impl_in_rule__ProtocolClass__Group_11__019138);
             rule__ProtocolClass__Group_11__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_11__1_in_rule__ProtocolClass__Group_11__019140);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_11__1_in_rule__ProtocolClass__Group_11__019141);
             rule__ProtocolClass__Group_11__1();
 
             state._fsp--;
@@ -26451,7 +26462,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9206:1: 'outgoing'
             {
              before(grammarAccess.getProtocolClassAccess().getOutgoingKeyword_11_0()); 
-            match(input,63,FOLLOW_63_in_rule__ProtocolClass__Group_11__0__Impl19168); 
+            match(input,63,FOLLOW_63_in_rule__ProtocolClass__Group_11__0__Impl19169); 
              after(grammarAccess.getProtocolClassAccess().getOutgoingKeyword_11_0()); 
 
             }
@@ -26484,12 +26495,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9223:1: ( rule__ProtocolClass__Group_11__1__Impl rule__ProtocolClass__Group_11__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9224:2: rule__ProtocolClass__Group_11__1__Impl rule__ProtocolClass__Group_11__2
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_11__1__Impl_in_rule__ProtocolClass__Group_11__119199);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_11__1__Impl_in_rule__ProtocolClass__Group_11__119200);
             rule__ProtocolClass__Group_11__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_11__2_in_rule__ProtocolClass__Group_11__119202);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_11__2_in_rule__ProtocolClass__Group_11__119203);
             rule__ProtocolClass__Group_11__2();
 
             state._fsp--;
@@ -26526,7 +26537,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9237:1: '{'
             {
              before(grammarAccess.getProtocolClassAccess().getLeftCurlyBracketKeyword_11_1()); 
-            match(input,40,FOLLOW_40_in_rule__ProtocolClass__Group_11__1__Impl19230); 
+            match(input,40,FOLLOW_40_in_rule__ProtocolClass__Group_11__1__Impl19231); 
              after(grammarAccess.getProtocolClassAccess().getLeftCurlyBracketKeyword_11_1()); 
 
             }
@@ -26559,12 +26570,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9254:1: ( rule__ProtocolClass__Group_11__2__Impl rule__ProtocolClass__Group_11__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9255:2: rule__ProtocolClass__Group_11__2__Impl rule__ProtocolClass__Group_11__3
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_11__2__Impl_in_rule__ProtocolClass__Group_11__219261);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_11__2__Impl_in_rule__ProtocolClass__Group_11__219262);
             rule__ProtocolClass__Group_11__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_11__3_in_rule__ProtocolClass__Group_11__219264);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_11__3_in_rule__ProtocolClass__Group_11__219265);
             rule__ProtocolClass__Group_11__3();
 
             state._fsp--;
@@ -26602,21 +26613,21 @@
             {
              before(grammarAccess.getProtocolClassAccess().getOutgoingMessagesAssignment_11_2()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9269:1: ( rule__ProtocolClass__OutgoingMessagesAssignment_11_2 )*
-            loop99:
+            loop100:
             do {
-                int alt99=2;
-                int LA99_0 = input.LA(1);
+                int alt100=2;
+                int LA100_0 = input.LA(1);
 
-                if ( (LA99_0==68||LA99_0==127) ) {
-                    alt99=1;
+                if ( (LA100_0==68||LA100_0==127) ) {
+                    alt100=1;
                 }
 
 
-                switch (alt99) {
+                switch (alt100) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9269:2: rule__ProtocolClass__OutgoingMessagesAssignment_11_2
             	    {
-            	    pushFollow(FOLLOW_rule__ProtocolClass__OutgoingMessagesAssignment_11_2_in_rule__ProtocolClass__Group_11__2__Impl19291);
+            	    pushFollow(FOLLOW_rule__ProtocolClass__OutgoingMessagesAssignment_11_2_in_rule__ProtocolClass__Group_11__2__Impl19292);
             	    rule__ProtocolClass__OutgoingMessagesAssignment_11_2();
 
             	    state._fsp--;
@@ -26626,7 +26637,7 @@
             	    break;
 
             	default :
-            	    break loop99;
+            	    break loop100;
                 }
             } while (true);
 
@@ -26662,7 +26673,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9283:1: ( rule__ProtocolClass__Group_11__3__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9284:2: rule__ProtocolClass__Group_11__3__Impl
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_11__3__Impl_in_rule__ProtocolClass__Group_11__319322);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_11__3__Impl_in_rule__ProtocolClass__Group_11__319323);
             rule__ProtocolClass__Group_11__3__Impl();
 
             state._fsp--;
@@ -26699,7 +26710,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9296:1: '}'
             {
              before(grammarAccess.getProtocolClassAccess().getRightCurlyBracketKeyword_11_3()); 
-            match(input,41,FOLLOW_41_in_rule__ProtocolClass__Group_11__3__Impl19350); 
+            match(input,41,FOLLOW_41_in_rule__ProtocolClass__Group_11__3__Impl19351); 
              after(grammarAccess.getProtocolClassAccess().getRightCurlyBracketKeyword_11_3()); 
 
             }
@@ -26732,12 +26743,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9321:1: ( rule__ProtocolClass__Group_12__0__Impl rule__ProtocolClass__Group_12__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9322:2: rule__ProtocolClass__Group_12__0__Impl rule__ProtocolClass__Group_12__1
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_12__0__Impl_in_rule__ProtocolClass__Group_12__019389);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_12__0__Impl_in_rule__ProtocolClass__Group_12__019390);
             rule__ProtocolClass__Group_12__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_12__1_in_rule__ProtocolClass__Group_12__019392);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_12__1_in_rule__ProtocolClass__Group_12__019393);
             rule__ProtocolClass__Group_12__1();
 
             state._fsp--;
@@ -26774,7 +26785,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9335:1: 'regular'
             {
              before(grammarAccess.getProtocolClassAccess().getRegularKeyword_12_0()); 
-            match(input,64,FOLLOW_64_in_rule__ProtocolClass__Group_12__0__Impl19420); 
+            match(input,64,FOLLOW_64_in_rule__ProtocolClass__Group_12__0__Impl19421); 
              after(grammarAccess.getProtocolClassAccess().getRegularKeyword_12_0()); 
 
             }
@@ -26807,12 +26818,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9352:1: ( rule__ProtocolClass__Group_12__1__Impl rule__ProtocolClass__Group_12__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9353:2: rule__ProtocolClass__Group_12__1__Impl rule__ProtocolClass__Group_12__2
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_12__1__Impl_in_rule__ProtocolClass__Group_12__119451);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_12__1__Impl_in_rule__ProtocolClass__Group_12__119452);
             rule__ProtocolClass__Group_12__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_12__2_in_rule__ProtocolClass__Group_12__119454);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_12__2_in_rule__ProtocolClass__Group_12__119455);
             rule__ProtocolClass__Group_12__2();
 
             state._fsp--;
@@ -26849,7 +26860,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9366:1: 'PortClass'
             {
              before(grammarAccess.getProtocolClassAccess().getPortClassKeyword_12_1()); 
-            match(input,65,FOLLOW_65_in_rule__ProtocolClass__Group_12__1__Impl19482); 
+            match(input,65,FOLLOW_65_in_rule__ProtocolClass__Group_12__1__Impl19483); 
              after(grammarAccess.getProtocolClassAccess().getPortClassKeyword_12_1()); 
 
             }
@@ -26882,7 +26893,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9383:1: ( rule__ProtocolClass__Group_12__2__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9384:2: rule__ProtocolClass__Group_12__2__Impl
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_12__2__Impl_in_rule__ProtocolClass__Group_12__219513);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_12__2__Impl_in_rule__ProtocolClass__Group_12__219514);
             rule__ProtocolClass__Group_12__2__Impl();
 
             state._fsp--;
@@ -26922,7 +26933,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9397:1: ( rule__ProtocolClass__RegularAssignment_12_2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9397:2: rule__ProtocolClass__RegularAssignment_12_2
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__RegularAssignment_12_2_in_rule__ProtocolClass__Group_12__2__Impl19540);
+            pushFollow(FOLLOW_rule__ProtocolClass__RegularAssignment_12_2_in_rule__ProtocolClass__Group_12__2__Impl19541);
             rule__ProtocolClass__RegularAssignment_12_2();
 
             state._fsp--;
@@ -26962,12 +26973,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9417:1: ( rule__ProtocolClass__Group_13__0__Impl rule__ProtocolClass__Group_13__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9418:2: rule__ProtocolClass__Group_13__0__Impl rule__ProtocolClass__Group_13__1
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_13__0__Impl_in_rule__ProtocolClass__Group_13__019576);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_13__0__Impl_in_rule__ProtocolClass__Group_13__019577);
             rule__ProtocolClass__Group_13__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_13__1_in_rule__ProtocolClass__Group_13__019579);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_13__1_in_rule__ProtocolClass__Group_13__019580);
             rule__ProtocolClass__Group_13__1();
 
             state._fsp--;
@@ -27004,7 +27015,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9431:1: 'conjugated'
             {
              before(grammarAccess.getProtocolClassAccess().getConjugatedKeyword_13_0()); 
-            match(input,66,FOLLOW_66_in_rule__ProtocolClass__Group_13__0__Impl19607); 
+            match(input,66,FOLLOW_66_in_rule__ProtocolClass__Group_13__0__Impl19608); 
              after(grammarAccess.getProtocolClassAccess().getConjugatedKeyword_13_0()); 
 
             }
@@ -27037,12 +27048,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9448:1: ( rule__ProtocolClass__Group_13__1__Impl rule__ProtocolClass__Group_13__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9449:2: rule__ProtocolClass__Group_13__1__Impl rule__ProtocolClass__Group_13__2
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_13__1__Impl_in_rule__ProtocolClass__Group_13__119638);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_13__1__Impl_in_rule__ProtocolClass__Group_13__119639);
             rule__ProtocolClass__Group_13__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_13__2_in_rule__ProtocolClass__Group_13__119641);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_13__2_in_rule__ProtocolClass__Group_13__119642);
             rule__ProtocolClass__Group_13__2();
 
             state._fsp--;
@@ -27079,7 +27090,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9462:1: 'PortClass'
             {
              before(grammarAccess.getProtocolClassAccess().getPortClassKeyword_13_1()); 
-            match(input,65,FOLLOW_65_in_rule__ProtocolClass__Group_13__1__Impl19669); 
+            match(input,65,FOLLOW_65_in_rule__ProtocolClass__Group_13__1__Impl19670); 
              after(grammarAccess.getProtocolClassAccess().getPortClassKeyword_13_1()); 
 
             }
@@ -27112,7 +27123,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9479:1: ( rule__ProtocolClass__Group_13__2__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9480:2: rule__ProtocolClass__Group_13__2__Impl
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__Group_13__2__Impl_in_rule__ProtocolClass__Group_13__219700);
+            pushFollow(FOLLOW_rule__ProtocolClass__Group_13__2__Impl_in_rule__ProtocolClass__Group_13__219701);
             rule__ProtocolClass__Group_13__2__Impl();
 
             state._fsp--;
@@ -27152,7 +27163,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9493:1: ( rule__ProtocolClass__ConjugatedAssignment_13_2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9493:2: rule__ProtocolClass__ConjugatedAssignment_13_2
             {
-            pushFollow(FOLLOW_rule__ProtocolClass__ConjugatedAssignment_13_2_in_rule__ProtocolClass__Group_13__2__Impl19727);
+            pushFollow(FOLLOW_rule__ProtocolClass__ConjugatedAssignment_13_2_in_rule__ProtocolClass__Group_13__2__Impl19728);
             rule__ProtocolClass__ConjugatedAssignment_13_2();
 
             state._fsp--;
@@ -27192,12 +27203,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9513:1: ( rule__CompoundProtocolClass__Group__0__Impl rule__CompoundProtocolClass__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9514:2: rule__CompoundProtocolClass__Group__0__Impl rule__CompoundProtocolClass__Group__1
             {
-            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__0__Impl_in_rule__CompoundProtocolClass__Group__019763);
+            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__0__Impl_in_rule__CompoundProtocolClass__Group__019764);
             rule__CompoundProtocolClass__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__1_in_rule__CompoundProtocolClass__Group__019766);
+            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__1_in_rule__CompoundProtocolClass__Group__019767);
             rule__CompoundProtocolClass__Group__1();
 
             state._fsp--;
@@ -27234,7 +27245,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9527:1: 'CompoundProtocolClass'
             {
              before(grammarAccess.getCompoundProtocolClassAccess().getCompoundProtocolClassKeyword_0()); 
-            match(input,21,FOLLOW_21_in_rule__CompoundProtocolClass__Group__0__Impl19794); 
+            match(input,21,FOLLOW_21_in_rule__CompoundProtocolClass__Group__0__Impl19795); 
              after(grammarAccess.getCompoundProtocolClassAccess().getCompoundProtocolClassKeyword_0()); 
 
             }
@@ -27267,12 +27278,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9544:1: ( rule__CompoundProtocolClass__Group__1__Impl rule__CompoundProtocolClass__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9545:2: rule__CompoundProtocolClass__Group__1__Impl rule__CompoundProtocolClass__Group__2
             {
-            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__1__Impl_in_rule__CompoundProtocolClass__Group__119825);
+            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__1__Impl_in_rule__CompoundProtocolClass__Group__119826);
             rule__CompoundProtocolClass__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__2_in_rule__CompoundProtocolClass__Group__119828);
+            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__2_in_rule__CompoundProtocolClass__Group__119829);
             rule__CompoundProtocolClass__Group__2();
 
             state._fsp--;
@@ -27312,7 +27323,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9559:1: ( rule__CompoundProtocolClass__NameAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9559:2: rule__CompoundProtocolClass__NameAssignment_1
             {
-            pushFollow(FOLLOW_rule__CompoundProtocolClass__NameAssignment_1_in_rule__CompoundProtocolClass__Group__1__Impl19855);
+            pushFollow(FOLLOW_rule__CompoundProtocolClass__NameAssignment_1_in_rule__CompoundProtocolClass__Group__1__Impl19856);
             rule__CompoundProtocolClass__NameAssignment_1();
 
             state._fsp--;
@@ -27352,12 +27363,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9573:1: ( rule__CompoundProtocolClass__Group__2__Impl rule__CompoundProtocolClass__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9574:2: rule__CompoundProtocolClass__Group__2__Impl rule__CompoundProtocolClass__Group__3
             {
-            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__2__Impl_in_rule__CompoundProtocolClass__Group__219885);
+            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__2__Impl_in_rule__CompoundProtocolClass__Group__219886);
             rule__CompoundProtocolClass__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__3_in_rule__CompoundProtocolClass__Group__219888);
+            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__3_in_rule__CompoundProtocolClass__Group__219889);
             rule__CompoundProtocolClass__Group__3();
 
             state._fsp--;
@@ -27395,17 +27406,17 @@
             {
              before(grammarAccess.getCompoundProtocolClassAccess().getDocuAssignment_2()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9588:1: ( rule__CompoundProtocolClass__DocuAssignment_2 )?
-            int alt100=2;
-            int LA100_0 = input.LA(1);
+            int alt101=2;
+            int LA101_0 = input.LA(1);
 
-            if ( (LA100_0==58) ) {
-                alt100=1;
+            if ( (LA101_0==58) ) {
+                alt101=1;
             }
-            switch (alt100) {
+            switch (alt101) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9588:2: rule__CompoundProtocolClass__DocuAssignment_2
                     {
-                    pushFollow(FOLLOW_rule__CompoundProtocolClass__DocuAssignment_2_in_rule__CompoundProtocolClass__Group__2__Impl19915);
+                    pushFollow(FOLLOW_rule__CompoundProtocolClass__DocuAssignment_2_in_rule__CompoundProtocolClass__Group__2__Impl19916);
                     rule__CompoundProtocolClass__DocuAssignment_2();
 
                     state._fsp--;
@@ -27448,12 +27459,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9602:1: ( rule__CompoundProtocolClass__Group__3__Impl rule__CompoundProtocolClass__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9603:2: rule__CompoundProtocolClass__Group__3__Impl rule__CompoundProtocolClass__Group__4
             {
-            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__3__Impl_in_rule__CompoundProtocolClass__Group__319946);
+            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__3__Impl_in_rule__CompoundProtocolClass__Group__319947);
             rule__CompoundProtocolClass__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__4_in_rule__CompoundProtocolClass__Group__319949);
+            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__4_in_rule__CompoundProtocolClass__Group__319950);
             rule__CompoundProtocolClass__Group__4();
 
             state._fsp--;
@@ -27490,7 +27501,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9616:1: '{'
             {
              before(grammarAccess.getCompoundProtocolClassAccess().getLeftCurlyBracketKeyword_3()); 
-            match(input,40,FOLLOW_40_in_rule__CompoundProtocolClass__Group__3__Impl19977); 
+            match(input,40,FOLLOW_40_in_rule__CompoundProtocolClass__Group__3__Impl19978); 
              after(grammarAccess.getCompoundProtocolClassAccess().getLeftCurlyBracketKeyword_3()); 
 
             }
@@ -27523,12 +27534,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9633:1: ( rule__CompoundProtocolClass__Group__4__Impl rule__CompoundProtocolClass__Group__5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9634:2: rule__CompoundProtocolClass__Group__4__Impl rule__CompoundProtocolClass__Group__5
             {
-            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__4__Impl_in_rule__CompoundProtocolClass__Group__420008);
+            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__4__Impl_in_rule__CompoundProtocolClass__Group__420009);
             rule__CompoundProtocolClass__Group__4__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__5_in_rule__CompoundProtocolClass__Group__420011);
+            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__5_in_rule__CompoundProtocolClass__Group__420012);
             rule__CompoundProtocolClass__Group__5();
 
             state._fsp--;
@@ -27566,21 +27577,21 @@
             {
              before(grammarAccess.getCompoundProtocolClassAccess().getAnnotationsAssignment_4()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9648:1: ( rule__CompoundProtocolClass__AnnotationsAssignment_4 )*
-            loop101:
+            loop102:
             do {
-                int alt101=2;
-                int LA101_0 = input.LA(1);
+                int alt102=2;
+                int LA102_0 = input.LA(1);
 
-                if ( (LA101_0==119) ) {
-                    alt101=1;
+                if ( (LA102_0==119) ) {
+                    alt102=1;
                 }
 
 
-                switch (alt101) {
+                switch (alt102) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9648:2: rule__CompoundProtocolClass__AnnotationsAssignment_4
             	    {
-            	    pushFollow(FOLLOW_rule__CompoundProtocolClass__AnnotationsAssignment_4_in_rule__CompoundProtocolClass__Group__4__Impl20038);
+            	    pushFollow(FOLLOW_rule__CompoundProtocolClass__AnnotationsAssignment_4_in_rule__CompoundProtocolClass__Group__4__Impl20039);
             	    rule__CompoundProtocolClass__AnnotationsAssignment_4();
 
             	    state._fsp--;
@@ -27590,7 +27601,7 @@
             	    break;
 
             	default :
-            	    break loop101;
+            	    break loop102;
                 }
             } while (true);
 
@@ -27626,12 +27637,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9662:1: ( rule__CompoundProtocolClass__Group__5__Impl rule__CompoundProtocolClass__Group__6 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9663:2: rule__CompoundProtocolClass__Group__5__Impl rule__CompoundProtocolClass__Group__6
             {
-            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__5__Impl_in_rule__CompoundProtocolClass__Group__520069);
+            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__5__Impl_in_rule__CompoundProtocolClass__Group__520070);
             rule__CompoundProtocolClass__Group__5__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__6_in_rule__CompoundProtocolClass__Group__520072);
+            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__6_in_rule__CompoundProtocolClass__Group__520073);
             rule__CompoundProtocolClass__Group__6();
 
             state._fsp--;
@@ -27669,21 +27680,21 @@
             {
              before(grammarAccess.getCompoundProtocolClassAccess().getSubProtocolsAssignment_5()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9677:1: ( rule__CompoundProtocolClass__SubProtocolsAssignment_5 )*
-            loop102:
+            loop103:
             do {
-                int alt102=2;
-                int LA102_0 = input.LA(1);
+                int alt103=2;
+                int LA103_0 = input.LA(1);
 
-                if ( (LA102_0==67) ) {
-                    alt102=1;
+                if ( (LA103_0==67) ) {
+                    alt103=1;
                 }
 
 
-                switch (alt102) {
+                switch (alt103) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9677:2: rule__CompoundProtocolClass__SubProtocolsAssignment_5
             	    {
-            	    pushFollow(FOLLOW_rule__CompoundProtocolClass__SubProtocolsAssignment_5_in_rule__CompoundProtocolClass__Group__5__Impl20099);
+            	    pushFollow(FOLLOW_rule__CompoundProtocolClass__SubProtocolsAssignment_5_in_rule__CompoundProtocolClass__Group__5__Impl20100);
             	    rule__CompoundProtocolClass__SubProtocolsAssignment_5();
 
             	    state._fsp--;
@@ -27693,7 +27704,7 @@
             	    break;
 
             	default :
-            	    break loop102;
+            	    break loop103;
                 }
             } while (true);
 
@@ -27729,7 +27740,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9691:1: ( rule__CompoundProtocolClass__Group__6__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9692:2: rule__CompoundProtocolClass__Group__6__Impl
             {
-            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__6__Impl_in_rule__CompoundProtocolClass__Group__620130);
+            pushFollow(FOLLOW_rule__CompoundProtocolClass__Group__6__Impl_in_rule__CompoundProtocolClass__Group__620131);
             rule__CompoundProtocolClass__Group__6__Impl();
 
             state._fsp--;
@@ -27766,7 +27777,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9704:1: '}'
             {
              before(grammarAccess.getCompoundProtocolClassAccess().getRightCurlyBracketKeyword_6()); 
-            match(input,41,FOLLOW_41_in_rule__CompoundProtocolClass__Group__6__Impl20158); 
+            match(input,41,FOLLOW_41_in_rule__CompoundProtocolClass__Group__6__Impl20159); 
              after(grammarAccess.getCompoundProtocolClassAccess().getRightCurlyBracketKeyword_6()); 
 
             }
@@ -27799,12 +27810,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9735:1: ( rule__SubProtocol__Group__0__Impl rule__SubProtocol__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9736:2: rule__SubProtocol__Group__0__Impl rule__SubProtocol__Group__1
             {
-            pushFollow(FOLLOW_rule__SubProtocol__Group__0__Impl_in_rule__SubProtocol__Group__020203);
+            pushFollow(FOLLOW_rule__SubProtocol__Group__0__Impl_in_rule__SubProtocol__Group__020204);
             rule__SubProtocol__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SubProtocol__Group__1_in_rule__SubProtocol__Group__020206);
+            pushFollow(FOLLOW_rule__SubProtocol__Group__1_in_rule__SubProtocol__Group__020207);
             rule__SubProtocol__Group__1();
 
             state._fsp--;
@@ -27841,7 +27852,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9749:1: 'SubProtocol'
             {
              before(grammarAccess.getSubProtocolAccess().getSubProtocolKeyword_0()); 
-            match(input,67,FOLLOW_67_in_rule__SubProtocol__Group__0__Impl20234); 
+            match(input,67,FOLLOW_67_in_rule__SubProtocol__Group__0__Impl20235); 
              after(grammarAccess.getSubProtocolAccess().getSubProtocolKeyword_0()); 
 
             }
@@ -27874,12 +27885,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9766:1: ( rule__SubProtocol__Group__1__Impl rule__SubProtocol__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9767:2: rule__SubProtocol__Group__1__Impl rule__SubProtocol__Group__2
             {
-            pushFollow(FOLLOW_rule__SubProtocol__Group__1__Impl_in_rule__SubProtocol__Group__120265);
+            pushFollow(FOLLOW_rule__SubProtocol__Group__1__Impl_in_rule__SubProtocol__Group__120266);
             rule__SubProtocol__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SubProtocol__Group__2_in_rule__SubProtocol__Group__120268);
+            pushFollow(FOLLOW_rule__SubProtocol__Group__2_in_rule__SubProtocol__Group__120269);
             rule__SubProtocol__Group__2();
 
             state._fsp--;
@@ -27919,7 +27930,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9781:1: ( rule__SubProtocol__NameAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9781:2: rule__SubProtocol__NameAssignment_1
             {
-            pushFollow(FOLLOW_rule__SubProtocol__NameAssignment_1_in_rule__SubProtocol__Group__1__Impl20295);
+            pushFollow(FOLLOW_rule__SubProtocol__NameAssignment_1_in_rule__SubProtocol__Group__1__Impl20296);
             rule__SubProtocol__NameAssignment_1();
 
             state._fsp--;
@@ -27959,12 +27970,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9795:1: ( rule__SubProtocol__Group__2__Impl rule__SubProtocol__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9796:2: rule__SubProtocol__Group__2__Impl rule__SubProtocol__Group__3
             {
-            pushFollow(FOLLOW_rule__SubProtocol__Group__2__Impl_in_rule__SubProtocol__Group__220325);
+            pushFollow(FOLLOW_rule__SubProtocol__Group__2__Impl_in_rule__SubProtocol__Group__220326);
             rule__SubProtocol__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SubProtocol__Group__3_in_rule__SubProtocol__Group__220328);
+            pushFollow(FOLLOW_rule__SubProtocol__Group__3_in_rule__SubProtocol__Group__220329);
             rule__SubProtocol__Group__3();
 
             state._fsp--;
@@ -28001,7 +28012,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9809:1: ':'
             {
              before(grammarAccess.getSubProtocolAccess().getColonKeyword_2()); 
-            match(input,42,FOLLOW_42_in_rule__SubProtocol__Group__2__Impl20356); 
+            match(input,42,FOLLOW_42_in_rule__SubProtocol__Group__2__Impl20357); 
              after(grammarAccess.getSubProtocolAccess().getColonKeyword_2()); 
 
             }
@@ -28034,7 +28045,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9826:1: ( rule__SubProtocol__Group__3__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9827:2: rule__SubProtocol__Group__3__Impl
             {
-            pushFollow(FOLLOW_rule__SubProtocol__Group__3__Impl_in_rule__SubProtocol__Group__320387);
+            pushFollow(FOLLOW_rule__SubProtocol__Group__3__Impl_in_rule__SubProtocol__Group__320388);
             rule__SubProtocol__Group__3__Impl();
 
             state._fsp--;
@@ -28074,7 +28085,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9840:1: ( rule__SubProtocol__ProtocolAssignment_3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9840:2: rule__SubProtocol__ProtocolAssignment_3
             {
-            pushFollow(FOLLOW_rule__SubProtocol__ProtocolAssignment_3_in_rule__SubProtocol__Group__3__Impl20414);
+            pushFollow(FOLLOW_rule__SubProtocol__ProtocolAssignment_3_in_rule__SubProtocol__Group__3__Impl20415);
             rule__SubProtocol__ProtocolAssignment_3();
 
             state._fsp--;
@@ -28114,12 +28125,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9862:1: ( rule__Message__Group__0__Impl rule__Message__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9863:2: rule__Message__Group__0__Impl rule__Message__Group__1
             {
-            pushFollow(FOLLOW_rule__Message__Group__0__Impl_in_rule__Message__Group__020452);
+            pushFollow(FOLLOW_rule__Message__Group__0__Impl_in_rule__Message__Group__020453);
             rule__Message__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Message__Group__1_in_rule__Message__Group__020455);
+            pushFollow(FOLLOW_rule__Message__Group__1_in_rule__Message__Group__020456);
             rule__Message__Group__1();
 
             state._fsp--;
@@ -28157,17 +28168,17 @@
             {
              before(grammarAccess.getMessageAccess().getPrivAssignment_0()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9877:1: ( rule__Message__PrivAssignment_0 )?
-            int alt103=2;
-            int LA103_0 = input.LA(1);
+            int alt104=2;
+            int LA104_0 = input.LA(1);
 
-            if ( (LA103_0==127) ) {
-                alt103=1;
+            if ( (LA104_0==127) ) {
+                alt104=1;
             }
-            switch (alt103) {
+            switch (alt104) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9877:2: rule__Message__PrivAssignment_0
                     {
-                    pushFollow(FOLLOW_rule__Message__PrivAssignment_0_in_rule__Message__Group__0__Impl20482);
+                    pushFollow(FOLLOW_rule__Message__PrivAssignment_0_in_rule__Message__Group__0__Impl20483);
                     rule__Message__PrivAssignment_0();
 
                     state._fsp--;
@@ -28210,12 +28221,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9891:1: ( rule__Message__Group__1__Impl rule__Message__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9892:2: rule__Message__Group__1__Impl rule__Message__Group__2
             {
-            pushFollow(FOLLOW_rule__Message__Group__1__Impl_in_rule__Message__Group__120513);
+            pushFollow(FOLLOW_rule__Message__Group__1__Impl_in_rule__Message__Group__120514);
             rule__Message__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Message__Group__2_in_rule__Message__Group__120516);
+            pushFollow(FOLLOW_rule__Message__Group__2_in_rule__Message__Group__120517);
             rule__Message__Group__2();
 
             state._fsp--;
@@ -28252,7 +28263,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9905:1: 'Message'
             {
              before(grammarAccess.getMessageAccess().getMessageKeyword_1()); 
-            match(input,68,FOLLOW_68_in_rule__Message__Group__1__Impl20544); 
+            match(input,68,FOLLOW_68_in_rule__Message__Group__1__Impl20545); 
              after(grammarAccess.getMessageAccess().getMessageKeyword_1()); 
 
             }
@@ -28285,12 +28296,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9922:1: ( rule__Message__Group__2__Impl rule__Message__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9923:2: rule__Message__Group__2__Impl rule__Message__Group__3
             {
-            pushFollow(FOLLOW_rule__Message__Group__2__Impl_in_rule__Message__Group__220575);
+            pushFollow(FOLLOW_rule__Message__Group__2__Impl_in_rule__Message__Group__220576);
             rule__Message__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Message__Group__3_in_rule__Message__Group__220578);
+            pushFollow(FOLLOW_rule__Message__Group__3_in_rule__Message__Group__220579);
             rule__Message__Group__3();
 
             state._fsp--;
@@ -28330,7 +28341,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9937:1: ( rule__Message__NameAssignment_2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9937:2: rule__Message__NameAssignment_2
             {
-            pushFollow(FOLLOW_rule__Message__NameAssignment_2_in_rule__Message__Group__2__Impl20605);
+            pushFollow(FOLLOW_rule__Message__NameAssignment_2_in_rule__Message__Group__2__Impl20606);
             rule__Message__NameAssignment_2();
 
             state._fsp--;
@@ -28370,12 +28381,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9951:1: ( rule__Message__Group__3__Impl rule__Message__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9952:2: rule__Message__Group__3__Impl rule__Message__Group__4
             {
-            pushFollow(FOLLOW_rule__Message__Group__3__Impl_in_rule__Message__Group__320635);
+            pushFollow(FOLLOW_rule__Message__Group__3__Impl_in_rule__Message__Group__320636);
             rule__Message__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Message__Group__4_in_rule__Message__Group__320638);
+            pushFollow(FOLLOW_rule__Message__Group__4_in_rule__Message__Group__320639);
             rule__Message__Group__4();
 
             state._fsp--;
@@ -28412,7 +28423,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9965:1: '('
             {
              before(grammarAccess.getMessageAccess().getLeftParenthesisKeyword_3()); 
-            match(input,46,FOLLOW_46_in_rule__Message__Group__3__Impl20666); 
+            match(input,46,FOLLOW_46_in_rule__Message__Group__3__Impl20667); 
              after(grammarAccess.getMessageAccess().getLeftParenthesisKeyword_3()); 
 
             }
@@ -28445,12 +28456,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9982:1: ( rule__Message__Group__4__Impl rule__Message__Group__5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9983:2: rule__Message__Group__4__Impl rule__Message__Group__5
             {
-            pushFollow(FOLLOW_rule__Message__Group__4__Impl_in_rule__Message__Group__420697);
+            pushFollow(FOLLOW_rule__Message__Group__4__Impl_in_rule__Message__Group__420698);
             rule__Message__Group__4__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Message__Group__5_in_rule__Message__Group__420700);
+            pushFollow(FOLLOW_rule__Message__Group__5_in_rule__Message__Group__420701);
             rule__Message__Group__5();
 
             state._fsp--;
@@ -28488,17 +28499,17 @@
             {
              before(grammarAccess.getMessageAccess().getDataAssignment_4()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9997:1: ( rule__Message__DataAssignment_4 )?
-            int alt104=2;
-            int LA104_0 = input.LA(1);
+            int alt105=2;
+            int LA105_0 = input.LA(1);
 
-            if ( (LA104_0==RULE_ID) ) {
-                alt104=1;
+            if ( (LA105_0==RULE_ID) ) {
+                alt105=1;
             }
-            switch (alt104) {
+            switch (alt105) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:9997:2: rule__Message__DataAssignment_4
                     {
-                    pushFollow(FOLLOW_rule__Message__DataAssignment_4_in_rule__Message__Group__4__Impl20727);
+                    pushFollow(FOLLOW_rule__Message__DataAssignment_4_in_rule__Message__Group__4__Impl20728);
                     rule__Message__DataAssignment_4();
 
                     state._fsp--;
@@ -28541,12 +28552,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10011:1: ( rule__Message__Group__5__Impl rule__Message__Group__6 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10012:2: rule__Message__Group__5__Impl rule__Message__Group__6
             {
-            pushFollow(FOLLOW_rule__Message__Group__5__Impl_in_rule__Message__Group__520758);
+            pushFollow(FOLLOW_rule__Message__Group__5__Impl_in_rule__Message__Group__520759);
             rule__Message__Group__5__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Message__Group__6_in_rule__Message__Group__520761);
+            pushFollow(FOLLOW_rule__Message__Group__6_in_rule__Message__Group__520762);
             rule__Message__Group__6();
 
             state._fsp--;
@@ -28583,7 +28594,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10025:1: ')'
             {
              before(grammarAccess.getMessageAccess().getRightParenthesisKeyword_5()); 
-            match(input,47,FOLLOW_47_in_rule__Message__Group__5__Impl20789); 
+            match(input,47,FOLLOW_47_in_rule__Message__Group__5__Impl20790); 
              after(grammarAccess.getMessageAccess().getRightParenthesisKeyword_5()); 
 
             }
@@ -28616,7 +28627,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10042:1: ( rule__Message__Group__6__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10043:2: rule__Message__Group__6__Impl
             {
-            pushFollow(FOLLOW_rule__Message__Group__6__Impl_in_rule__Message__Group__620820);
+            pushFollow(FOLLOW_rule__Message__Group__6__Impl_in_rule__Message__Group__620821);
             rule__Message__Group__6__Impl();
 
             state._fsp--;
@@ -28654,17 +28665,17 @@
             {
              before(grammarAccess.getMessageAccess().getDocuAssignment_6()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10056:1: ( rule__Message__DocuAssignment_6 )?
-            int alt105=2;
-            int LA105_0 = input.LA(1);
+            int alt106=2;
+            int LA106_0 = input.LA(1);
 
-            if ( (LA105_0==58) ) {
-                alt105=1;
+            if ( (LA106_0==58) ) {
+                alt106=1;
             }
-            switch (alt105) {
+            switch (alt106) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10056:2: rule__Message__DocuAssignment_6
                     {
-                    pushFollow(FOLLOW_rule__Message__DocuAssignment_6_in_rule__Message__Group__6__Impl20847);
+                    pushFollow(FOLLOW_rule__Message__DocuAssignment_6_in_rule__Message__Group__6__Impl20848);
                     rule__Message__DocuAssignment_6();
 
                     state._fsp--;
@@ -28707,12 +28718,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10084:1: ( rule__PortClass__Group__0__Impl rule__PortClass__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10085:2: rule__PortClass__Group__0__Impl rule__PortClass__Group__1
             {
-            pushFollow(FOLLOW_rule__PortClass__Group__0__Impl_in_rule__PortClass__Group__020892);
+            pushFollow(FOLLOW_rule__PortClass__Group__0__Impl_in_rule__PortClass__Group__020893);
             rule__PortClass__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__PortClass__Group__1_in_rule__PortClass__Group__020895);
+            pushFollow(FOLLOW_rule__PortClass__Group__1_in_rule__PortClass__Group__020896);
             rule__PortClass__Group__1();
 
             state._fsp--;
@@ -28782,12 +28793,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10115:1: ( rule__PortClass__Group__1__Impl rule__PortClass__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10116:2: rule__PortClass__Group__1__Impl rule__PortClass__Group__2
             {
-            pushFollow(FOLLOW_rule__PortClass__Group__1__Impl_in_rule__PortClass__Group__120953);
+            pushFollow(FOLLOW_rule__PortClass__Group__1__Impl_in_rule__PortClass__Group__120954);
             rule__PortClass__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__PortClass__Group__2_in_rule__PortClass__Group__120956);
+            pushFollow(FOLLOW_rule__PortClass__Group__2_in_rule__PortClass__Group__120957);
             rule__PortClass__Group__2();
 
             state._fsp--;
@@ -28824,7 +28835,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10129:1: '{'
             {
              before(grammarAccess.getPortClassAccess().getLeftCurlyBracketKeyword_1()); 
-            match(input,40,FOLLOW_40_in_rule__PortClass__Group__1__Impl20984); 
+            match(input,40,FOLLOW_40_in_rule__PortClass__Group__1__Impl20985); 
              after(grammarAccess.getPortClassAccess().getLeftCurlyBracketKeyword_1()); 
 
             }
@@ -28857,12 +28868,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10146:1: ( rule__PortClass__Group__2__Impl rule__PortClass__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10147:2: rule__PortClass__Group__2__Impl rule__PortClass__Group__3
             {
-            pushFollow(FOLLOW_rule__PortClass__Group__2__Impl_in_rule__PortClass__Group__221015);
+            pushFollow(FOLLOW_rule__PortClass__Group__2__Impl_in_rule__PortClass__Group__221016);
             rule__PortClass__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__PortClass__Group__3_in_rule__PortClass__Group__221018);
+            pushFollow(FOLLOW_rule__PortClass__Group__3_in_rule__PortClass__Group__221019);
             rule__PortClass__Group__3();
 
             state._fsp--;
@@ -28900,17 +28911,17 @@
             {
              before(grammarAccess.getPortClassAccess().getGroup_2()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10161:1: ( rule__PortClass__Group_2__0 )?
-            int alt106=2;
-            int LA106_0 = input.LA(1);
+            int alt107=2;
+            int LA107_0 = input.LA(1);
 
-            if ( (LA106_0==69) ) {
-                alt106=1;
+            if ( (LA107_0==69) ) {
+                alt107=1;
             }
-            switch (alt106) {
+            switch (alt107) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10161:2: rule__PortClass__Group_2__0
                     {
-                    pushFollow(FOLLOW_rule__PortClass__Group_2__0_in_rule__PortClass__Group__2__Impl21045);
+                    pushFollow(FOLLOW_rule__PortClass__Group_2__0_in_rule__PortClass__Group__2__Impl21046);
                     rule__PortClass__Group_2__0();
 
                     state._fsp--;
@@ -28953,12 +28964,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10175:1: ( rule__PortClass__Group__3__Impl rule__PortClass__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10176:2: rule__PortClass__Group__3__Impl rule__PortClass__Group__4
             {
-            pushFollow(FOLLOW_rule__PortClass__Group__3__Impl_in_rule__PortClass__Group__321076);
+            pushFollow(FOLLOW_rule__PortClass__Group__3__Impl_in_rule__PortClass__Group__321077);
             rule__PortClass__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__PortClass__Group__4_in_rule__PortClass__Group__321079);
+            pushFollow(FOLLOW_rule__PortClass__Group__4_in_rule__PortClass__Group__321080);
             rule__PortClass__Group__4();
 
             state._fsp--;
@@ -28996,21 +29007,21 @@
             {
              before(grammarAccess.getPortClassAccess().getAlternatives_3()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10190:1: ( rule__PortClass__Alternatives_3 )*
-            loop107:
+            loop108:
             do {
-                int alt107=2;
-                int LA107_0 = input.LA(1);
+                int alt108=2;
+                int LA108_0 = input.LA(1);
 
-                if ( (LA107_0==57||LA107_0==60||LA107_0==70) ) {
-                    alt107=1;
+                if ( (LA108_0==57||LA108_0==60||LA108_0==70) ) {
+                    alt108=1;
                 }
 
 
-                switch (alt107) {
+                switch (alt108) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10190:2: rule__PortClass__Alternatives_3
             	    {
-            	    pushFollow(FOLLOW_rule__PortClass__Alternatives_3_in_rule__PortClass__Group__3__Impl21106);
+            	    pushFollow(FOLLOW_rule__PortClass__Alternatives_3_in_rule__PortClass__Group__3__Impl21107);
             	    rule__PortClass__Alternatives_3();
 
             	    state._fsp--;
@@ -29020,7 +29031,7 @@
             	    break;
 
             	default :
-            	    break loop107;
+            	    break loop108;
                 }
             } while (true);
 
@@ -29056,7 +29067,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10204:1: ( rule__PortClass__Group__4__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10205:2: rule__PortClass__Group__4__Impl
             {
-            pushFollow(FOLLOW_rule__PortClass__Group__4__Impl_in_rule__PortClass__Group__421137);
+            pushFollow(FOLLOW_rule__PortClass__Group__4__Impl_in_rule__PortClass__Group__421138);
             rule__PortClass__Group__4__Impl();
 
             state._fsp--;
@@ -29093,7 +29104,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10217:1: '}'
             {
              before(grammarAccess.getPortClassAccess().getRightCurlyBracketKeyword_4()); 
-            match(input,41,FOLLOW_41_in_rule__PortClass__Group__4__Impl21165); 
+            match(input,41,FOLLOW_41_in_rule__PortClass__Group__4__Impl21166); 
              after(grammarAccess.getPortClassAccess().getRightCurlyBracketKeyword_4()); 
 
             }
@@ -29126,12 +29137,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10244:1: ( rule__PortClass__Group_2__0__Impl rule__PortClass__Group_2__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10245:2: rule__PortClass__Group_2__0__Impl rule__PortClass__Group_2__1
             {
-            pushFollow(FOLLOW_rule__PortClass__Group_2__0__Impl_in_rule__PortClass__Group_2__021206);
+            pushFollow(FOLLOW_rule__PortClass__Group_2__0__Impl_in_rule__PortClass__Group_2__021207);
             rule__PortClass__Group_2__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__PortClass__Group_2__1_in_rule__PortClass__Group_2__021209);
+            pushFollow(FOLLOW_rule__PortClass__Group_2__1_in_rule__PortClass__Group_2__021210);
             rule__PortClass__Group_2__1();
 
             state._fsp--;
@@ -29168,7 +29179,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10258:1: 'usercode'
             {
              before(grammarAccess.getPortClassAccess().getUsercodeKeyword_2_0()); 
-            match(input,69,FOLLOW_69_in_rule__PortClass__Group_2__0__Impl21237); 
+            match(input,69,FOLLOW_69_in_rule__PortClass__Group_2__0__Impl21238); 
              after(grammarAccess.getPortClassAccess().getUsercodeKeyword_2_0()); 
 
             }
@@ -29201,7 +29212,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10275:1: ( rule__PortClass__Group_2__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10276:2: rule__PortClass__Group_2__1__Impl
             {
-            pushFollow(FOLLOW_rule__PortClass__Group_2__1__Impl_in_rule__PortClass__Group_2__121268);
+            pushFollow(FOLLOW_rule__PortClass__Group_2__1__Impl_in_rule__PortClass__Group_2__121269);
             rule__PortClass__Group_2__1__Impl();
 
             state._fsp--;
@@ -29241,7 +29252,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10289:1: ( rule__PortClass__UserCodeAssignment_2_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10289:2: rule__PortClass__UserCodeAssignment_2_1
             {
-            pushFollow(FOLLOW_rule__PortClass__UserCodeAssignment_2_1_in_rule__PortClass__Group_2__1__Impl21295);
+            pushFollow(FOLLOW_rule__PortClass__UserCodeAssignment_2_1_in_rule__PortClass__Group_2__1__Impl21296);
             rule__PortClass__UserCodeAssignment_2_1();
 
             state._fsp--;
@@ -29281,12 +29292,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10307:1: ( rule__InMessageHandler__Group__0__Impl rule__InMessageHandler__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10308:2: rule__InMessageHandler__Group__0__Impl rule__InMessageHandler__Group__1
             {
-            pushFollow(FOLLOW_rule__InMessageHandler__Group__0__Impl_in_rule__InMessageHandler__Group__021329);
+            pushFollow(FOLLOW_rule__InMessageHandler__Group__0__Impl_in_rule__InMessageHandler__Group__021330);
             rule__InMessageHandler__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__InMessageHandler__Group__1_in_rule__InMessageHandler__Group__021332);
+            pushFollow(FOLLOW_rule__InMessageHandler__Group__1_in_rule__InMessageHandler__Group__021333);
             rule__InMessageHandler__Group__1();
 
             state._fsp--;
@@ -29323,7 +29334,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10321:1: 'handle'
             {
              before(grammarAccess.getInMessageHandlerAccess().getHandleKeyword_0()); 
-            match(input,70,FOLLOW_70_in_rule__InMessageHandler__Group__0__Impl21360); 
+            match(input,70,FOLLOW_70_in_rule__InMessageHandler__Group__0__Impl21361); 
              after(grammarAccess.getInMessageHandlerAccess().getHandleKeyword_0()); 
 
             }
@@ -29356,12 +29367,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10338:1: ( rule__InMessageHandler__Group__1__Impl rule__InMessageHandler__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10339:2: rule__InMessageHandler__Group__1__Impl rule__InMessageHandler__Group__2
             {
-            pushFollow(FOLLOW_rule__InMessageHandler__Group__1__Impl_in_rule__InMessageHandler__Group__121391);
+            pushFollow(FOLLOW_rule__InMessageHandler__Group__1__Impl_in_rule__InMessageHandler__Group__121392);
             rule__InMessageHandler__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__InMessageHandler__Group__2_in_rule__InMessageHandler__Group__121394);
+            pushFollow(FOLLOW_rule__InMessageHandler__Group__2_in_rule__InMessageHandler__Group__121395);
             rule__InMessageHandler__Group__2();
 
             state._fsp--;
@@ -29398,7 +29409,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10352:1: 'incoming'
             {
              before(grammarAccess.getInMessageHandlerAccess().getIncomingKeyword_1()); 
-            match(input,62,FOLLOW_62_in_rule__InMessageHandler__Group__1__Impl21422); 
+            match(input,62,FOLLOW_62_in_rule__InMessageHandler__Group__1__Impl21423); 
              after(grammarAccess.getInMessageHandlerAccess().getIncomingKeyword_1()); 
 
             }
@@ -29431,12 +29442,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10369:1: ( rule__InMessageHandler__Group__2__Impl rule__InMessageHandler__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10370:2: rule__InMessageHandler__Group__2__Impl rule__InMessageHandler__Group__3
             {
-            pushFollow(FOLLOW_rule__InMessageHandler__Group__2__Impl_in_rule__InMessageHandler__Group__221453);
+            pushFollow(FOLLOW_rule__InMessageHandler__Group__2__Impl_in_rule__InMessageHandler__Group__221454);
             rule__InMessageHandler__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__InMessageHandler__Group__3_in_rule__InMessageHandler__Group__221456);
+            pushFollow(FOLLOW_rule__InMessageHandler__Group__3_in_rule__InMessageHandler__Group__221457);
             rule__InMessageHandler__Group__3();
 
             state._fsp--;
@@ -29476,7 +29487,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10384:1: ( rule__InMessageHandler__MsgAssignment_2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10384:2: rule__InMessageHandler__MsgAssignment_2
             {
-            pushFollow(FOLLOW_rule__InMessageHandler__MsgAssignment_2_in_rule__InMessageHandler__Group__2__Impl21483);
+            pushFollow(FOLLOW_rule__InMessageHandler__MsgAssignment_2_in_rule__InMessageHandler__Group__2__Impl21484);
             rule__InMessageHandler__MsgAssignment_2();
 
             state._fsp--;
@@ -29516,7 +29527,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10398:1: ( rule__InMessageHandler__Group__3__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10399:2: rule__InMessageHandler__Group__3__Impl
             {
-            pushFollow(FOLLOW_rule__InMessageHandler__Group__3__Impl_in_rule__InMessageHandler__Group__321513);
+            pushFollow(FOLLOW_rule__InMessageHandler__Group__3__Impl_in_rule__InMessageHandler__Group__321514);
             rule__InMessageHandler__Group__3__Impl();
 
             state._fsp--;
@@ -29556,7 +29567,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10412:1: ( rule__InMessageHandler__DetailCodeAssignment_3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10412:2: rule__InMessageHandler__DetailCodeAssignment_3
             {
-            pushFollow(FOLLOW_rule__InMessageHandler__DetailCodeAssignment_3_in_rule__InMessageHandler__Group__3__Impl21540);
+            pushFollow(FOLLOW_rule__InMessageHandler__DetailCodeAssignment_3_in_rule__InMessageHandler__Group__3__Impl21541);
             rule__InMessageHandler__DetailCodeAssignment_3();
 
             state._fsp--;
@@ -29596,12 +29607,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10434:1: ( rule__OutMessageHandler__Group__0__Impl rule__OutMessageHandler__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10435:2: rule__OutMessageHandler__Group__0__Impl rule__OutMessageHandler__Group__1
             {
-            pushFollow(FOLLOW_rule__OutMessageHandler__Group__0__Impl_in_rule__OutMessageHandler__Group__021578);
+            pushFollow(FOLLOW_rule__OutMessageHandler__Group__0__Impl_in_rule__OutMessageHandler__Group__021579);
             rule__OutMessageHandler__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__OutMessageHandler__Group__1_in_rule__OutMessageHandler__Group__021581);
+            pushFollow(FOLLOW_rule__OutMessageHandler__Group__1_in_rule__OutMessageHandler__Group__021582);
             rule__OutMessageHandler__Group__1();
 
             state._fsp--;
@@ -29638,7 +29649,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10448:1: 'handle'
             {
              before(grammarAccess.getOutMessageHandlerAccess().getHandleKeyword_0()); 
-            match(input,70,FOLLOW_70_in_rule__OutMessageHandler__Group__0__Impl21609); 
+            match(input,70,FOLLOW_70_in_rule__OutMessageHandler__Group__0__Impl21610); 
              after(grammarAccess.getOutMessageHandlerAccess().getHandleKeyword_0()); 
 
             }
@@ -29671,12 +29682,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10465:1: ( rule__OutMessageHandler__Group__1__Impl rule__OutMessageHandler__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10466:2: rule__OutMessageHandler__Group__1__Impl rule__OutMessageHandler__Group__2
             {
-            pushFollow(FOLLOW_rule__OutMessageHandler__Group__1__Impl_in_rule__OutMessageHandler__Group__121640);
+            pushFollow(FOLLOW_rule__OutMessageHandler__Group__1__Impl_in_rule__OutMessageHandler__Group__121641);
             rule__OutMessageHandler__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__OutMessageHandler__Group__2_in_rule__OutMessageHandler__Group__121643);
+            pushFollow(FOLLOW_rule__OutMessageHandler__Group__2_in_rule__OutMessageHandler__Group__121644);
             rule__OutMessageHandler__Group__2();
 
             state._fsp--;
@@ -29713,7 +29724,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10479:1: 'outgoing'
             {
              before(grammarAccess.getOutMessageHandlerAccess().getOutgoingKeyword_1()); 
-            match(input,63,FOLLOW_63_in_rule__OutMessageHandler__Group__1__Impl21671); 
+            match(input,63,FOLLOW_63_in_rule__OutMessageHandler__Group__1__Impl21672); 
              after(grammarAccess.getOutMessageHandlerAccess().getOutgoingKeyword_1()); 
 
             }
@@ -29746,12 +29757,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10496:1: ( rule__OutMessageHandler__Group__2__Impl rule__OutMessageHandler__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10497:2: rule__OutMessageHandler__Group__2__Impl rule__OutMessageHandler__Group__3
             {
-            pushFollow(FOLLOW_rule__OutMessageHandler__Group__2__Impl_in_rule__OutMessageHandler__Group__221702);
+            pushFollow(FOLLOW_rule__OutMessageHandler__Group__2__Impl_in_rule__OutMessageHandler__Group__221703);
             rule__OutMessageHandler__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__OutMessageHandler__Group__3_in_rule__OutMessageHandler__Group__221705);
+            pushFollow(FOLLOW_rule__OutMessageHandler__Group__3_in_rule__OutMessageHandler__Group__221706);
             rule__OutMessageHandler__Group__3();
 
             state._fsp--;
@@ -29791,7 +29802,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10511:1: ( rule__OutMessageHandler__MsgAssignment_2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10511:2: rule__OutMessageHandler__MsgAssignment_2
             {
-            pushFollow(FOLLOW_rule__OutMessageHandler__MsgAssignment_2_in_rule__OutMessageHandler__Group__2__Impl21732);
+            pushFollow(FOLLOW_rule__OutMessageHandler__MsgAssignment_2_in_rule__OutMessageHandler__Group__2__Impl21733);
             rule__OutMessageHandler__MsgAssignment_2();
 
             state._fsp--;
@@ -29831,7 +29842,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10525:1: ( rule__OutMessageHandler__Group__3__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10526:2: rule__OutMessageHandler__Group__3__Impl
             {
-            pushFollow(FOLLOW_rule__OutMessageHandler__Group__3__Impl_in_rule__OutMessageHandler__Group__321762);
+            pushFollow(FOLLOW_rule__OutMessageHandler__Group__3__Impl_in_rule__OutMessageHandler__Group__321763);
             rule__OutMessageHandler__Group__3__Impl();
 
             state._fsp--;
@@ -29871,7 +29882,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10539:1: ( rule__OutMessageHandler__DetailCodeAssignment_3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10539:2: rule__OutMessageHandler__DetailCodeAssignment_3
             {
-            pushFollow(FOLLOW_rule__OutMessageHandler__DetailCodeAssignment_3_in_rule__OutMessageHandler__Group__3__Impl21789);
+            pushFollow(FOLLOW_rule__OutMessageHandler__DetailCodeAssignment_3_in_rule__OutMessageHandler__Group__3__Impl21790);
             rule__OutMessageHandler__DetailCodeAssignment_3();
 
             state._fsp--;
@@ -29911,12 +29922,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10561:1: ( rule__ActorClass__Group__0__Impl rule__ActorClass__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10562:2: rule__ActorClass__Group__0__Impl rule__ActorClass__Group__1
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group__0__Impl_in_rule__ActorClass__Group__021827);
+            pushFollow(FOLLOW_rule__ActorClass__Group__0__Impl_in_rule__ActorClass__Group__021828);
             rule__ActorClass__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group__1_in_rule__ActorClass__Group__021830);
+            pushFollow(FOLLOW_rule__ActorClass__Group__1_in_rule__ActorClass__Group__021831);
             rule__ActorClass__Group__1();
 
             state._fsp--;
@@ -29956,7 +29967,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10576:1: ( rule__ActorClass__UnorderedGroup_0 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10576:2: rule__ActorClass__UnorderedGroup_0
             {
-            pushFollow(FOLLOW_rule__ActorClass__UnorderedGroup_0_in_rule__ActorClass__Group__0__Impl21857);
+            pushFollow(FOLLOW_rule__ActorClass__UnorderedGroup_0_in_rule__ActorClass__Group__0__Impl21858);
             rule__ActorClass__UnorderedGroup_0();
 
             state._fsp--;
@@ -29996,12 +30007,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10590:1: ( rule__ActorClass__Group__1__Impl rule__ActorClass__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10591:2: rule__ActorClass__Group__1__Impl rule__ActorClass__Group__2
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group__1__Impl_in_rule__ActorClass__Group__121887);
+            pushFollow(FOLLOW_rule__ActorClass__Group__1__Impl_in_rule__ActorClass__Group__121888);
             rule__ActorClass__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group__2_in_rule__ActorClass__Group__121890);
+            pushFollow(FOLLOW_rule__ActorClass__Group__2_in_rule__ActorClass__Group__121891);
             rule__ActorClass__Group__2();
 
             state._fsp--;
@@ -30038,7 +30049,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10604:1: 'ActorClass'
             {
              before(grammarAccess.getActorClassAccess().getActorClassKeyword_1()); 
-            match(input,18,FOLLOW_18_in_rule__ActorClass__Group__1__Impl21918); 
+            match(input,18,FOLLOW_18_in_rule__ActorClass__Group__1__Impl21919); 
              after(grammarAccess.getActorClassAccess().getActorClassKeyword_1()); 
 
             }
@@ -30071,12 +30082,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10621:1: ( rule__ActorClass__Group__2__Impl rule__ActorClass__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10622:2: rule__ActorClass__Group__2__Impl rule__ActorClass__Group__3
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group__2__Impl_in_rule__ActorClass__Group__221949);
+            pushFollow(FOLLOW_rule__ActorClass__Group__2__Impl_in_rule__ActorClass__Group__221950);
             rule__ActorClass__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group__3_in_rule__ActorClass__Group__221952);
+            pushFollow(FOLLOW_rule__ActorClass__Group__3_in_rule__ActorClass__Group__221953);
             rule__ActorClass__Group__3();
 
             state._fsp--;
@@ -30116,7 +30127,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10636:1: ( rule__ActorClass__NameAssignment_2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10636:2: rule__ActorClass__NameAssignment_2
             {
-            pushFollow(FOLLOW_rule__ActorClass__NameAssignment_2_in_rule__ActorClass__Group__2__Impl21979);
+            pushFollow(FOLLOW_rule__ActorClass__NameAssignment_2_in_rule__ActorClass__Group__2__Impl21980);
             rule__ActorClass__NameAssignment_2();
 
             state._fsp--;
@@ -30156,12 +30167,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10650:1: ( rule__ActorClass__Group__3__Impl rule__ActorClass__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10651:2: rule__ActorClass__Group__3__Impl rule__ActorClass__Group__4
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group__3__Impl_in_rule__ActorClass__Group__322009);
+            pushFollow(FOLLOW_rule__ActorClass__Group__3__Impl_in_rule__ActorClass__Group__322010);
             rule__ActorClass__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group__4_in_rule__ActorClass__Group__322012);
+            pushFollow(FOLLOW_rule__ActorClass__Group__4_in_rule__ActorClass__Group__322013);
             rule__ActorClass__Group__4();
 
             state._fsp--;
@@ -30199,17 +30210,17 @@
             {
              before(grammarAccess.getActorClassAccess().getDocuAssignment_3()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10665:1: ( rule__ActorClass__DocuAssignment_3 )?
-            int alt108=2;
-            int LA108_0 = input.LA(1);
+            int alt109=2;
+            int LA109_0 = input.LA(1);
 
-            if ( (LA108_0==58) ) {
-                alt108=1;
+            if ( (LA109_0==58) ) {
+                alt109=1;
             }
-            switch (alt108) {
+            switch (alt109) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10665:2: rule__ActorClass__DocuAssignment_3
                     {
-                    pushFollow(FOLLOW_rule__ActorClass__DocuAssignment_3_in_rule__ActorClass__Group__3__Impl22039);
+                    pushFollow(FOLLOW_rule__ActorClass__DocuAssignment_3_in_rule__ActorClass__Group__3__Impl22040);
                     rule__ActorClass__DocuAssignment_3();
 
                     state._fsp--;
@@ -30252,12 +30263,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10679:1: ( rule__ActorClass__Group__4__Impl rule__ActorClass__Group__5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10680:2: rule__ActorClass__Group__4__Impl rule__ActorClass__Group__5
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group__4__Impl_in_rule__ActorClass__Group__422070);
+            pushFollow(FOLLOW_rule__ActorClass__Group__4__Impl_in_rule__ActorClass__Group__422071);
             rule__ActorClass__Group__4__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group__5_in_rule__ActorClass__Group__422073);
+            pushFollow(FOLLOW_rule__ActorClass__Group__5_in_rule__ActorClass__Group__422074);
             rule__ActorClass__Group__5();
 
             state._fsp--;
@@ -30295,17 +30306,17 @@
             {
              before(grammarAccess.getActorClassAccess().getGroup_4()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10694:1: ( rule__ActorClass__Group_4__0 )?
-            int alt109=2;
-            int LA109_0 = input.LA(1);
+            int alt110=2;
+            int LA110_0 = input.LA(1);
 
-            if ( (LA109_0==53) ) {
-                alt109=1;
+            if ( (LA110_0==53) ) {
+                alt110=1;
             }
-            switch (alt109) {
+            switch (alt110) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10694:2: rule__ActorClass__Group_4__0
                     {
-                    pushFollow(FOLLOW_rule__ActorClass__Group_4__0_in_rule__ActorClass__Group__4__Impl22100);
+                    pushFollow(FOLLOW_rule__ActorClass__Group_4__0_in_rule__ActorClass__Group__4__Impl22101);
                     rule__ActorClass__Group_4__0();
 
                     state._fsp--;
@@ -30348,12 +30359,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10708:1: ( rule__ActorClass__Group__5__Impl rule__ActorClass__Group__6 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10709:2: rule__ActorClass__Group__5__Impl rule__ActorClass__Group__6
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group__5__Impl_in_rule__ActorClass__Group__522131);
+            pushFollow(FOLLOW_rule__ActorClass__Group__5__Impl_in_rule__ActorClass__Group__522132);
             rule__ActorClass__Group__5__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group__6_in_rule__ActorClass__Group__522134);
+            pushFollow(FOLLOW_rule__ActorClass__Group__6_in_rule__ActorClass__Group__522135);
             rule__ActorClass__Group__6();
 
             state._fsp--;
@@ -30390,7 +30401,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10722:1: '{'
             {
              before(grammarAccess.getActorClassAccess().getLeftCurlyBracketKeyword_5()); 
-            match(input,40,FOLLOW_40_in_rule__ActorClass__Group__5__Impl22162); 
+            match(input,40,FOLLOW_40_in_rule__ActorClass__Group__5__Impl22163); 
              after(grammarAccess.getActorClassAccess().getLeftCurlyBracketKeyword_5()); 
 
             }
@@ -30423,12 +30434,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10739:1: ( rule__ActorClass__Group__6__Impl rule__ActorClass__Group__7 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10740:2: rule__ActorClass__Group__6__Impl rule__ActorClass__Group__7
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group__6__Impl_in_rule__ActorClass__Group__622193);
+            pushFollow(FOLLOW_rule__ActorClass__Group__6__Impl_in_rule__ActorClass__Group__622194);
             rule__ActorClass__Group__6__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group__7_in_rule__ActorClass__Group__622196);
+            pushFollow(FOLLOW_rule__ActorClass__Group__7_in_rule__ActorClass__Group__622197);
             rule__ActorClass__Group__7();
 
             state._fsp--;
@@ -30466,21 +30477,21 @@
             {
              before(grammarAccess.getActorClassAccess().getAnnotationsAssignment_6()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10754:1: ( rule__ActorClass__AnnotationsAssignment_6 )*
-            loop110:
+            loop111:
             do {
-                int alt110=2;
-                int LA110_0 = input.LA(1);
+                int alt111=2;
+                int LA111_0 = input.LA(1);
 
-                if ( (LA110_0==119) ) {
-                    alt110=1;
+                if ( (LA111_0==119) ) {
+                    alt111=1;
                 }
 
 
-                switch (alt110) {
+                switch (alt111) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10754:2: rule__ActorClass__AnnotationsAssignment_6
             	    {
-            	    pushFollow(FOLLOW_rule__ActorClass__AnnotationsAssignment_6_in_rule__ActorClass__Group__6__Impl22223);
+            	    pushFollow(FOLLOW_rule__ActorClass__AnnotationsAssignment_6_in_rule__ActorClass__Group__6__Impl22224);
             	    rule__ActorClass__AnnotationsAssignment_6();
 
             	    state._fsp--;
@@ -30490,7 +30501,7 @@
             	    break;
 
             	default :
-            	    break loop110;
+            	    break loop111;
                 }
             } while (true);
 
@@ -30526,12 +30537,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10768:1: ( rule__ActorClass__Group__7__Impl rule__ActorClass__Group__8 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10769:2: rule__ActorClass__Group__7__Impl rule__ActorClass__Group__8
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group__7__Impl_in_rule__ActorClass__Group__722254);
+            pushFollow(FOLLOW_rule__ActorClass__Group__7__Impl_in_rule__ActorClass__Group__722255);
             rule__ActorClass__Group__7__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group__8_in_rule__ActorClass__Group__722257);
+            pushFollow(FOLLOW_rule__ActorClass__Group__8_in_rule__ActorClass__Group__722258);
             rule__ActorClass__Group__8();
 
             state._fsp--;
@@ -30569,17 +30580,17 @@
             {
              before(grammarAccess.getActorClassAccess().getGroup_7()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10783:1: ( rule__ActorClass__Group_7__0 )?
-            int alt111=2;
-            int LA111_0 = input.LA(1);
+            int alt112=2;
+            int LA112_0 = input.LA(1);
 
-            if ( (LA111_0==71) ) {
-                alt111=1;
+            if ( (LA112_0==71) ) {
+                alt112=1;
             }
-            switch (alt111) {
+            switch (alt112) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10783:2: rule__ActorClass__Group_7__0
                     {
-                    pushFollow(FOLLOW_rule__ActorClass__Group_7__0_in_rule__ActorClass__Group__7__Impl22284);
+                    pushFollow(FOLLOW_rule__ActorClass__Group_7__0_in_rule__ActorClass__Group__7__Impl22285);
                     rule__ActorClass__Group_7__0();
 
                     state._fsp--;
@@ -30622,12 +30633,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10797:1: ( rule__ActorClass__Group__8__Impl rule__ActorClass__Group__9 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10798:2: rule__ActorClass__Group__8__Impl rule__ActorClass__Group__9
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group__8__Impl_in_rule__ActorClass__Group__822315);
+            pushFollow(FOLLOW_rule__ActorClass__Group__8__Impl_in_rule__ActorClass__Group__822316);
             rule__ActorClass__Group__8__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group__9_in_rule__ActorClass__Group__822318);
+            pushFollow(FOLLOW_rule__ActorClass__Group__9_in_rule__ActorClass__Group__822319);
             rule__ActorClass__Group__9();
 
             state._fsp--;
@@ -30665,17 +30676,17 @@
             {
              before(grammarAccess.getActorClassAccess().getGroup_8()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10812:1: ( rule__ActorClass__Group_8__0 )?
-            int alt112=2;
-            int LA112_0 = input.LA(1);
+            int alt113=2;
+            int LA113_0 = input.LA(1);
 
-            if ( (LA112_0==72) ) {
-                alt112=1;
+            if ( (LA113_0==72) ) {
+                alt113=1;
             }
-            switch (alt112) {
+            switch (alt113) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10812:2: rule__ActorClass__Group_8__0
                     {
-                    pushFollow(FOLLOW_rule__ActorClass__Group_8__0_in_rule__ActorClass__Group__8__Impl22345);
+                    pushFollow(FOLLOW_rule__ActorClass__Group_8__0_in_rule__ActorClass__Group__8__Impl22346);
                     rule__ActorClass__Group_8__0();
 
                     state._fsp--;
@@ -30718,12 +30729,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10826:1: ( rule__ActorClass__Group__9__Impl rule__ActorClass__Group__10 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10827:2: rule__ActorClass__Group__9__Impl rule__ActorClass__Group__10
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group__9__Impl_in_rule__ActorClass__Group__922376);
+            pushFollow(FOLLOW_rule__ActorClass__Group__9__Impl_in_rule__ActorClass__Group__922377);
             rule__ActorClass__Group__9__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group__10_in_rule__ActorClass__Group__922379);
+            pushFollow(FOLLOW_rule__ActorClass__Group__10_in_rule__ActorClass__Group__922380);
             rule__ActorClass__Group__10();
 
             state._fsp--;
@@ -30761,17 +30772,17 @@
             {
              before(grammarAccess.getActorClassAccess().getGroup_9()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10841:1: ( rule__ActorClass__Group_9__0 )?
-            int alt113=2;
-            int LA113_0 = input.LA(1);
+            int alt114=2;
+            int LA114_0 = input.LA(1);
 
-            if ( (LA113_0==73) ) {
-                alt113=1;
+            if ( (LA114_0==73) ) {
+                alt114=1;
             }
-            switch (alt113) {
+            switch (alt114) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10841:2: rule__ActorClass__Group_9__0
                     {
-                    pushFollow(FOLLOW_rule__ActorClass__Group_9__0_in_rule__ActorClass__Group__9__Impl22406);
+                    pushFollow(FOLLOW_rule__ActorClass__Group_9__0_in_rule__ActorClass__Group__9__Impl22407);
                     rule__ActorClass__Group_9__0();
 
                     state._fsp--;
@@ -30814,7 +30825,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10855:1: ( rule__ActorClass__Group__10__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10856:2: rule__ActorClass__Group__10__Impl
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group__10__Impl_in_rule__ActorClass__Group__1022437);
+            pushFollow(FOLLOW_rule__ActorClass__Group__10__Impl_in_rule__ActorClass__Group__1022438);
             rule__ActorClass__Group__10__Impl();
 
             state._fsp--;
@@ -30851,7 +30862,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10868:1: '}'
             {
              before(grammarAccess.getActorClassAccess().getRightCurlyBracketKeyword_10()); 
-            match(input,41,FOLLOW_41_in_rule__ActorClass__Group__10__Impl22465); 
+            match(input,41,FOLLOW_41_in_rule__ActorClass__Group__10__Impl22466); 
              after(grammarAccess.getActorClassAccess().getRightCurlyBracketKeyword_10()); 
 
             }
@@ -30884,12 +30895,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10907:1: ( rule__ActorClass__Group_4__0__Impl rule__ActorClass__Group_4__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10908:2: rule__ActorClass__Group_4__0__Impl rule__ActorClass__Group_4__1
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_4__0__Impl_in_rule__ActorClass__Group_4__022518);
+            pushFollow(FOLLOW_rule__ActorClass__Group_4__0__Impl_in_rule__ActorClass__Group_4__022519);
             rule__ActorClass__Group_4__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group_4__1_in_rule__ActorClass__Group_4__022521);
+            pushFollow(FOLLOW_rule__ActorClass__Group_4__1_in_rule__ActorClass__Group_4__022522);
             rule__ActorClass__Group_4__1();
 
             state._fsp--;
@@ -30926,7 +30937,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10921:1: 'extends'
             {
              before(grammarAccess.getActorClassAccess().getExtendsKeyword_4_0()); 
-            match(input,53,FOLLOW_53_in_rule__ActorClass__Group_4__0__Impl22549); 
+            match(input,53,FOLLOW_53_in_rule__ActorClass__Group_4__0__Impl22550); 
              after(grammarAccess.getActorClassAccess().getExtendsKeyword_4_0()); 
 
             }
@@ -30959,7 +30970,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10938:1: ( rule__ActorClass__Group_4__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10939:2: rule__ActorClass__Group_4__1__Impl
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_4__1__Impl_in_rule__ActorClass__Group_4__122580);
+            pushFollow(FOLLOW_rule__ActorClass__Group_4__1__Impl_in_rule__ActorClass__Group_4__122581);
             rule__ActorClass__Group_4__1__Impl();
 
             state._fsp--;
@@ -30999,7 +31010,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10952:1: ( rule__ActorClass__BaseAssignment_4_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10952:2: rule__ActorClass__BaseAssignment_4_1
             {
-            pushFollow(FOLLOW_rule__ActorClass__BaseAssignment_4_1_in_rule__ActorClass__Group_4__1__Impl22607);
+            pushFollow(FOLLOW_rule__ActorClass__BaseAssignment_4_1_in_rule__ActorClass__Group_4__1__Impl22608);
             rule__ActorClass__BaseAssignment_4_1();
 
             state._fsp--;
@@ -31039,12 +31050,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10970:1: ( rule__ActorClass__Group_7__0__Impl rule__ActorClass__Group_7__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10971:2: rule__ActorClass__Group_7__0__Impl rule__ActorClass__Group_7__1
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_7__0__Impl_in_rule__ActorClass__Group_7__022641);
+            pushFollow(FOLLOW_rule__ActorClass__Group_7__0__Impl_in_rule__ActorClass__Group_7__022642);
             rule__ActorClass__Group_7__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group_7__1_in_rule__ActorClass__Group_7__022644);
+            pushFollow(FOLLOW_rule__ActorClass__Group_7__1_in_rule__ActorClass__Group_7__022645);
             rule__ActorClass__Group_7__1();
 
             state._fsp--;
@@ -31081,7 +31092,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:10984:1: 'Interface'
             {
              before(grammarAccess.getActorClassAccess().getInterfaceKeyword_7_0()); 
-            match(input,71,FOLLOW_71_in_rule__ActorClass__Group_7__0__Impl22672); 
+            match(input,71,FOLLOW_71_in_rule__ActorClass__Group_7__0__Impl22673); 
              after(grammarAccess.getActorClassAccess().getInterfaceKeyword_7_0()); 
 
             }
@@ -31114,12 +31125,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11001:1: ( rule__ActorClass__Group_7__1__Impl rule__ActorClass__Group_7__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11002:2: rule__ActorClass__Group_7__1__Impl rule__ActorClass__Group_7__2
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_7__1__Impl_in_rule__ActorClass__Group_7__122703);
+            pushFollow(FOLLOW_rule__ActorClass__Group_7__1__Impl_in_rule__ActorClass__Group_7__122704);
             rule__ActorClass__Group_7__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group_7__2_in_rule__ActorClass__Group_7__122706);
+            pushFollow(FOLLOW_rule__ActorClass__Group_7__2_in_rule__ActorClass__Group_7__122707);
             rule__ActorClass__Group_7__2();
 
             state._fsp--;
@@ -31156,7 +31167,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11015:1: '{'
             {
              before(grammarAccess.getActorClassAccess().getLeftCurlyBracketKeyword_7_1()); 
-            match(input,40,FOLLOW_40_in_rule__ActorClass__Group_7__1__Impl22734); 
+            match(input,40,FOLLOW_40_in_rule__ActorClass__Group_7__1__Impl22735); 
              after(grammarAccess.getActorClassAccess().getLeftCurlyBracketKeyword_7_1()); 
 
             }
@@ -31189,12 +31200,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11032:1: ( rule__ActorClass__Group_7__2__Impl rule__ActorClass__Group_7__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11033:2: rule__ActorClass__Group_7__2__Impl rule__ActorClass__Group_7__3
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_7__2__Impl_in_rule__ActorClass__Group_7__222765);
+            pushFollow(FOLLOW_rule__ActorClass__Group_7__2__Impl_in_rule__ActorClass__Group_7__222766);
             rule__ActorClass__Group_7__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group_7__3_in_rule__ActorClass__Group_7__222768);
+            pushFollow(FOLLOW_rule__ActorClass__Group_7__3_in_rule__ActorClass__Group_7__222769);
             rule__ActorClass__Group_7__3();
 
             state._fsp--;
@@ -31232,21 +31243,21 @@
             {
              before(grammarAccess.getActorClassAccess().getAlternatives_7_2()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11047:1: ( rule__ActorClass__Alternatives_7_2 )*
-            loop114:
+            loop115:
             do {
-                int alt114=2;
-                int LA114_0 = input.LA(1);
+                int alt115=2;
+                int LA115_0 = input.LA(1);
 
-                if ( (LA114_0==66||LA114_0==74||LA114_0==77) ) {
-                    alt114=1;
+                if ( (LA115_0==66||LA115_0==74||LA115_0==77) ) {
+                    alt115=1;
                 }
 
 
-                switch (alt114) {
+                switch (alt115) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11047:2: rule__ActorClass__Alternatives_7_2
             	    {
-            	    pushFollow(FOLLOW_rule__ActorClass__Alternatives_7_2_in_rule__ActorClass__Group_7__2__Impl22795);
+            	    pushFollow(FOLLOW_rule__ActorClass__Alternatives_7_2_in_rule__ActorClass__Group_7__2__Impl22796);
             	    rule__ActorClass__Alternatives_7_2();
 
             	    state._fsp--;
@@ -31256,7 +31267,7 @@
             	    break;
 
             	default :
-            	    break loop114;
+            	    break loop115;
                 }
             } while (true);
 
@@ -31292,7 +31303,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11061:1: ( rule__ActorClass__Group_7__3__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11062:2: rule__ActorClass__Group_7__3__Impl
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_7__3__Impl_in_rule__ActorClass__Group_7__322826);
+            pushFollow(FOLLOW_rule__ActorClass__Group_7__3__Impl_in_rule__ActorClass__Group_7__322827);
             rule__ActorClass__Group_7__3__Impl();
 
             state._fsp--;
@@ -31329,7 +31340,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11074:1: '}'
             {
              before(grammarAccess.getActorClassAccess().getRightCurlyBracketKeyword_7_3()); 
-            match(input,41,FOLLOW_41_in_rule__ActorClass__Group_7__3__Impl22854); 
+            match(input,41,FOLLOW_41_in_rule__ActorClass__Group_7__3__Impl22855); 
              after(grammarAccess.getActorClassAccess().getRightCurlyBracketKeyword_7_3()); 
 
             }
@@ -31362,12 +31373,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11099:1: ( rule__ActorClass__Group_8__0__Impl rule__ActorClass__Group_8__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11100:2: rule__ActorClass__Group_8__0__Impl rule__ActorClass__Group_8__1
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_8__0__Impl_in_rule__ActorClass__Group_8__022893);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8__0__Impl_in_rule__ActorClass__Group_8__022894);
             rule__ActorClass__Group_8__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group_8__1_in_rule__ActorClass__Group_8__022896);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8__1_in_rule__ActorClass__Group_8__022897);
             rule__ActorClass__Group_8__1();
 
             state._fsp--;
@@ -31404,7 +31415,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11113:1: 'Structure'
             {
              before(grammarAccess.getActorClassAccess().getStructureKeyword_8_0()); 
-            match(input,72,FOLLOW_72_in_rule__ActorClass__Group_8__0__Impl22924); 
+            match(input,72,FOLLOW_72_in_rule__ActorClass__Group_8__0__Impl22925); 
              after(grammarAccess.getActorClassAccess().getStructureKeyword_8_0()); 
 
             }
@@ -31437,12 +31448,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11130:1: ( rule__ActorClass__Group_8__1__Impl rule__ActorClass__Group_8__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11131:2: rule__ActorClass__Group_8__1__Impl rule__ActorClass__Group_8__2
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_8__1__Impl_in_rule__ActorClass__Group_8__122955);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8__1__Impl_in_rule__ActorClass__Group_8__122956);
             rule__ActorClass__Group_8__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group_8__2_in_rule__ActorClass__Group_8__122958);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8__2_in_rule__ActorClass__Group_8__122959);
             rule__ActorClass__Group_8__2();
 
             state._fsp--;
@@ -31480,17 +31491,17 @@
             {
              before(grammarAccess.getActorClassAccess().getStructureDocuAssignment_8_1()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11145:1: ( rule__ActorClass__StructureDocuAssignment_8_1 )?
-            int alt115=2;
-            int LA115_0 = input.LA(1);
+            int alt116=2;
+            int LA116_0 = input.LA(1);
 
-            if ( (LA115_0==58) ) {
-                alt115=1;
+            if ( (LA116_0==58) ) {
+                alt116=1;
             }
-            switch (alt115) {
+            switch (alt116) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11145:2: rule__ActorClass__StructureDocuAssignment_8_1
                     {
-                    pushFollow(FOLLOW_rule__ActorClass__StructureDocuAssignment_8_1_in_rule__ActorClass__Group_8__1__Impl22985);
+                    pushFollow(FOLLOW_rule__ActorClass__StructureDocuAssignment_8_1_in_rule__ActorClass__Group_8__1__Impl22986);
                     rule__ActorClass__StructureDocuAssignment_8_1();
 
                     state._fsp--;
@@ -31533,12 +31544,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11159:1: ( rule__ActorClass__Group_8__2__Impl rule__ActorClass__Group_8__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11160:2: rule__ActorClass__Group_8__2__Impl rule__ActorClass__Group_8__3
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_8__2__Impl_in_rule__ActorClass__Group_8__223016);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8__2__Impl_in_rule__ActorClass__Group_8__223017);
             rule__ActorClass__Group_8__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group_8__3_in_rule__ActorClass__Group_8__223019);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8__3_in_rule__ActorClass__Group_8__223020);
             rule__ActorClass__Group_8__3();
 
             state._fsp--;
@@ -31575,7 +31586,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11173:1: '{'
             {
              before(grammarAccess.getActorClassAccess().getLeftCurlyBracketKeyword_8_2()); 
-            match(input,40,FOLLOW_40_in_rule__ActorClass__Group_8__2__Impl23047); 
+            match(input,40,FOLLOW_40_in_rule__ActorClass__Group_8__2__Impl23048); 
              after(grammarAccess.getActorClassAccess().getLeftCurlyBracketKeyword_8_2()); 
 
             }
@@ -31608,12 +31619,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11190:1: ( rule__ActorClass__Group_8__3__Impl rule__ActorClass__Group_8__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11191:2: rule__ActorClass__Group_8__3__Impl rule__ActorClass__Group_8__4
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_8__3__Impl_in_rule__ActorClass__Group_8__323078);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8__3__Impl_in_rule__ActorClass__Group_8__323079);
             rule__ActorClass__Group_8__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group_8__4_in_rule__ActorClass__Group_8__323081);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8__4_in_rule__ActorClass__Group_8__323082);
             rule__ActorClass__Group_8__4();
 
             state._fsp--;
@@ -31651,17 +31662,17 @@
             {
              before(grammarAccess.getActorClassAccess().getGroup_8_3()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11205:1: ( rule__ActorClass__Group_8_3__0 )?
-            int alt116=2;
-            int LA116_0 = input.LA(1);
+            int alt117=2;
+            int LA117_0 = input.LA(1);
 
-            if ( (LA116_0==54) ) {
-                alt116=1;
+            if ( (LA117_0==54) ) {
+                alt117=1;
             }
-            switch (alt116) {
+            switch (alt117) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11205:2: rule__ActorClass__Group_8_3__0
                     {
-                    pushFollow(FOLLOW_rule__ActorClass__Group_8_3__0_in_rule__ActorClass__Group_8__3__Impl23108);
+                    pushFollow(FOLLOW_rule__ActorClass__Group_8_3__0_in_rule__ActorClass__Group_8__3__Impl23109);
                     rule__ActorClass__Group_8_3__0();
 
                     state._fsp--;
@@ -31704,12 +31715,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11219:1: ( rule__ActorClass__Group_8__4__Impl rule__ActorClass__Group_8__5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11220:2: rule__ActorClass__Group_8__4__Impl rule__ActorClass__Group_8__5
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_8__4__Impl_in_rule__ActorClass__Group_8__423139);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8__4__Impl_in_rule__ActorClass__Group_8__423140);
             rule__ActorClass__Group_8__4__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group_8__5_in_rule__ActorClass__Group_8__423142);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8__5_in_rule__ActorClass__Group_8__423143);
             rule__ActorClass__Group_8__5();
 
             state._fsp--;
@@ -31747,17 +31758,17 @@
             {
              before(grammarAccess.getActorClassAccess().getGroup_8_4()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11234:1: ( rule__ActorClass__Group_8_4__0 )?
-            int alt117=2;
-            int LA117_0 = input.LA(1);
+            int alt118=2;
+            int LA118_0 = input.LA(1);
 
-            if ( (LA117_0==55) ) {
-                alt117=1;
+            if ( (LA118_0==55) ) {
+                alt118=1;
             }
-            switch (alt117) {
+            switch (alt118) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11234:2: rule__ActorClass__Group_8_4__0
                     {
-                    pushFollow(FOLLOW_rule__ActorClass__Group_8_4__0_in_rule__ActorClass__Group_8__4__Impl23169);
+                    pushFollow(FOLLOW_rule__ActorClass__Group_8_4__0_in_rule__ActorClass__Group_8__4__Impl23170);
                     rule__ActorClass__Group_8_4__0();
 
                     state._fsp--;
@@ -31800,12 +31811,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11248:1: ( rule__ActorClass__Group_8__5__Impl rule__ActorClass__Group_8__6 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11249:2: rule__ActorClass__Group_8__5__Impl rule__ActorClass__Group_8__6
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_8__5__Impl_in_rule__ActorClass__Group_8__523200);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8__5__Impl_in_rule__ActorClass__Group_8__523201);
             rule__ActorClass__Group_8__5__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group_8__6_in_rule__ActorClass__Group_8__523203);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8__6_in_rule__ActorClass__Group_8__523204);
             rule__ActorClass__Group_8__6();
 
             state._fsp--;
@@ -31843,17 +31854,17 @@
             {
              before(grammarAccess.getActorClassAccess().getGroup_8_5()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11263:1: ( rule__ActorClass__Group_8_5__0 )?
-            int alt118=2;
-            int LA118_0 = input.LA(1);
+            int alt119=2;
+            int LA119_0 = input.LA(1);
 
-            if ( (LA118_0==56) ) {
-                alt118=1;
+            if ( (LA119_0==56) ) {
+                alt119=1;
             }
-            switch (alt118) {
+            switch (alt119) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11263:2: rule__ActorClass__Group_8_5__0
                     {
-                    pushFollow(FOLLOW_rule__ActorClass__Group_8_5__0_in_rule__ActorClass__Group_8__5__Impl23230);
+                    pushFollow(FOLLOW_rule__ActorClass__Group_8_5__0_in_rule__ActorClass__Group_8__5__Impl23231);
                     rule__ActorClass__Group_8_5__0();
 
                     state._fsp--;
@@ -31896,12 +31907,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11277:1: ( rule__ActorClass__Group_8__6__Impl rule__ActorClass__Group_8__7 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11278:2: rule__ActorClass__Group_8__6__Impl rule__ActorClass__Group_8__7
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_8__6__Impl_in_rule__ActorClass__Group_8__623261);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8__6__Impl_in_rule__ActorClass__Group_8__623262);
             rule__ActorClass__Group_8__6__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group_8__7_in_rule__ActorClass__Group_8__623264);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8__7_in_rule__ActorClass__Group_8__623265);
             rule__ActorClass__Group_8__7();
 
             state._fsp--;
@@ -31939,21 +31950,21 @@
             {
              before(grammarAccess.getActorClassAccess().getAlternatives_8_6()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11292:1: ( rule__ActorClass__Alternatives_8_6 )*
-            loop119:
+            loop120:
             do {
-                int alt119=2;
-                int LA119_0 = input.LA(1);
+                int alt120=2;
+                int LA120_0 = input.LA(1);
 
-                if ( ((LA119_0>=32 && LA119_0<=33)||LA119_0==57||LA119_0==66||(LA119_0>=74 && LA119_0<=76)||LA119_0==78||LA119_0==83||LA119_0==87||LA119_0==91) ) {
-                    alt119=1;
+                if ( ((LA120_0>=32 && LA120_0<=33)||LA120_0==57||LA120_0==66||(LA120_0>=74 && LA120_0<=76)||LA120_0==78||LA120_0==83||LA120_0==87||LA120_0==91) ) {
+                    alt120=1;
                 }
 
 
-                switch (alt119) {
+                switch (alt120) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11292:2: rule__ActorClass__Alternatives_8_6
             	    {
-            	    pushFollow(FOLLOW_rule__ActorClass__Alternatives_8_6_in_rule__ActorClass__Group_8__6__Impl23291);
+            	    pushFollow(FOLLOW_rule__ActorClass__Alternatives_8_6_in_rule__ActorClass__Group_8__6__Impl23292);
             	    rule__ActorClass__Alternatives_8_6();
 
             	    state._fsp--;
@@ -31963,7 +31974,7 @@
             	    break;
 
             	default :
-            	    break loop119;
+            	    break loop120;
                 }
             } while (true);
 
@@ -31999,7 +32010,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11306:1: ( rule__ActorClass__Group_8__7__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11307:2: rule__ActorClass__Group_8__7__Impl
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_8__7__Impl_in_rule__ActorClass__Group_8__723322);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8__7__Impl_in_rule__ActorClass__Group_8__723323);
             rule__ActorClass__Group_8__7__Impl();
 
             state._fsp--;
@@ -32036,7 +32047,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11319:1: '}'
             {
              before(grammarAccess.getActorClassAccess().getRightCurlyBracketKeyword_8_7()); 
-            match(input,41,FOLLOW_41_in_rule__ActorClass__Group_8__7__Impl23350); 
+            match(input,41,FOLLOW_41_in_rule__ActorClass__Group_8__7__Impl23351); 
              after(grammarAccess.getActorClassAccess().getRightCurlyBracketKeyword_8_7()); 
 
             }
@@ -32069,12 +32080,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11352:1: ( rule__ActorClass__Group_8_3__0__Impl rule__ActorClass__Group_8_3__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11353:2: rule__ActorClass__Group_8_3__0__Impl rule__ActorClass__Group_8_3__1
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_8_3__0__Impl_in_rule__ActorClass__Group_8_3__023397);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8_3__0__Impl_in_rule__ActorClass__Group_8_3__023398);
             rule__ActorClass__Group_8_3__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group_8_3__1_in_rule__ActorClass__Group_8_3__023400);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8_3__1_in_rule__ActorClass__Group_8_3__023401);
             rule__ActorClass__Group_8_3__1();
 
             state._fsp--;
@@ -32111,7 +32122,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11366:1: 'usercode1'
             {
              before(grammarAccess.getActorClassAccess().getUsercode1Keyword_8_3_0()); 
-            match(input,54,FOLLOW_54_in_rule__ActorClass__Group_8_3__0__Impl23428); 
+            match(input,54,FOLLOW_54_in_rule__ActorClass__Group_8_3__0__Impl23429); 
              after(grammarAccess.getActorClassAccess().getUsercode1Keyword_8_3_0()); 
 
             }
@@ -32144,7 +32155,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11383:1: ( rule__ActorClass__Group_8_3__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11384:2: rule__ActorClass__Group_8_3__1__Impl
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_8_3__1__Impl_in_rule__ActorClass__Group_8_3__123459);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8_3__1__Impl_in_rule__ActorClass__Group_8_3__123460);
             rule__ActorClass__Group_8_3__1__Impl();
 
             state._fsp--;
@@ -32184,7 +32195,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11397:1: ( rule__ActorClass__UserCode1Assignment_8_3_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11397:2: rule__ActorClass__UserCode1Assignment_8_3_1
             {
-            pushFollow(FOLLOW_rule__ActorClass__UserCode1Assignment_8_3_1_in_rule__ActorClass__Group_8_3__1__Impl23486);
+            pushFollow(FOLLOW_rule__ActorClass__UserCode1Assignment_8_3_1_in_rule__ActorClass__Group_8_3__1__Impl23487);
             rule__ActorClass__UserCode1Assignment_8_3_1();
 
             state._fsp--;
@@ -32224,12 +32235,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11415:1: ( rule__ActorClass__Group_8_4__0__Impl rule__ActorClass__Group_8_4__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11416:2: rule__ActorClass__Group_8_4__0__Impl rule__ActorClass__Group_8_4__1
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_8_4__0__Impl_in_rule__ActorClass__Group_8_4__023520);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8_4__0__Impl_in_rule__ActorClass__Group_8_4__023521);
             rule__ActorClass__Group_8_4__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group_8_4__1_in_rule__ActorClass__Group_8_4__023523);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8_4__1_in_rule__ActorClass__Group_8_4__023524);
             rule__ActorClass__Group_8_4__1();
 
             state._fsp--;
@@ -32266,7 +32277,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11429:1: 'usercode2'
             {
              before(grammarAccess.getActorClassAccess().getUsercode2Keyword_8_4_0()); 
-            match(input,55,FOLLOW_55_in_rule__ActorClass__Group_8_4__0__Impl23551); 
+            match(input,55,FOLLOW_55_in_rule__ActorClass__Group_8_4__0__Impl23552); 
              after(grammarAccess.getActorClassAccess().getUsercode2Keyword_8_4_0()); 
 
             }
@@ -32299,7 +32310,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11446:1: ( rule__ActorClass__Group_8_4__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11447:2: rule__ActorClass__Group_8_4__1__Impl
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_8_4__1__Impl_in_rule__ActorClass__Group_8_4__123582);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8_4__1__Impl_in_rule__ActorClass__Group_8_4__123583);
             rule__ActorClass__Group_8_4__1__Impl();
 
             state._fsp--;
@@ -32339,7 +32350,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11460:1: ( rule__ActorClass__UserCode2Assignment_8_4_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11460:2: rule__ActorClass__UserCode2Assignment_8_4_1
             {
-            pushFollow(FOLLOW_rule__ActorClass__UserCode2Assignment_8_4_1_in_rule__ActorClass__Group_8_4__1__Impl23609);
+            pushFollow(FOLLOW_rule__ActorClass__UserCode2Assignment_8_4_1_in_rule__ActorClass__Group_8_4__1__Impl23610);
             rule__ActorClass__UserCode2Assignment_8_4_1();
 
             state._fsp--;
@@ -32379,12 +32390,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11478:1: ( rule__ActorClass__Group_8_5__0__Impl rule__ActorClass__Group_8_5__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11479:2: rule__ActorClass__Group_8_5__0__Impl rule__ActorClass__Group_8_5__1
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_8_5__0__Impl_in_rule__ActorClass__Group_8_5__023643);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8_5__0__Impl_in_rule__ActorClass__Group_8_5__023644);
             rule__ActorClass__Group_8_5__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group_8_5__1_in_rule__ActorClass__Group_8_5__023646);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8_5__1_in_rule__ActorClass__Group_8_5__023647);
             rule__ActorClass__Group_8_5__1();
 
             state._fsp--;
@@ -32421,7 +32432,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11492:1: 'usercode3'
             {
              before(grammarAccess.getActorClassAccess().getUsercode3Keyword_8_5_0()); 
-            match(input,56,FOLLOW_56_in_rule__ActorClass__Group_8_5__0__Impl23674); 
+            match(input,56,FOLLOW_56_in_rule__ActorClass__Group_8_5__0__Impl23675); 
              after(grammarAccess.getActorClassAccess().getUsercode3Keyword_8_5_0()); 
 
             }
@@ -32454,7 +32465,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11509:1: ( rule__ActorClass__Group_8_5__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11510:2: rule__ActorClass__Group_8_5__1__Impl
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_8_5__1__Impl_in_rule__ActorClass__Group_8_5__123705);
+            pushFollow(FOLLOW_rule__ActorClass__Group_8_5__1__Impl_in_rule__ActorClass__Group_8_5__123706);
             rule__ActorClass__Group_8_5__1__Impl();
 
             state._fsp--;
@@ -32494,7 +32505,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11523:1: ( rule__ActorClass__UserCode3Assignment_8_5_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11523:2: rule__ActorClass__UserCode3Assignment_8_5_1
             {
-            pushFollow(FOLLOW_rule__ActorClass__UserCode3Assignment_8_5_1_in_rule__ActorClass__Group_8_5__1__Impl23732);
+            pushFollow(FOLLOW_rule__ActorClass__UserCode3Assignment_8_5_1_in_rule__ActorClass__Group_8_5__1__Impl23733);
             rule__ActorClass__UserCode3Assignment_8_5_1();
 
             state._fsp--;
@@ -32534,12 +32545,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11541:1: ( rule__ActorClass__Group_9__0__Impl rule__ActorClass__Group_9__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11542:2: rule__ActorClass__Group_9__0__Impl rule__ActorClass__Group_9__1
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_9__0__Impl_in_rule__ActorClass__Group_9__023766);
+            pushFollow(FOLLOW_rule__ActorClass__Group_9__0__Impl_in_rule__ActorClass__Group_9__023767);
             rule__ActorClass__Group_9__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group_9__1_in_rule__ActorClass__Group_9__023769);
+            pushFollow(FOLLOW_rule__ActorClass__Group_9__1_in_rule__ActorClass__Group_9__023770);
             rule__ActorClass__Group_9__1();
 
             state._fsp--;
@@ -32576,7 +32587,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11555:1: 'Behavior'
             {
              before(grammarAccess.getActorClassAccess().getBehaviorKeyword_9_0()); 
-            match(input,73,FOLLOW_73_in_rule__ActorClass__Group_9__0__Impl23797); 
+            match(input,73,FOLLOW_73_in_rule__ActorClass__Group_9__0__Impl23798); 
              after(grammarAccess.getActorClassAccess().getBehaviorKeyword_9_0()); 
 
             }
@@ -32609,12 +32620,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11572:1: ( rule__ActorClass__Group_9__1__Impl rule__ActorClass__Group_9__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11573:2: rule__ActorClass__Group_9__1__Impl rule__ActorClass__Group_9__2
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_9__1__Impl_in_rule__ActorClass__Group_9__123828);
+            pushFollow(FOLLOW_rule__ActorClass__Group_9__1__Impl_in_rule__ActorClass__Group_9__123829);
             rule__ActorClass__Group_9__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group_9__2_in_rule__ActorClass__Group_9__123831);
+            pushFollow(FOLLOW_rule__ActorClass__Group_9__2_in_rule__ActorClass__Group_9__123832);
             rule__ActorClass__Group_9__2();
 
             state._fsp--;
@@ -32652,17 +32663,17 @@
             {
              before(grammarAccess.getActorClassAccess().getBehaviorDocuAssignment_9_1()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11587:1: ( rule__ActorClass__BehaviorDocuAssignment_9_1 )?
-            int alt120=2;
-            int LA120_0 = input.LA(1);
+            int alt121=2;
+            int LA121_0 = input.LA(1);
 
-            if ( (LA120_0==58) ) {
-                alt120=1;
+            if ( (LA121_0==58) ) {
+                alt121=1;
             }
-            switch (alt120) {
+            switch (alt121) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11587:2: rule__ActorClass__BehaviorDocuAssignment_9_1
                     {
-                    pushFollow(FOLLOW_rule__ActorClass__BehaviorDocuAssignment_9_1_in_rule__ActorClass__Group_9__1__Impl23858);
+                    pushFollow(FOLLOW_rule__ActorClass__BehaviorDocuAssignment_9_1_in_rule__ActorClass__Group_9__1__Impl23859);
                     rule__ActorClass__BehaviorDocuAssignment_9_1();
 
                     state._fsp--;
@@ -32705,12 +32716,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11601:1: ( rule__ActorClass__Group_9__2__Impl rule__ActorClass__Group_9__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11602:2: rule__ActorClass__Group_9__2__Impl rule__ActorClass__Group_9__3
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_9__2__Impl_in_rule__ActorClass__Group_9__223889);
+            pushFollow(FOLLOW_rule__ActorClass__Group_9__2__Impl_in_rule__ActorClass__Group_9__223890);
             rule__ActorClass__Group_9__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group_9__3_in_rule__ActorClass__Group_9__223892);
+            pushFollow(FOLLOW_rule__ActorClass__Group_9__3_in_rule__ActorClass__Group_9__223893);
             rule__ActorClass__Group_9__3();
 
             state._fsp--;
@@ -32747,7 +32758,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11615:1: '{'
             {
              before(grammarAccess.getActorClassAccess().getLeftCurlyBracketKeyword_9_2()); 
-            match(input,40,FOLLOW_40_in_rule__ActorClass__Group_9__2__Impl23920); 
+            match(input,40,FOLLOW_40_in_rule__ActorClass__Group_9__2__Impl23921); 
              after(grammarAccess.getActorClassAccess().getLeftCurlyBracketKeyword_9_2()); 
 
             }
@@ -32780,12 +32791,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11632:1: ( rule__ActorClass__Group_9__3__Impl rule__ActorClass__Group_9__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11633:2: rule__ActorClass__Group_9__3__Impl rule__ActorClass__Group_9__4
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_9__3__Impl_in_rule__ActorClass__Group_9__323951);
+            pushFollow(FOLLOW_rule__ActorClass__Group_9__3__Impl_in_rule__ActorClass__Group_9__323952);
             rule__ActorClass__Group_9__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group_9__4_in_rule__ActorClass__Group_9__323954);
+            pushFollow(FOLLOW_rule__ActorClass__Group_9__4_in_rule__ActorClass__Group_9__323955);
             rule__ActorClass__Group_9__4();
 
             state._fsp--;
@@ -32823,21 +32834,21 @@
             {
              before(grammarAccess.getActorClassAccess().getBehaviorAnnotationsAssignment_9_3()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11647:1: ( rule__ActorClass__BehaviorAnnotationsAssignment_9_3 )*
-            loop121:
+            loop122:
             do {
-                int alt121=2;
-                int LA121_0 = input.LA(1);
+                int alt122=2;
+                int LA122_0 = input.LA(1);
 
-                if ( (LA121_0==119) ) {
-                    alt121=1;
+                if ( (LA122_0==119) ) {
+                    alt122=1;
                 }
 
 
-                switch (alt121) {
+                switch (alt122) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11647:2: rule__ActorClass__BehaviorAnnotationsAssignment_9_3
             	    {
-            	    pushFollow(FOLLOW_rule__ActorClass__BehaviorAnnotationsAssignment_9_3_in_rule__ActorClass__Group_9__3__Impl23981);
+            	    pushFollow(FOLLOW_rule__ActorClass__BehaviorAnnotationsAssignment_9_3_in_rule__ActorClass__Group_9__3__Impl23982);
             	    rule__ActorClass__BehaviorAnnotationsAssignment_9_3();
 
             	    state._fsp--;
@@ -32847,7 +32858,7 @@
             	    break;
 
             	default :
-            	    break loop121;
+            	    break loop122;
                 }
             } while (true);
 
@@ -32883,12 +32894,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11661:1: ( rule__ActorClass__Group_9__4__Impl rule__ActorClass__Group_9__5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11662:2: rule__ActorClass__Group_9__4__Impl rule__ActorClass__Group_9__5
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_9__4__Impl_in_rule__ActorClass__Group_9__424012);
+            pushFollow(FOLLOW_rule__ActorClass__Group_9__4__Impl_in_rule__ActorClass__Group_9__424013);
             rule__ActorClass__Group_9__4__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group_9__5_in_rule__ActorClass__Group_9__424015);
+            pushFollow(FOLLOW_rule__ActorClass__Group_9__5_in_rule__ActorClass__Group_9__424016);
             rule__ActorClass__Group_9__5();
 
             state._fsp--;
@@ -32926,21 +32937,21 @@
             {
              before(grammarAccess.getActorClassAccess().getAlternatives_9_4()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11676:1: ( rule__ActorClass__Alternatives_9_4 )*
-            loop122:
+            loop123:
             do {
-                int alt122=2;
-                int LA122_0 = input.LA(1);
+                int alt123=2;
+                int LA123_0 = input.LA(1);
 
-                if ( ((LA122_0>=14 && LA122_0<=15)||LA122_0==60||LA122_0==126) ) {
-                    alt122=1;
+                if ( ((LA123_0>=14 && LA123_0<=15)||LA123_0==60||LA123_0==126) ) {
+                    alt123=1;
                 }
 
 
-                switch (alt122) {
+                switch (alt123) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11676:2: rule__ActorClass__Alternatives_9_4
             	    {
-            	    pushFollow(FOLLOW_rule__ActorClass__Alternatives_9_4_in_rule__ActorClass__Group_9__4__Impl24042);
+            	    pushFollow(FOLLOW_rule__ActorClass__Alternatives_9_4_in_rule__ActorClass__Group_9__4__Impl24043);
             	    rule__ActorClass__Alternatives_9_4();
 
             	    state._fsp--;
@@ -32950,7 +32961,7 @@
             	    break;
 
             	default :
-            	    break loop122;
+            	    break loop123;
                 }
             } while (true);
 
@@ -32986,12 +32997,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11690:1: ( rule__ActorClass__Group_9__5__Impl rule__ActorClass__Group_9__6 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11691:2: rule__ActorClass__Group_9__5__Impl rule__ActorClass__Group_9__6
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_9__5__Impl_in_rule__ActorClass__Group_9__524073);
+            pushFollow(FOLLOW_rule__ActorClass__Group_9__5__Impl_in_rule__ActorClass__Group_9__524074);
             rule__ActorClass__Group_9__5__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorClass__Group_9__6_in_rule__ActorClass__Group_9__524076);
+            pushFollow(FOLLOW_rule__ActorClass__Group_9__6_in_rule__ActorClass__Group_9__524077);
             rule__ActorClass__Group_9__6();
 
             state._fsp--;
@@ -33029,17 +33040,17 @@
             {
              before(grammarAccess.getActorClassAccess().getStateMachineAssignment_9_5()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11705:1: ( rule__ActorClass__StateMachineAssignment_9_5 )?
-            int alt123=2;
-            int LA123_0 = input.LA(1);
+            int alt124=2;
+            int LA124_0 = input.LA(1);
 
-            if ( (LA123_0==92) ) {
-                alt123=1;
+            if ( (LA124_0==92) ) {
+                alt124=1;
             }
-            switch (alt123) {
+            switch (alt124) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11705:2: rule__ActorClass__StateMachineAssignment_9_5
                     {
-                    pushFollow(FOLLOW_rule__ActorClass__StateMachineAssignment_9_5_in_rule__ActorClass__Group_9__5__Impl24103);
+                    pushFollow(FOLLOW_rule__ActorClass__StateMachineAssignment_9_5_in_rule__ActorClass__Group_9__5__Impl24104);
                     rule__ActorClass__StateMachineAssignment_9_5();
 
                     state._fsp--;
@@ -33082,7 +33093,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11719:1: ( rule__ActorClass__Group_9__6__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11720:2: rule__ActorClass__Group_9__6__Impl
             {
-            pushFollow(FOLLOW_rule__ActorClass__Group_9__6__Impl_in_rule__ActorClass__Group_9__624134);
+            pushFollow(FOLLOW_rule__ActorClass__Group_9__6__Impl_in_rule__ActorClass__Group_9__624135);
             rule__ActorClass__Group_9__6__Impl();
 
             state._fsp--;
@@ -33119,7 +33130,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11732:1: '}'
             {
              before(grammarAccess.getActorClassAccess().getRightCurlyBracketKeyword_9_6()); 
-            match(input,41,FOLLOW_41_in_rule__ActorClass__Group_9__6__Impl24162); 
+            match(input,41,FOLLOW_41_in_rule__ActorClass__Group_9__6__Impl24163); 
              after(grammarAccess.getActorClassAccess().getRightCurlyBracketKeyword_9_6()); 
 
             }
@@ -33152,12 +33163,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11763:1: ( rule__Port__Group__0__Impl rule__Port__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11764:2: rule__Port__Group__0__Impl rule__Port__Group__1
             {
-            pushFollow(FOLLOW_rule__Port__Group__0__Impl_in_rule__Port__Group__024207);
+            pushFollow(FOLLOW_rule__Port__Group__0__Impl_in_rule__Port__Group__024208);
             rule__Port__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Port__Group__1_in_rule__Port__Group__024210);
+            pushFollow(FOLLOW_rule__Port__Group__1_in_rule__Port__Group__024211);
             rule__Port__Group__1();
 
             state._fsp--;
@@ -33195,17 +33206,17 @@
             {
              before(grammarAccess.getPortAccess().getConjugatedAssignment_0()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11778:1: ( rule__Port__ConjugatedAssignment_0 )?
-            int alt124=2;
-            int LA124_0 = input.LA(1);
+            int alt125=2;
+            int LA125_0 = input.LA(1);
 
-            if ( (LA124_0==66) ) {
-                alt124=1;
+            if ( (LA125_0==66) ) {
+                alt125=1;
             }
-            switch (alt124) {
+            switch (alt125) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11778:2: rule__Port__ConjugatedAssignment_0
                     {
-                    pushFollow(FOLLOW_rule__Port__ConjugatedAssignment_0_in_rule__Port__Group__0__Impl24237);
+                    pushFollow(FOLLOW_rule__Port__ConjugatedAssignment_0_in_rule__Port__Group__0__Impl24238);
                     rule__Port__ConjugatedAssignment_0();
 
                     state._fsp--;
@@ -33248,12 +33259,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11792:1: ( rule__Port__Group__1__Impl rule__Port__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11793:2: rule__Port__Group__1__Impl rule__Port__Group__2
             {
-            pushFollow(FOLLOW_rule__Port__Group__1__Impl_in_rule__Port__Group__124268);
+            pushFollow(FOLLOW_rule__Port__Group__1__Impl_in_rule__Port__Group__124269);
             rule__Port__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Port__Group__2_in_rule__Port__Group__124271);
+            pushFollow(FOLLOW_rule__Port__Group__2_in_rule__Port__Group__124272);
             rule__Port__Group__2();
 
             state._fsp--;
@@ -33290,7 +33301,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11806:1: 'Port'
             {
              before(grammarAccess.getPortAccess().getPortKeyword_1()); 
-            match(input,74,FOLLOW_74_in_rule__Port__Group__1__Impl24299); 
+            match(input,74,FOLLOW_74_in_rule__Port__Group__1__Impl24300); 
              after(grammarAccess.getPortAccess().getPortKeyword_1()); 
 
             }
@@ -33323,12 +33334,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11823:1: ( rule__Port__Group__2__Impl rule__Port__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11824:2: rule__Port__Group__2__Impl rule__Port__Group__3
             {
-            pushFollow(FOLLOW_rule__Port__Group__2__Impl_in_rule__Port__Group__224330);
+            pushFollow(FOLLOW_rule__Port__Group__2__Impl_in_rule__Port__Group__224331);
             rule__Port__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Port__Group__3_in_rule__Port__Group__224333);
+            pushFollow(FOLLOW_rule__Port__Group__3_in_rule__Port__Group__224334);
             rule__Port__Group__3();
 
             state._fsp--;
@@ -33368,7 +33379,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11838:1: ( rule__Port__NameAssignment_2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11838:2: rule__Port__NameAssignment_2
             {
-            pushFollow(FOLLOW_rule__Port__NameAssignment_2_in_rule__Port__Group__2__Impl24360);
+            pushFollow(FOLLOW_rule__Port__NameAssignment_2_in_rule__Port__Group__2__Impl24361);
             rule__Port__NameAssignment_2();
 
             state._fsp--;
@@ -33408,12 +33419,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11852:1: ( rule__Port__Group__3__Impl rule__Port__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11853:2: rule__Port__Group__3__Impl rule__Port__Group__4
             {
-            pushFollow(FOLLOW_rule__Port__Group__3__Impl_in_rule__Port__Group__324390);
+            pushFollow(FOLLOW_rule__Port__Group__3__Impl_in_rule__Port__Group__324391);
             rule__Port__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Port__Group__4_in_rule__Port__Group__324393);
+            pushFollow(FOLLOW_rule__Port__Group__4_in_rule__Port__Group__324394);
             rule__Port__Group__4();
 
             state._fsp--;
@@ -33451,17 +33462,17 @@
             {
              before(grammarAccess.getPortAccess().getMultiplicityAssignment_3()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11867:1: ( rule__Port__MultiplicityAssignment_3 )?
-            int alt125=2;
-            int LA125_0 = input.LA(1);
+            int alt126=2;
+            int LA126_0 = input.LA(1);
 
-            if ( (LA125_0==58) ) {
-                alt125=1;
+            if ( (LA126_0==58) ) {
+                alt126=1;
             }
-            switch (alt125) {
+            switch (alt126) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11867:2: rule__Port__MultiplicityAssignment_3
                     {
-                    pushFollow(FOLLOW_rule__Port__MultiplicityAssignment_3_in_rule__Port__Group__3__Impl24420);
+                    pushFollow(FOLLOW_rule__Port__MultiplicityAssignment_3_in_rule__Port__Group__3__Impl24421);
                     rule__Port__MultiplicityAssignment_3();
 
                     state._fsp--;
@@ -33504,12 +33515,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11881:1: ( rule__Port__Group__4__Impl rule__Port__Group__5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11882:2: rule__Port__Group__4__Impl rule__Port__Group__5
             {
-            pushFollow(FOLLOW_rule__Port__Group__4__Impl_in_rule__Port__Group__424451);
+            pushFollow(FOLLOW_rule__Port__Group__4__Impl_in_rule__Port__Group__424452);
             rule__Port__Group__4__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Port__Group__5_in_rule__Port__Group__424454);
+            pushFollow(FOLLOW_rule__Port__Group__5_in_rule__Port__Group__424455);
             rule__Port__Group__5();
 
             state._fsp--;
@@ -33546,7 +33557,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11895:1: ':'
             {
              before(grammarAccess.getPortAccess().getColonKeyword_4()); 
-            match(input,42,FOLLOW_42_in_rule__Port__Group__4__Impl24482); 
+            match(input,42,FOLLOW_42_in_rule__Port__Group__4__Impl24483); 
              after(grammarAccess.getPortAccess().getColonKeyword_4()); 
 
             }
@@ -33579,12 +33590,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11912:1: ( rule__Port__Group__5__Impl rule__Port__Group__6 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11913:2: rule__Port__Group__5__Impl rule__Port__Group__6
             {
-            pushFollow(FOLLOW_rule__Port__Group__5__Impl_in_rule__Port__Group__524513);
+            pushFollow(FOLLOW_rule__Port__Group__5__Impl_in_rule__Port__Group__524514);
             rule__Port__Group__5__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Port__Group__6_in_rule__Port__Group__524516);
+            pushFollow(FOLLOW_rule__Port__Group__6_in_rule__Port__Group__524517);
             rule__Port__Group__6();
 
             state._fsp--;
@@ -33624,7 +33635,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11927:1: ( rule__Port__ProtocolAssignment_5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11927:2: rule__Port__ProtocolAssignment_5
             {
-            pushFollow(FOLLOW_rule__Port__ProtocolAssignment_5_in_rule__Port__Group__5__Impl24543);
+            pushFollow(FOLLOW_rule__Port__ProtocolAssignment_5_in_rule__Port__Group__5__Impl24544);
             rule__Port__ProtocolAssignment_5();
 
             state._fsp--;
@@ -33664,7 +33675,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11941:1: ( rule__Port__Group__6__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11942:2: rule__Port__Group__6__Impl
             {
-            pushFollow(FOLLOW_rule__Port__Group__6__Impl_in_rule__Port__Group__624573);
+            pushFollow(FOLLOW_rule__Port__Group__6__Impl_in_rule__Port__Group__624574);
             rule__Port__Group__6__Impl();
 
             state._fsp--;
@@ -33702,17 +33713,17 @@
             {
              before(grammarAccess.getPortAccess().getDocuAssignment_6()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11955:1: ( rule__Port__DocuAssignment_6 )?
-            int alt126=2;
-            int LA126_0 = input.LA(1);
+            int alt127=2;
+            int LA127_0 = input.LA(1);
 
-            if ( (LA126_0==58) ) {
-                alt126=1;
+            if ( (LA127_0==58) ) {
+                alt127=1;
             }
-            switch (alt126) {
+            switch (alt127) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11955:2: rule__Port__DocuAssignment_6
                     {
-                    pushFollow(FOLLOW_rule__Port__DocuAssignment_6_in_rule__Port__Group__6__Impl24600);
+                    pushFollow(FOLLOW_rule__Port__DocuAssignment_6_in_rule__Port__Group__6__Impl24601);
                     rule__Port__DocuAssignment_6();
 
                     state._fsp--;
@@ -33755,12 +33766,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11983:1: ( rule__ExternalPort__Group__0__Impl rule__ExternalPort__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11984:2: rule__ExternalPort__Group__0__Impl rule__ExternalPort__Group__1
             {
-            pushFollow(FOLLOW_rule__ExternalPort__Group__0__Impl_in_rule__ExternalPort__Group__024645);
+            pushFollow(FOLLOW_rule__ExternalPort__Group__0__Impl_in_rule__ExternalPort__Group__024646);
             rule__ExternalPort__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ExternalPort__Group__1_in_rule__ExternalPort__Group__024648);
+            pushFollow(FOLLOW_rule__ExternalPort__Group__1_in_rule__ExternalPort__Group__024649);
             rule__ExternalPort__Group__1();
 
             state._fsp--;
@@ -33797,7 +33808,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:11997:1: 'external'
             {
              before(grammarAccess.getExternalPortAccess().getExternalKeyword_0()); 
-            match(input,75,FOLLOW_75_in_rule__ExternalPort__Group__0__Impl24676); 
+            match(input,75,FOLLOW_75_in_rule__ExternalPort__Group__0__Impl24677); 
              after(grammarAccess.getExternalPortAccess().getExternalKeyword_0()); 
 
             }
@@ -33830,12 +33841,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12014:1: ( rule__ExternalPort__Group__1__Impl rule__ExternalPort__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12015:2: rule__ExternalPort__Group__1__Impl rule__ExternalPort__Group__2
             {
-            pushFollow(FOLLOW_rule__ExternalPort__Group__1__Impl_in_rule__ExternalPort__Group__124707);
+            pushFollow(FOLLOW_rule__ExternalPort__Group__1__Impl_in_rule__ExternalPort__Group__124708);
             rule__ExternalPort__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ExternalPort__Group__2_in_rule__ExternalPort__Group__124710);
+            pushFollow(FOLLOW_rule__ExternalPort__Group__2_in_rule__ExternalPort__Group__124711);
             rule__ExternalPort__Group__2();
 
             state._fsp--;
@@ -33872,7 +33883,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12028:1: 'Port'
             {
              before(grammarAccess.getExternalPortAccess().getPortKeyword_1()); 
-            match(input,74,FOLLOW_74_in_rule__ExternalPort__Group__1__Impl24738); 
+            match(input,74,FOLLOW_74_in_rule__ExternalPort__Group__1__Impl24739); 
              after(grammarAccess.getExternalPortAccess().getPortKeyword_1()); 
 
             }
@@ -33905,7 +33916,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12045:1: ( rule__ExternalPort__Group__2__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12046:2: rule__ExternalPort__Group__2__Impl
             {
-            pushFollow(FOLLOW_rule__ExternalPort__Group__2__Impl_in_rule__ExternalPort__Group__224769);
+            pushFollow(FOLLOW_rule__ExternalPort__Group__2__Impl_in_rule__ExternalPort__Group__224770);
             rule__ExternalPort__Group__2__Impl();
 
             state._fsp--;
@@ -33945,7 +33956,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12059:1: ( rule__ExternalPort__InterfacePortAssignment_2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12059:2: rule__ExternalPort__InterfacePortAssignment_2
             {
-            pushFollow(FOLLOW_rule__ExternalPort__InterfacePortAssignment_2_in_rule__ExternalPort__Group__2__Impl24796);
+            pushFollow(FOLLOW_rule__ExternalPort__InterfacePortAssignment_2_in_rule__ExternalPort__Group__2__Impl24797);
             rule__ExternalPort__InterfacePortAssignment_2();
 
             state._fsp--;
@@ -33985,12 +33996,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12079:1: ( rule__SAP__Group__0__Impl rule__SAP__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12080:2: rule__SAP__Group__0__Impl rule__SAP__Group__1
             {
-            pushFollow(FOLLOW_rule__SAP__Group__0__Impl_in_rule__SAP__Group__024832);
+            pushFollow(FOLLOW_rule__SAP__Group__0__Impl_in_rule__SAP__Group__024833);
             rule__SAP__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SAP__Group__1_in_rule__SAP__Group__024835);
+            pushFollow(FOLLOW_rule__SAP__Group__1_in_rule__SAP__Group__024836);
             rule__SAP__Group__1();
 
             state._fsp--;
@@ -34027,7 +34038,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12093:1: 'SAP'
             {
              before(grammarAccess.getSAPAccess().getSAPKeyword_0()); 
-            match(input,76,FOLLOW_76_in_rule__SAP__Group__0__Impl24863); 
+            match(input,76,FOLLOW_76_in_rule__SAP__Group__0__Impl24864); 
              after(grammarAccess.getSAPAccess().getSAPKeyword_0()); 
 
             }
@@ -34060,12 +34071,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12110:1: ( rule__SAP__Group__1__Impl rule__SAP__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12111:2: rule__SAP__Group__1__Impl rule__SAP__Group__2
             {
-            pushFollow(FOLLOW_rule__SAP__Group__1__Impl_in_rule__SAP__Group__124894);
+            pushFollow(FOLLOW_rule__SAP__Group__1__Impl_in_rule__SAP__Group__124895);
             rule__SAP__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SAP__Group__2_in_rule__SAP__Group__124897);
+            pushFollow(FOLLOW_rule__SAP__Group__2_in_rule__SAP__Group__124898);
             rule__SAP__Group__2();
 
             state._fsp--;
@@ -34105,7 +34116,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12125:1: ( rule__SAP__NameAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12125:2: rule__SAP__NameAssignment_1
             {
-            pushFollow(FOLLOW_rule__SAP__NameAssignment_1_in_rule__SAP__Group__1__Impl24924);
+            pushFollow(FOLLOW_rule__SAP__NameAssignment_1_in_rule__SAP__Group__1__Impl24925);
             rule__SAP__NameAssignment_1();
 
             state._fsp--;
@@ -34145,12 +34156,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12139:1: ( rule__SAP__Group__2__Impl rule__SAP__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12140:2: rule__SAP__Group__2__Impl rule__SAP__Group__3
             {
-            pushFollow(FOLLOW_rule__SAP__Group__2__Impl_in_rule__SAP__Group__224954);
+            pushFollow(FOLLOW_rule__SAP__Group__2__Impl_in_rule__SAP__Group__224955);
             rule__SAP__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SAP__Group__3_in_rule__SAP__Group__224957);
+            pushFollow(FOLLOW_rule__SAP__Group__3_in_rule__SAP__Group__224958);
             rule__SAP__Group__3();
 
             state._fsp--;
@@ -34187,7 +34198,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12153:1: ':'
             {
              before(grammarAccess.getSAPAccess().getColonKeyword_2()); 
-            match(input,42,FOLLOW_42_in_rule__SAP__Group__2__Impl24985); 
+            match(input,42,FOLLOW_42_in_rule__SAP__Group__2__Impl24986); 
              after(grammarAccess.getSAPAccess().getColonKeyword_2()); 
 
             }
@@ -34220,7 +34231,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12170:1: ( rule__SAP__Group__3__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12171:2: rule__SAP__Group__3__Impl
             {
-            pushFollow(FOLLOW_rule__SAP__Group__3__Impl_in_rule__SAP__Group__325016);
+            pushFollow(FOLLOW_rule__SAP__Group__3__Impl_in_rule__SAP__Group__325017);
             rule__SAP__Group__3__Impl();
 
             state._fsp--;
@@ -34260,7 +34271,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12184:1: ( rule__SAP__ProtocolAssignment_3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12184:2: rule__SAP__ProtocolAssignment_3
             {
-            pushFollow(FOLLOW_rule__SAP__ProtocolAssignment_3_in_rule__SAP__Group__3__Impl25043);
+            pushFollow(FOLLOW_rule__SAP__ProtocolAssignment_3_in_rule__SAP__Group__3__Impl25044);
             rule__SAP__ProtocolAssignment_3();
 
             state._fsp--;
@@ -34300,12 +34311,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12206:1: ( rule__SPP__Group__0__Impl rule__SPP__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12207:2: rule__SPP__Group__0__Impl rule__SPP__Group__1
             {
-            pushFollow(FOLLOW_rule__SPP__Group__0__Impl_in_rule__SPP__Group__025081);
+            pushFollow(FOLLOW_rule__SPP__Group__0__Impl_in_rule__SPP__Group__025082);
             rule__SPP__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SPP__Group__1_in_rule__SPP__Group__025084);
+            pushFollow(FOLLOW_rule__SPP__Group__1_in_rule__SPP__Group__025085);
             rule__SPP__Group__1();
 
             state._fsp--;
@@ -34342,7 +34353,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12220:1: 'SPP'
             {
              before(grammarAccess.getSPPAccess().getSPPKeyword_0()); 
-            match(input,77,FOLLOW_77_in_rule__SPP__Group__0__Impl25112); 
+            match(input,77,FOLLOW_77_in_rule__SPP__Group__0__Impl25113); 
              after(grammarAccess.getSPPAccess().getSPPKeyword_0()); 
 
             }
@@ -34375,12 +34386,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12237:1: ( rule__SPP__Group__1__Impl rule__SPP__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12238:2: rule__SPP__Group__1__Impl rule__SPP__Group__2
             {
-            pushFollow(FOLLOW_rule__SPP__Group__1__Impl_in_rule__SPP__Group__125143);
+            pushFollow(FOLLOW_rule__SPP__Group__1__Impl_in_rule__SPP__Group__125144);
             rule__SPP__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SPP__Group__2_in_rule__SPP__Group__125146);
+            pushFollow(FOLLOW_rule__SPP__Group__2_in_rule__SPP__Group__125147);
             rule__SPP__Group__2();
 
             state._fsp--;
@@ -34420,7 +34431,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12252:1: ( rule__SPP__NameAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12252:2: rule__SPP__NameAssignment_1
             {
-            pushFollow(FOLLOW_rule__SPP__NameAssignment_1_in_rule__SPP__Group__1__Impl25173);
+            pushFollow(FOLLOW_rule__SPP__NameAssignment_1_in_rule__SPP__Group__1__Impl25174);
             rule__SPP__NameAssignment_1();
 
             state._fsp--;
@@ -34460,12 +34471,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12266:1: ( rule__SPP__Group__2__Impl rule__SPP__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12267:2: rule__SPP__Group__2__Impl rule__SPP__Group__3
             {
-            pushFollow(FOLLOW_rule__SPP__Group__2__Impl_in_rule__SPP__Group__225203);
+            pushFollow(FOLLOW_rule__SPP__Group__2__Impl_in_rule__SPP__Group__225204);
             rule__SPP__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SPP__Group__3_in_rule__SPP__Group__225206);
+            pushFollow(FOLLOW_rule__SPP__Group__3_in_rule__SPP__Group__225207);
             rule__SPP__Group__3();
 
             state._fsp--;
@@ -34502,7 +34513,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12280:1: ':'
             {
              before(grammarAccess.getSPPAccess().getColonKeyword_2()); 
-            match(input,42,FOLLOW_42_in_rule__SPP__Group__2__Impl25234); 
+            match(input,42,FOLLOW_42_in_rule__SPP__Group__2__Impl25235); 
              after(grammarAccess.getSPPAccess().getColonKeyword_2()); 
 
             }
@@ -34535,7 +34546,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12297:1: ( rule__SPP__Group__3__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12298:2: rule__SPP__Group__3__Impl
             {
-            pushFollow(FOLLOW_rule__SPP__Group__3__Impl_in_rule__SPP__Group__325265);
+            pushFollow(FOLLOW_rule__SPP__Group__3__Impl_in_rule__SPP__Group__325266);
             rule__SPP__Group__3__Impl();
 
             state._fsp--;
@@ -34575,7 +34586,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12311:1: ( rule__SPP__ProtocolAssignment_3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12311:2: rule__SPP__ProtocolAssignment_3
             {
-            pushFollow(FOLLOW_rule__SPP__ProtocolAssignment_3_in_rule__SPP__Group__3__Impl25292);
+            pushFollow(FOLLOW_rule__SPP__ProtocolAssignment_3_in_rule__SPP__Group__3__Impl25293);
             rule__SPP__ProtocolAssignment_3();
 
             state._fsp--;
@@ -34615,12 +34626,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12333:1: ( rule__ServiceImplementation__Group__0__Impl rule__ServiceImplementation__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12334:2: rule__ServiceImplementation__Group__0__Impl rule__ServiceImplementation__Group__1
             {
-            pushFollow(FOLLOW_rule__ServiceImplementation__Group__0__Impl_in_rule__ServiceImplementation__Group__025330);
+            pushFollow(FOLLOW_rule__ServiceImplementation__Group__0__Impl_in_rule__ServiceImplementation__Group__025331);
             rule__ServiceImplementation__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ServiceImplementation__Group__1_in_rule__ServiceImplementation__Group__025333);
+            pushFollow(FOLLOW_rule__ServiceImplementation__Group__1_in_rule__ServiceImplementation__Group__025334);
             rule__ServiceImplementation__Group__1();
 
             state._fsp--;
@@ -34657,7 +34668,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12347:1: 'ServiceImplementation'
             {
              before(grammarAccess.getServiceImplementationAccess().getServiceImplementationKeyword_0()); 
-            match(input,78,FOLLOW_78_in_rule__ServiceImplementation__Group__0__Impl25361); 
+            match(input,78,FOLLOW_78_in_rule__ServiceImplementation__Group__0__Impl25362); 
              after(grammarAccess.getServiceImplementationAccess().getServiceImplementationKeyword_0()); 
 
             }
@@ -34690,12 +34701,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12364:1: ( rule__ServiceImplementation__Group__1__Impl rule__ServiceImplementation__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12365:2: rule__ServiceImplementation__Group__1__Impl rule__ServiceImplementation__Group__2
             {
-            pushFollow(FOLLOW_rule__ServiceImplementation__Group__1__Impl_in_rule__ServiceImplementation__Group__125392);
+            pushFollow(FOLLOW_rule__ServiceImplementation__Group__1__Impl_in_rule__ServiceImplementation__Group__125393);
             rule__ServiceImplementation__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ServiceImplementation__Group__2_in_rule__ServiceImplementation__Group__125395);
+            pushFollow(FOLLOW_rule__ServiceImplementation__Group__2_in_rule__ServiceImplementation__Group__125396);
             rule__ServiceImplementation__Group__2();
 
             state._fsp--;
@@ -34732,7 +34743,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12378:1: 'of'
             {
              before(grammarAccess.getServiceImplementationAccess().getOfKeyword_1()); 
-            match(input,49,FOLLOW_49_in_rule__ServiceImplementation__Group__1__Impl25423); 
+            match(input,49,FOLLOW_49_in_rule__ServiceImplementation__Group__1__Impl25424); 
              after(grammarAccess.getServiceImplementationAccess().getOfKeyword_1()); 
 
             }
@@ -34765,7 +34776,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12395:1: ( rule__ServiceImplementation__Group__2__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12396:2: rule__ServiceImplementation__Group__2__Impl
             {
-            pushFollow(FOLLOW_rule__ServiceImplementation__Group__2__Impl_in_rule__ServiceImplementation__Group__225454);
+            pushFollow(FOLLOW_rule__ServiceImplementation__Group__2__Impl_in_rule__ServiceImplementation__Group__225455);
             rule__ServiceImplementation__Group__2__Impl();
 
             state._fsp--;
@@ -34805,7 +34816,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12409:1: ( rule__ServiceImplementation__SppAssignment_2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12409:2: rule__ServiceImplementation__SppAssignment_2
             {
-            pushFollow(FOLLOW_rule__ServiceImplementation__SppAssignment_2_in_rule__ServiceImplementation__Group__2__Impl25481);
+            pushFollow(FOLLOW_rule__ServiceImplementation__SppAssignment_2_in_rule__ServiceImplementation__Group__2__Impl25482);
             rule__ServiceImplementation__SppAssignment_2();
 
             state._fsp--;
@@ -34845,12 +34856,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12429:1: ( rule__LogicalSystem__Group__0__Impl rule__LogicalSystem__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12430:2: rule__LogicalSystem__Group__0__Impl rule__LogicalSystem__Group__1
             {
-            pushFollow(FOLLOW_rule__LogicalSystem__Group__0__Impl_in_rule__LogicalSystem__Group__025517);
+            pushFollow(FOLLOW_rule__LogicalSystem__Group__0__Impl_in_rule__LogicalSystem__Group__025518);
             rule__LogicalSystem__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__LogicalSystem__Group__1_in_rule__LogicalSystem__Group__025520);
+            pushFollow(FOLLOW_rule__LogicalSystem__Group__1_in_rule__LogicalSystem__Group__025521);
             rule__LogicalSystem__Group__1();
 
             state._fsp--;
@@ -34887,7 +34898,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12443:1: 'LogicalSystem'
             {
              before(grammarAccess.getLogicalSystemAccess().getLogicalSystemKeyword_0()); 
-            match(input,23,FOLLOW_23_in_rule__LogicalSystem__Group__0__Impl25548); 
+            match(input,23,FOLLOW_23_in_rule__LogicalSystem__Group__0__Impl25549); 
              after(grammarAccess.getLogicalSystemAccess().getLogicalSystemKeyword_0()); 
 
             }
@@ -34920,12 +34931,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12460:1: ( rule__LogicalSystem__Group__1__Impl rule__LogicalSystem__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12461:2: rule__LogicalSystem__Group__1__Impl rule__LogicalSystem__Group__2
             {
-            pushFollow(FOLLOW_rule__LogicalSystem__Group__1__Impl_in_rule__LogicalSystem__Group__125579);
+            pushFollow(FOLLOW_rule__LogicalSystem__Group__1__Impl_in_rule__LogicalSystem__Group__125580);
             rule__LogicalSystem__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__LogicalSystem__Group__2_in_rule__LogicalSystem__Group__125582);
+            pushFollow(FOLLOW_rule__LogicalSystem__Group__2_in_rule__LogicalSystem__Group__125583);
             rule__LogicalSystem__Group__2();
 
             state._fsp--;
@@ -34965,7 +34976,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12475:1: ( rule__LogicalSystem__NameAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12475:2: rule__LogicalSystem__NameAssignment_1
             {
-            pushFollow(FOLLOW_rule__LogicalSystem__NameAssignment_1_in_rule__LogicalSystem__Group__1__Impl25609);
+            pushFollow(FOLLOW_rule__LogicalSystem__NameAssignment_1_in_rule__LogicalSystem__Group__1__Impl25610);
             rule__LogicalSystem__NameAssignment_1();
 
             state._fsp--;
@@ -35005,12 +35016,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12489:1: ( rule__LogicalSystem__Group__2__Impl rule__LogicalSystem__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12490:2: rule__LogicalSystem__Group__2__Impl rule__LogicalSystem__Group__3
             {
-            pushFollow(FOLLOW_rule__LogicalSystem__Group__2__Impl_in_rule__LogicalSystem__Group__225639);
+            pushFollow(FOLLOW_rule__LogicalSystem__Group__2__Impl_in_rule__LogicalSystem__Group__225640);
             rule__LogicalSystem__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__LogicalSystem__Group__3_in_rule__LogicalSystem__Group__225642);
+            pushFollow(FOLLOW_rule__LogicalSystem__Group__3_in_rule__LogicalSystem__Group__225643);
             rule__LogicalSystem__Group__3();
 
             state._fsp--;
@@ -35048,17 +35059,17 @@
             {
              before(grammarAccess.getLogicalSystemAccess().getDocuAssignment_2()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12504:1: ( rule__LogicalSystem__DocuAssignment_2 )?
-            int alt127=2;
-            int LA127_0 = input.LA(1);
+            int alt128=2;
+            int LA128_0 = input.LA(1);
 
-            if ( (LA127_0==58) ) {
-                alt127=1;
+            if ( (LA128_0==58) ) {
+                alt128=1;
             }
-            switch (alt127) {
+            switch (alt128) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12504:2: rule__LogicalSystem__DocuAssignment_2
                     {
-                    pushFollow(FOLLOW_rule__LogicalSystem__DocuAssignment_2_in_rule__LogicalSystem__Group__2__Impl25669);
+                    pushFollow(FOLLOW_rule__LogicalSystem__DocuAssignment_2_in_rule__LogicalSystem__Group__2__Impl25670);
                     rule__LogicalSystem__DocuAssignment_2();
 
                     state._fsp--;
@@ -35101,12 +35112,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12518:1: ( rule__LogicalSystem__Group__3__Impl rule__LogicalSystem__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12519:2: rule__LogicalSystem__Group__3__Impl rule__LogicalSystem__Group__4
             {
-            pushFollow(FOLLOW_rule__LogicalSystem__Group__3__Impl_in_rule__LogicalSystem__Group__325700);
+            pushFollow(FOLLOW_rule__LogicalSystem__Group__3__Impl_in_rule__LogicalSystem__Group__325701);
             rule__LogicalSystem__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__LogicalSystem__Group__4_in_rule__LogicalSystem__Group__325703);
+            pushFollow(FOLLOW_rule__LogicalSystem__Group__4_in_rule__LogicalSystem__Group__325704);
             rule__LogicalSystem__Group__4();
 
             state._fsp--;
@@ -35143,7 +35154,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12532:1: '{'
             {
              before(grammarAccess.getLogicalSystemAccess().getLeftCurlyBracketKeyword_3()); 
-            match(input,40,FOLLOW_40_in_rule__LogicalSystem__Group__3__Impl25731); 
+            match(input,40,FOLLOW_40_in_rule__LogicalSystem__Group__3__Impl25732); 
              after(grammarAccess.getLogicalSystemAccess().getLeftCurlyBracketKeyword_3()); 
 
             }
@@ -35176,12 +35187,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12549:1: ( rule__LogicalSystem__Group__4__Impl rule__LogicalSystem__Group__5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12550:2: rule__LogicalSystem__Group__4__Impl rule__LogicalSystem__Group__5
             {
-            pushFollow(FOLLOW_rule__LogicalSystem__Group__4__Impl_in_rule__LogicalSystem__Group__425762);
+            pushFollow(FOLLOW_rule__LogicalSystem__Group__4__Impl_in_rule__LogicalSystem__Group__425763);
             rule__LogicalSystem__Group__4__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__LogicalSystem__Group__5_in_rule__LogicalSystem__Group__425765);
+            pushFollow(FOLLOW_rule__LogicalSystem__Group__5_in_rule__LogicalSystem__Group__425766);
             rule__LogicalSystem__Group__5();
 
             state._fsp--;
@@ -35219,21 +35230,21 @@
             {
              before(grammarAccess.getLogicalSystemAccess().getAnnotationsAssignment_4()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12564:1: ( rule__LogicalSystem__AnnotationsAssignment_4 )*
-            loop128:
+            loop129:
             do {
-                int alt128=2;
-                int LA128_0 = input.LA(1);
+                int alt129=2;
+                int LA129_0 = input.LA(1);
 
-                if ( (LA128_0==119) ) {
-                    alt128=1;
+                if ( (LA129_0==119) ) {
+                    alt129=1;
                 }
 
 
-                switch (alt128) {
+                switch (alt129) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12564:2: rule__LogicalSystem__AnnotationsAssignment_4
             	    {
-            	    pushFollow(FOLLOW_rule__LogicalSystem__AnnotationsAssignment_4_in_rule__LogicalSystem__Group__4__Impl25792);
+            	    pushFollow(FOLLOW_rule__LogicalSystem__AnnotationsAssignment_4_in_rule__LogicalSystem__Group__4__Impl25793);
             	    rule__LogicalSystem__AnnotationsAssignment_4();
 
             	    state._fsp--;
@@ -35243,7 +35254,7 @@
             	    break;
 
             	default :
-            	    break loop128;
+            	    break loop129;
                 }
             } while (true);
 
@@ -35279,12 +35290,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12578:1: ( rule__LogicalSystem__Group__5__Impl rule__LogicalSystem__Group__6 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12579:2: rule__LogicalSystem__Group__5__Impl rule__LogicalSystem__Group__6
             {
-            pushFollow(FOLLOW_rule__LogicalSystem__Group__5__Impl_in_rule__LogicalSystem__Group__525823);
+            pushFollow(FOLLOW_rule__LogicalSystem__Group__5__Impl_in_rule__LogicalSystem__Group__525824);
             rule__LogicalSystem__Group__5__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__LogicalSystem__Group__6_in_rule__LogicalSystem__Group__525826);
+            pushFollow(FOLLOW_rule__LogicalSystem__Group__6_in_rule__LogicalSystem__Group__525827);
             rule__LogicalSystem__Group__6();
 
             state._fsp--;
@@ -35322,21 +35333,21 @@
             {
              before(grammarAccess.getLogicalSystemAccess().getAlternatives_5()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12593:1: ( rule__LogicalSystem__Alternatives_5 )*
-            loop129:
+            loop130:
             do {
-                int alt129=2;
-                int LA129_0 = input.LA(1);
+                int alt130=2;
+                int LA130_0 = input.LA(1);
 
-                if ( (LA129_0==79||LA129_0==83||LA129_0==87) ) {
-                    alt129=1;
+                if ( (LA130_0==79||LA130_0==83||LA130_0==87) ) {
+                    alt130=1;
                 }
 
 
-                switch (alt129) {
+                switch (alt130) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12593:2: rule__LogicalSystem__Alternatives_5
             	    {
-            	    pushFollow(FOLLOW_rule__LogicalSystem__Alternatives_5_in_rule__LogicalSystem__Group__5__Impl25853);
+            	    pushFollow(FOLLOW_rule__LogicalSystem__Alternatives_5_in_rule__LogicalSystem__Group__5__Impl25854);
             	    rule__LogicalSystem__Alternatives_5();
 
             	    state._fsp--;
@@ -35346,7 +35357,7 @@
             	    break;
 
             	default :
-            	    break loop129;
+            	    break loop130;
                 }
             } while (true);
 
@@ -35382,7 +35393,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12607:1: ( rule__LogicalSystem__Group__6__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12608:2: rule__LogicalSystem__Group__6__Impl
             {
-            pushFollow(FOLLOW_rule__LogicalSystem__Group__6__Impl_in_rule__LogicalSystem__Group__625884);
+            pushFollow(FOLLOW_rule__LogicalSystem__Group__6__Impl_in_rule__LogicalSystem__Group__625885);
             rule__LogicalSystem__Group__6__Impl();
 
             state._fsp--;
@@ -35419,7 +35430,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12620:1: '}'
             {
              before(grammarAccess.getLogicalSystemAccess().getRightCurlyBracketKeyword_6()); 
-            match(input,41,FOLLOW_41_in_rule__LogicalSystem__Group__6__Impl25912); 
+            match(input,41,FOLLOW_41_in_rule__LogicalSystem__Group__6__Impl25913); 
              after(grammarAccess.getLogicalSystemAccess().getRightCurlyBracketKeyword_6()); 
 
             }
@@ -35452,12 +35463,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12651:1: ( rule__SubSystemRef__Group__0__Impl rule__SubSystemRef__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12652:2: rule__SubSystemRef__Group__0__Impl rule__SubSystemRef__Group__1
             {
-            pushFollow(FOLLOW_rule__SubSystemRef__Group__0__Impl_in_rule__SubSystemRef__Group__025957);
+            pushFollow(FOLLOW_rule__SubSystemRef__Group__0__Impl_in_rule__SubSystemRef__Group__025958);
             rule__SubSystemRef__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SubSystemRef__Group__1_in_rule__SubSystemRef__Group__025960);
+            pushFollow(FOLLOW_rule__SubSystemRef__Group__1_in_rule__SubSystemRef__Group__025961);
             rule__SubSystemRef__Group__1();
 
             state._fsp--;
@@ -35494,7 +35505,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12665:1: 'SubSystemRef'
             {
              before(grammarAccess.getSubSystemRefAccess().getSubSystemRefKeyword_0()); 
-            match(input,79,FOLLOW_79_in_rule__SubSystemRef__Group__0__Impl25988); 
+            match(input,79,FOLLOW_79_in_rule__SubSystemRef__Group__0__Impl25989); 
              after(grammarAccess.getSubSystemRefAccess().getSubSystemRefKeyword_0()); 
 
             }
@@ -35527,12 +35538,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12682:1: ( rule__SubSystemRef__Group__1__Impl rule__SubSystemRef__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12683:2: rule__SubSystemRef__Group__1__Impl rule__SubSystemRef__Group__2
             {
-            pushFollow(FOLLOW_rule__SubSystemRef__Group__1__Impl_in_rule__SubSystemRef__Group__126019);
+            pushFollow(FOLLOW_rule__SubSystemRef__Group__1__Impl_in_rule__SubSystemRef__Group__126020);
             rule__SubSystemRef__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SubSystemRef__Group__2_in_rule__SubSystemRef__Group__126022);
+            pushFollow(FOLLOW_rule__SubSystemRef__Group__2_in_rule__SubSystemRef__Group__126023);
             rule__SubSystemRef__Group__2();
 
             state._fsp--;
@@ -35572,7 +35583,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12697:1: ( rule__SubSystemRef__NameAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12697:2: rule__SubSystemRef__NameAssignment_1
             {
-            pushFollow(FOLLOW_rule__SubSystemRef__NameAssignment_1_in_rule__SubSystemRef__Group__1__Impl26049);
+            pushFollow(FOLLOW_rule__SubSystemRef__NameAssignment_1_in_rule__SubSystemRef__Group__1__Impl26050);
             rule__SubSystemRef__NameAssignment_1();
 
             state._fsp--;
@@ -35612,12 +35623,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12711:1: ( rule__SubSystemRef__Group__2__Impl rule__SubSystemRef__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12712:2: rule__SubSystemRef__Group__2__Impl rule__SubSystemRef__Group__3
             {
-            pushFollow(FOLLOW_rule__SubSystemRef__Group__2__Impl_in_rule__SubSystemRef__Group__226079);
+            pushFollow(FOLLOW_rule__SubSystemRef__Group__2__Impl_in_rule__SubSystemRef__Group__226080);
             rule__SubSystemRef__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SubSystemRef__Group__3_in_rule__SubSystemRef__Group__226082);
+            pushFollow(FOLLOW_rule__SubSystemRef__Group__3_in_rule__SubSystemRef__Group__226083);
             rule__SubSystemRef__Group__3();
 
             state._fsp--;
@@ -35654,7 +35665,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12725:1: ':'
             {
              before(grammarAccess.getSubSystemRefAccess().getColonKeyword_2()); 
-            match(input,42,FOLLOW_42_in_rule__SubSystemRef__Group__2__Impl26110); 
+            match(input,42,FOLLOW_42_in_rule__SubSystemRef__Group__2__Impl26111); 
              after(grammarAccess.getSubSystemRefAccess().getColonKeyword_2()); 
 
             }
@@ -35687,12 +35698,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12742:1: ( rule__SubSystemRef__Group__3__Impl rule__SubSystemRef__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12743:2: rule__SubSystemRef__Group__3__Impl rule__SubSystemRef__Group__4
             {
-            pushFollow(FOLLOW_rule__SubSystemRef__Group__3__Impl_in_rule__SubSystemRef__Group__326141);
+            pushFollow(FOLLOW_rule__SubSystemRef__Group__3__Impl_in_rule__SubSystemRef__Group__326142);
             rule__SubSystemRef__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SubSystemRef__Group__4_in_rule__SubSystemRef__Group__326144);
+            pushFollow(FOLLOW_rule__SubSystemRef__Group__4_in_rule__SubSystemRef__Group__326145);
             rule__SubSystemRef__Group__4();
 
             state._fsp--;
@@ -35732,7 +35743,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12757:1: ( rule__SubSystemRef__TypeAssignment_3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12757:2: rule__SubSystemRef__TypeAssignment_3
             {
-            pushFollow(FOLLOW_rule__SubSystemRef__TypeAssignment_3_in_rule__SubSystemRef__Group__3__Impl26171);
+            pushFollow(FOLLOW_rule__SubSystemRef__TypeAssignment_3_in_rule__SubSystemRef__Group__3__Impl26172);
             rule__SubSystemRef__TypeAssignment_3();
 
             state._fsp--;
@@ -35772,7 +35783,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12771:1: ( rule__SubSystemRef__Group__4__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12772:2: rule__SubSystemRef__Group__4__Impl
             {
-            pushFollow(FOLLOW_rule__SubSystemRef__Group__4__Impl_in_rule__SubSystemRef__Group__426201);
+            pushFollow(FOLLOW_rule__SubSystemRef__Group__4__Impl_in_rule__SubSystemRef__Group__426202);
             rule__SubSystemRef__Group__4__Impl();
 
             state._fsp--;
@@ -35810,17 +35821,17 @@
             {
              before(grammarAccess.getSubSystemRefAccess().getDocuAssignment_4()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12785:1: ( rule__SubSystemRef__DocuAssignment_4 )?
-            int alt130=2;
-            int LA130_0 = input.LA(1);
+            int alt131=2;
+            int LA131_0 = input.LA(1);
 
-            if ( (LA130_0==58) ) {
-                alt130=1;
+            if ( (LA131_0==58) ) {
+                alt131=1;
             }
-            switch (alt130) {
+            switch (alt131) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12785:2: rule__SubSystemRef__DocuAssignment_4
                     {
-                    pushFollow(FOLLOW_rule__SubSystemRef__DocuAssignment_4_in_rule__SubSystemRef__Group__4__Impl26228);
+                    pushFollow(FOLLOW_rule__SubSystemRef__DocuAssignment_4_in_rule__SubSystemRef__Group__4__Impl26229);
                     rule__SubSystemRef__DocuAssignment_4();
 
                     state._fsp--;
@@ -35863,12 +35874,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12809:1: ( rule__SubSystemClass__Group__0__Impl rule__SubSystemClass__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12810:2: rule__SubSystemClass__Group__0__Impl rule__SubSystemClass__Group__1
             {
-            pushFollow(FOLLOW_rule__SubSystemClass__Group__0__Impl_in_rule__SubSystemClass__Group__026269);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group__0__Impl_in_rule__SubSystemClass__Group__026270);
             rule__SubSystemClass__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SubSystemClass__Group__1_in_rule__SubSystemClass__Group__026272);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group__1_in_rule__SubSystemClass__Group__026273);
             rule__SubSystemClass__Group__1();
 
             state._fsp--;
@@ -35905,7 +35916,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12823:1: 'SubSystemClass'
             {
              before(grammarAccess.getSubSystemClassAccess().getSubSystemClassKeyword_0()); 
-            match(input,22,FOLLOW_22_in_rule__SubSystemClass__Group__0__Impl26300); 
+            match(input,22,FOLLOW_22_in_rule__SubSystemClass__Group__0__Impl26301); 
              after(grammarAccess.getSubSystemClassAccess().getSubSystemClassKeyword_0()); 
 
             }
@@ -35938,12 +35949,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12840:1: ( rule__SubSystemClass__Group__1__Impl rule__SubSystemClass__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12841:2: rule__SubSystemClass__Group__1__Impl rule__SubSystemClass__Group__2
             {
-            pushFollow(FOLLOW_rule__SubSystemClass__Group__1__Impl_in_rule__SubSystemClass__Group__126331);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group__1__Impl_in_rule__SubSystemClass__Group__126332);
             rule__SubSystemClass__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SubSystemClass__Group__2_in_rule__SubSystemClass__Group__126334);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group__2_in_rule__SubSystemClass__Group__126335);
             rule__SubSystemClass__Group__2();
 
             state._fsp--;
@@ -35983,7 +35994,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12855:1: ( rule__SubSystemClass__NameAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12855:2: rule__SubSystemClass__NameAssignment_1
             {
-            pushFollow(FOLLOW_rule__SubSystemClass__NameAssignment_1_in_rule__SubSystemClass__Group__1__Impl26361);
+            pushFollow(FOLLOW_rule__SubSystemClass__NameAssignment_1_in_rule__SubSystemClass__Group__1__Impl26362);
             rule__SubSystemClass__NameAssignment_1();
 
             state._fsp--;
@@ -36023,12 +36034,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12869:1: ( rule__SubSystemClass__Group__2__Impl rule__SubSystemClass__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12870:2: rule__SubSystemClass__Group__2__Impl rule__SubSystemClass__Group__3
             {
-            pushFollow(FOLLOW_rule__SubSystemClass__Group__2__Impl_in_rule__SubSystemClass__Group__226391);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group__2__Impl_in_rule__SubSystemClass__Group__226392);
             rule__SubSystemClass__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SubSystemClass__Group__3_in_rule__SubSystemClass__Group__226394);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group__3_in_rule__SubSystemClass__Group__226395);
             rule__SubSystemClass__Group__3();
 
             state._fsp--;
@@ -36066,17 +36077,17 @@
             {
              before(grammarAccess.getSubSystemClassAccess().getDocuAssignment_2()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12884:1: ( rule__SubSystemClass__DocuAssignment_2 )?
-            int alt131=2;
-            int LA131_0 = input.LA(1);
+            int alt132=2;
+            int LA132_0 = input.LA(1);
 
-            if ( (LA131_0==58) ) {
-                alt131=1;
+            if ( (LA132_0==58) ) {
+                alt132=1;
             }
-            switch (alt131) {
+            switch (alt132) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12884:2: rule__SubSystemClass__DocuAssignment_2
                     {
-                    pushFollow(FOLLOW_rule__SubSystemClass__DocuAssignment_2_in_rule__SubSystemClass__Group__2__Impl26421);
+                    pushFollow(FOLLOW_rule__SubSystemClass__DocuAssignment_2_in_rule__SubSystemClass__Group__2__Impl26422);
                     rule__SubSystemClass__DocuAssignment_2();
 
                     state._fsp--;
@@ -36119,12 +36130,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12898:1: ( rule__SubSystemClass__Group__3__Impl rule__SubSystemClass__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12899:2: rule__SubSystemClass__Group__3__Impl rule__SubSystemClass__Group__4
             {
-            pushFollow(FOLLOW_rule__SubSystemClass__Group__3__Impl_in_rule__SubSystemClass__Group__326452);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group__3__Impl_in_rule__SubSystemClass__Group__326453);
             rule__SubSystemClass__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SubSystemClass__Group__4_in_rule__SubSystemClass__Group__326455);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group__4_in_rule__SubSystemClass__Group__326456);
             rule__SubSystemClass__Group__4();
 
             state._fsp--;
@@ -36161,7 +36172,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12912:1: '{'
             {
              before(grammarAccess.getSubSystemClassAccess().getLeftCurlyBracketKeyword_3()); 
-            match(input,40,FOLLOW_40_in_rule__SubSystemClass__Group__3__Impl26483); 
+            match(input,40,FOLLOW_40_in_rule__SubSystemClass__Group__3__Impl26484); 
              after(grammarAccess.getSubSystemClassAccess().getLeftCurlyBracketKeyword_3()); 
 
             }
@@ -36194,12 +36205,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12929:1: ( rule__SubSystemClass__Group__4__Impl rule__SubSystemClass__Group__5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12930:2: rule__SubSystemClass__Group__4__Impl rule__SubSystemClass__Group__5
             {
-            pushFollow(FOLLOW_rule__SubSystemClass__Group__4__Impl_in_rule__SubSystemClass__Group__426514);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group__4__Impl_in_rule__SubSystemClass__Group__426515);
             rule__SubSystemClass__Group__4__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SubSystemClass__Group__5_in_rule__SubSystemClass__Group__426517);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group__5_in_rule__SubSystemClass__Group__426518);
             rule__SubSystemClass__Group__5();
 
             state._fsp--;
@@ -36237,21 +36248,21 @@
             {
              before(grammarAccess.getSubSystemClassAccess().getAnnotationsAssignment_4()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12944:1: ( rule__SubSystemClass__AnnotationsAssignment_4 )*
-            loop132:
+            loop133:
             do {
-                int alt132=2;
-                int LA132_0 = input.LA(1);
+                int alt133=2;
+                int LA133_0 = input.LA(1);
 
-                if ( (LA132_0==119) ) {
-                    alt132=1;
+                if ( (LA133_0==119) ) {
+                    alt133=1;
                 }
 
 
-                switch (alt132) {
+                switch (alt133) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12944:2: rule__SubSystemClass__AnnotationsAssignment_4
             	    {
-            	    pushFollow(FOLLOW_rule__SubSystemClass__AnnotationsAssignment_4_in_rule__SubSystemClass__Group__4__Impl26544);
+            	    pushFollow(FOLLOW_rule__SubSystemClass__AnnotationsAssignment_4_in_rule__SubSystemClass__Group__4__Impl26545);
             	    rule__SubSystemClass__AnnotationsAssignment_4();
 
             	    state._fsp--;
@@ -36261,7 +36272,7 @@
             	    break;
 
             	default :
-            	    break loop132;
+            	    break loop133;
                 }
             } while (true);
 
@@ -36297,12 +36308,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12958:1: ( rule__SubSystemClass__Group__5__Impl rule__SubSystemClass__Group__6 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12959:2: rule__SubSystemClass__Group__5__Impl rule__SubSystemClass__Group__6
             {
-            pushFollow(FOLLOW_rule__SubSystemClass__Group__5__Impl_in_rule__SubSystemClass__Group__526575);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group__5__Impl_in_rule__SubSystemClass__Group__526576);
             rule__SubSystemClass__Group__5__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SubSystemClass__Group__6_in_rule__SubSystemClass__Group__526578);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group__6_in_rule__SubSystemClass__Group__526579);
             rule__SubSystemClass__Group__6();
 
             state._fsp--;
@@ -36340,17 +36351,17 @@
             {
              before(grammarAccess.getSubSystemClassAccess().getGroup_5()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12973:1: ( rule__SubSystemClass__Group_5__0 )?
-            int alt133=2;
-            int LA133_0 = input.LA(1);
+            int alt134=2;
+            int LA134_0 = input.LA(1);
 
-            if ( (LA133_0==54) ) {
-                alt133=1;
+            if ( (LA134_0==54) ) {
+                alt134=1;
             }
-            switch (alt133) {
+            switch (alt134) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12973:2: rule__SubSystemClass__Group_5__0
                     {
-                    pushFollow(FOLLOW_rule__SubSystemClass__Group_5__0_in_rule__SubSystemClass__Group__5__Impl26605);
+                    pushFollow(FOLLOW_rule__SubSystemClass__Group_5__0_in_rule__SubSystemClass__Group__5__Impl26606);
                     rule__SubSystemClass__Group_5__0();
 
                     state._fsp--;
@@ -36393,12 +36404,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12987:1: ( rule__SubSystemClass__Group__6__Impl rule__SubSystemClass__Group__7 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:12988:2: rule__SubSystemClass__Group__6__Impl rule__SubSystemClass__Group__7
             {
-            pushFollow(FOLLOW_rule__SubSystemClass__Group__6__Impl_in_rule__SubSystemClass__Group__626636);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group__6__Impl_in_rule__SubSystemClass__Group__626637);
             rule__SubSystemClass__Group__6__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SubSystemClass__Group__7_in_rule__SubSystemClass__Group__626639);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group__7_in_rule__SubSystemClass__Group__626640);
             rule__SubSystemClass__Group__7();
 
             state._fsp--;
@@ -36436,17 +36447,17 @@
             {
              before(grammarAccess.getSubSystemClassAccess().getGroup_6()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13002:1: ( rule__SubSystemClass__Group_6__0 )?
-            int alt134=2;
-            int LA134_0 = input.LA(1);
+            int alt135=2;
+            int LA135_0 = input.LA(1);
 
-            if ( (LA134_0==55) ) {
-                alt134=1;
+            if ( (LA135_0==55) ) {
+                alt135=1;
             }
-            switch (alt134) {
+            switch (alt135) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13002:2: rule__SubSystemClass__Group_6__0
                     {
-                    pushFollow(FOLLOW_rule__SubSystemClass__Group_6__0_in_rule__SubSystemClass__Group__6__Impl26666);
+                    pushFollow(FOLLOW_rule__SubSystemClass__Group_6__0_in_rule__SubSystemClass__Group__6__Impl26667);
                     rule__SubSystemClass__Group_6__0();
 
                     state._fsp--;
@@ -36489,12 +36500,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13016:1: ( rule__SubSystemClass__Group__7__Impl rule__SubSystemClass__Group__8 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13017:2: rule__SubSystemClass__Group__7__Impl rule__SubSystemClass__Group__8
             {
-            pushFollow(FOLLOW_rule__SubSystemClass__Group__7__Impl_in_rule__SubSystemClass__Group__726697);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group__7__Impl_in_rule__SubSystemClass__Group__726698);
             rule__SubSystemClass__Group__7__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SubSystemClass__Group__8_in_rule__SubSystemClass__Group__726700);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group__8_in_rule__SubSystemClass__Group__726701);
             rule__SubSystemClass__Group__8();
 
             state._fsp--;
@@ -36532,17 +36543,17 @@
             {
              before(grammarAccess.getSubSystemClassAccess().getGroup_7()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13031:1: ( rule__SubSystemClass__Group_7__0 )?
-            int alt135=2;
-            int LA135_0 = input.LA(1);
+            int alt136=2;
+            int LA136_0 = input.LA(1);
 
-            if ( (LA135_0==56) ) {
-                alt135=1;
+            if ( (LA136_0==56) ) {
+                alt136=1;
             }
-            switch (alt135) {
+            switch (alt136) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13031:2: rule__SubSystemClass__Group_7__0
                     {
-                    pushFollow(FOLLOW_rule__SubSystemClass__Group_7__0_in_rule__SubSystemClass__Group__7__Impl26727);
+                    pushFollow(FOLLOW_rule__SubSystemClass__Group_7__0_in_rule__SubSystemClass__Group__7__Impl26728);
                     rule__SubSystemClass__Group_7__0();
 
                     state._fsp--;
@@ -36585,12 +36596,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13045:1: ( rule__SubSystemClass__Group__8__Impl rule__SubSystemClass__Group__9 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13046:2: rule__SubSystemClass__Group__8__Impl rule__SubSystemClass__Group__9
             {
-            pushFollow(FOLLOW_rule__SubSystemClass__Group__8__Impl_in_rule__SubSystemClass__Group__826758);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group__8__Impl_in_rule__SubSystemClass__Group__826759);
             rule__SubSystemClass__Group__8__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SubSystemClass__Group__9_in_rule__SubSystemClass__Group__826761);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group__9_in_rule__SubSystemClass__Group__826762);
             rule__SubSystemClass__Group__9();
 
             state._fsp--;
@@ -36628,21 +36639,21 @@
             {
              before(grammarAccess.getSubSystemClassAccess().getAlternatives_8()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13060:1: ( rule__SubSystemClass__Alternatives_8 )*
-            loop136:
+            loop137:
             do {
-                int alt136=2;
-                int LA136_0 = input.LA(1);
+                int alt137=2;
+                int LA137_0 = input.LA(1);
 
-                if ( ((LA136_0>=32 && LA136_0<=33)||LA136_0==66||LA136_0==74||LA136_0==77||(LA136_0>=80 && LA136_0<=81)||LA136_0==83||LA136_0==87||LA136_0==91) ) {
-                    alt136=1;
+                if ( ((LA137_0>=32 && LA137_0<=33)||LA137_0==66||LA137_0==74||LA137_0==77||(LA137_0>=80 && LA137_0<=81)||LA137_0==83||LA137_0==87||LA137_0==91) ) {
+                    alt137=1;
                 }
 
 
-                switch (alt136) {
+                switch (alt137) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13060:2: rule__SubSystemClass__Alternatives_8
             	    {
-            	    pushFollow(FOLLOW_rule__SubSystemClass__Alternatives_8_in_rule__SubSystemClass__Group__8__Impl26788);
+            	    pushFollow(FOLLOW_rule__SubSystemClass__Alternatives_8_in_rule__SubSystemClass__Group__8__Impl26789);
             	    rule__SubSystemClass__Alternatives_8();
 
             	    state._fsp--;
@@ -36652,7 +36663,7 @@
             	    break;
 
             	default :
-            	    break loop136;
+            	    break loop137;
                 }
             } while (true);
 
@@ -36688,7 +36699,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13074:1: ( rule__SubSystemClass__Group__9__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13075:2: rule__SubSystemClass__Group__9__Impl
             {
-            pushFollow(FOLLOW_rule__SubSystemClass__Group__9__Impl_in_rule__SubSystemClass__Group__926819);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group__9__Impl_in_rule__SubSystemClass__Group__926820);
             rule__SubSystemClass__Group__9__Impl();
 
             state._fsp--;
@@ -36725,7 +36736,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13087:1: '}'
             {
              before(grammarAccess.getSubSystemClassAccess().getRightCurlyBracketKeyword_9()); 
-            match(input,41,FOLLOW_41_in_rule__SubSystemClass__Group__9__Impl26847); 
+            match(input,41,FOLLOW_41_in_rule__SubSystemClass__Group__9__Impl26848); 
              after(grammarAccess.getSubSystemClassAccess().getRightCurlyBracketKeyword_9()); 
 
             }
@@ -36758,12 +36769,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13124:1: ( rule__SubSystemClass__Group_5__0__Impl rule__SubSystemClass__Group_5__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13125:2: rule__SubSystemClass__Group_5__0__Impl rule__SubSystemClass__Group_5__1
             {
-            pushFollow(FOLLOW_rule__SubSystemClass__Group_5__0__Impl_in_rule__SubSystemClass__Group_5__026898);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group_5__0__Impl_in_rule__SubSystemClass__Group_5__026899);
             rule__SubSystemClass__Group_5__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SubSystemClass__Group_5__1_in_rule__SubSystemClass__Group_5__026901);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group_5__1_in_rule__SubSystemClass__Group_5__026902);
             rule__SubSystemClass__Group_5__1();
 
             state._fsp--;
@@ -36800,7 +36811,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13138:1: 'usercode1'
             {
              before(grammarAccess.getSubSystemClassAccess().getUsercode1Keyword_5_0()); 
-            match(input,54,FOLLOW_54_in_rule__SubSystemClass__Group_5__0__Impl26929); 
+            match(input,54,FOLLOW_54_in_rule__SubSystemClass__Group_5__0__Impl26930); 
              after(grammarAccess.getSubSystemClassAccess().getUsercode1Keyword_5_0()); 
 
             }
@@ -36833,7 +36844,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13155:1: ( rule__SubSystemClass__Group_5__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13156:2: rule__SubSystemClass__Group_5__1__Impl
             {
-            pushFollow(FOLLOW_rule__SubSystemClass__Group_5__1__Impl_in_rule__SubSystemClass__Group_5__126960);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group_5__1__Impl_in_rule__SubSystemClass__Group_5__126961);
             rule__SubSystemClass__Group_5__1__Impl();
 
             state._fsp--;
@@ -36873,7 +36884,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13169:1: ( rule__SubSystemClass__UserCode1Assignment_5_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13169:2: rule__SubSystemClass__UserCode1Assignment_5_1
             {
-            pushFollow(FOLLOW_rule__SubSystemClass__UserCode1Assignment_5_1_in_rule__SubSystemClass__Group_5__1__Impl26987);
+            pushFollow(FOLLOW_rule__SubSystemClass__UserCode1Assignment_5_1_in_rule__SubSystemClass__Group_5__1__Impl26988);
             rule__SubSystemClass__UserCode1Assignment_5_1();
 
             state._fsp--;
@@ -36913,12 +36924,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13187:1: ( rule__SubSystemClass__Group_6__0__Impl rule__SubSystemClass__Group_6__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13188:2: rule__SubSystemClass__Group_6__0__Impl rule__SubSystemClass__Group_6__1
             {
-            pushFollow(FOLLOW_rule__SubSystemClass__Group_6__0__Impl_in_rule__SubSystemClass__Group_6__027021);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group_6__0__Impl_in_rule__SubSystemClass__Group_6__027022);
             rule__SubSystemClass__Group_6__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SubSystemClass__Group_6__1_in_rule__SubSystemClass__Group_6__027024);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group_6__1_in_rule__SubSystemClass__Group_6__027025);
             rule__SubSystemClass__Group_6__1();
 
             state._fsp--;
@@ -36955,7 +36966,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13201:1: 'usercode2'
             {
              before(grammarAccess.getSubSystemClassAccess().getUsercode2Keyword_6_0()); 
-            match(input,55,FOLLOW_55_in_rule__SubSystemClass__Group_6__0__Impl27052); 
+            match(input,55,FOLLOW_55_in_rule__SubSystemClass__Group_6__0__Impl27053); 
              after(grammarAccess.getSubSystemClassAccess().getUsercode2Keyword_6_0()); 
 
             }
@@ -36988,7 +36999,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13218:1: ( rule__SubSystemClass__Group_6__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13219:2: rule__SubSystemClass__Group_6__1__Impl
             {
-            pushFollow(FOLLOW_rule__SubSystemClass__Group_6__1__Impl_in_rule__SubSystemClass__Group_6__127083);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group_6__1__Impl_in_rule__SubSystemClass__Group_6__127084);
             rule__SubSystemClass__Group_6__1__Impl();
 
             state._fsp--;
@@ -37028,7 +37039,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13232:1: ( rule__SubSystemClass__UserCode2Assignment_6_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13232:2: rule__SubSystemClass__UserCode2Assignment_6_1
             {
-            pushFollow(FOLLOW_rule__SubSystemClass__UserCode2Assignment_6_1_in_rule__SubSystemClass__Group_6__1__Impl27110);
+            pushFollow(FOLLOW_rule__SubSystemClass__UserCode2Assignment_6_1_in_rule__SubSystemClass__Group_6__1__Impl27111);
             rule__SubSystemClass__UserCode2Assignment_6_1();
 
             state._fsp--;
@@ -37068,12 +37079,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13250:1: ( rule__SubSystemClass__Group_7__0__Impl rule__SubSystemClass__Group_7__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13251:2: rule__SubSystemClass__Group_7__0__Impl rule__SubSystemClass__Group_7__1
             {
-            pushFollow(FOLLOW_rule__SubSystemClass__Group_7__0__Impl_in_rule__SubSystemClass__Group_7__027144);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group_7__0__Impl_in_rule__SubSystemClass__Group_7__027145);
             rule__SubSystemClass__Group_7__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SubSystemClass__Group_7__1_in_rule__SubSystemClass__Group_7__027147);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group_7__1_in_rule__SubSystemClass__Group_7__027148);
             rule__SubSystemClass__Group_7__1();
 
             state._fsp--;
@@ -37110,7 +37121,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13264:1: 'usercode3'
             {
              before(grammarAccess.getSubSystemClassAccess().getUsercode3Keyword_7_0()); 
-            match(input,56,FOLLOW_56_in_rule__SubSystemClass__Group_7__0__Impl27175); 
+            match(input,56,FOLLOW_56_in_rule__SubSystemClass__Group_7__0__Impl27176); 
              after(grammarAccess.getSubSystemClassAccess().getUsercode3Keyword_7_0()); 
 
             }
@@ -37143,7 +37154,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13281:1: ( rule__SubSystemClass__Group_7__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13282:2: rule__SubSystemClass__Group_7__1__Impl
             {
-            pushFollow(FOLLOW_rule__SubSystemClass__Group_7__1__Impl_in_rule__SubSystemClass__Group_7__127206);
+            pushFollow(FOLLOW_rule__SubSystemClass__Group_7__1__Impl_in_rule__SubSystemClass__Group_7__127207);
             rule__SubSystemClass__Group_7__1__Impl();
 
             state._fsp--;
@@ -37183,7 +37194,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13295:1: ( rule__SubSystemClass__UserCode3Assignment_7_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13295:2: rule__SubSystemClass__UserCode3Assignment_7_1
             {
-            pushFollow(FOLLOW_rule__SubSystemClass__UserCode3Assignment_7_1_in_rule__SubSystemClass__Group_7__1__Impl27233);
+            pushFollow(FOLLOW_rule__SubSystemClass__UserCode3Assignment_7_1_in_rule__SubSystemClass__Group_7__1__Impl27234);
             rule__SubSystemClass__UserCode3Assignment_7_1();
 
             state._fsp--;
@@ -37223,12 +37234,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13313:1: ( rule__LogicalThread__Group__0__Impl rule__LogicalThread__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13314:2: rule__LogicalThread__Group__0__Impl rule__LogicalThread__Group__1
             {
-            pushFollow(FOLLOW_rule__LogicalThread__Group__0__Impl_in_rule__LogicalThread__Group__027267);
+            pushFollow(FOLLOW_rule__LogicalThread__Group__0__Impl_in_rule__LogicalThread__Group__027268);
             rule__LogicalThread__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__LogicalThread__Group__1_in_rule__LogicalThread__Group__027270);
+            pushFollow(FOLLOW_rule__LogicalThread__Group__1_in_rule__LogicalThread__Group__027271);
             rule__LogicalThread__Group__1();
 
             state._fsp--;
@@ -37265,7 +37276,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13327:1: 'LogicalThread'
             {
              before(grammarAccess.getLogicalThreadAccess().getLogicalThreadKeyword_0()); 
-            match(input,80,FOLLOW_80_in_rule__LogicalThread__Group__0__Impl27298); 
+            match(input,80,FOLLOW_80_in_rule__LogicalThread__Group__0__Impl27299); 
              after(grammarAccess.getLogicalThreadAccess().getLogicalThreadKeyword_0()); 
 
             }
@@ -37298,7 +37309,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13344:1: ( rule__LogicalThread__Group__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13345:2: rule__LogicalThread__Group__1__Impl
             {
-            pushFollow(FOLLOW_rule__LogicalThread__Group__1__Impl_in_rule__LogicalThread__Group__127329);
+            pushFollow(FOLLOW_rule__LogicalThread__Group__1__Impl_in_rule__LogicalThread__Group__127330);
             rule__LogicalThread__Group__1__Impl();
 
             state._fsp--;
@@ -37338,7 +37349,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13358:1: ( rule__LogicalThread__NameAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13358:2: rule__LogicalThread__NameAssignment_1
             {
-            pushFollow(FOLLOW_rule__LogicalThread__NameAssignment_1_in_rule__LogicalThread__Group__1__Impl27356);
+            pushFollow(FOLLOW_rule__LogicalThread__NameAssignment_1_in_rule__LogicalThread__Group__1__Impl27357);
             rule__LogicalThread__NameAssignment_1();
 
             state._fsp--;
@@ -37378,12 +37389,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13376:1: ( rule__ActorInstanceMapping__Group__0__Impl rule__ActorInstanceMapping__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13377:2: rule__ActorInstanceMapping__Group__0__Impl rule__ActorInstanceMapping__Group__1
             {
-            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group__0__Impl_in_rule__ActorInstanceMapping__Group__027390);
+            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group__0__Impl_in_rule__ActorInstanceMapping__Group__027391);
             rule__ActorInstanceMapping__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group__1_in_rule__ActorInstanceMapping__Group__027393);
+            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group__1_in_rule__ActorInstanceMapping__Group__027394);
             rule__ActorInstanceMapping__Group__1();
 
             state._fsp--;
@@ -37420,7 +37431,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13390:1: 'ActorInstanceMapping'
             {
              before(grammarAccess.getActorInstanceMappingAccess().getActorInstanceMappingKeyword_0()); 
-            match(input,81,FOLLOW_81_in_rule__ActorInstanceMapping__Group__0__Impl27421); 
+            match(input,81,FOLLOW_81_in_rule__ActorInstanceMapping__Group__0__Impl27422); 
              after(grammarAccess.getActorInstanceMappingAccess().getActorInstanceMappingKeyword_0()); 
 
             }
@@ -37453,12 +37464,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13407:1: ( rule__ActorInstanceMapping__Group__1__Impl rule__ActorInstanceMapping__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13408:2: rule__ActorInstanceMapping__Group__1__Impl rule__ActorInstanceMapping__Group__2
             {
-            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group__1__Impl_in_rule__ActorInstanceMapping__Group__127452);
+            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group__1__Impl_in_rule__ActorInstanceMapping__Group__127453);
             rule__ActorInstanceMapping__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group__2_in_rule__ActorInstanceMapping__Group__127455);
+            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group__2_in_rule__ActorInstanceMapping__Group__127456);
             rule__ActorInstanceMapping__Group__2();
 
             state._fsp--;
@@ -37498,7 +37509,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13422:1: ( rule__ActorInstanceMapping__PathAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13422:2: rule__ActorInstanceMapping__PathAssignment_1
             {
-            pushFollow(FOLLOW_rule__ActorInstanceMapping__PathAssignment_1_in_rule__ActorInstanceMapping__Group__1__Impl27482);
+            pushFollow(FOLLOW_rule__ActorInstanceMapping__PathAssignment_1_in_rule__ActorInstanceMapping__Group__1__Impl27483);
             rule__ActorInstanceMapping__PathAssignment_1();
 
             state._fsp--;
@@ -37538,12 +37549,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13436:1: ( rule__ActorInstanceMapping__Group__2__Impl rule__ActorInstanceMapping__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13437:2: rule__ActorInstanceMapping__Group__2__Impl rule__ActorInstanceMapping__Group__3
             {
-            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group__2__Impl_in_rule__ActorInstanceMapping__Group__227512);
+            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group__2__Impl_in_rule__ActorInstanceMapping__Group__227513);
             rule__ActorInstanceMapping__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group__3_in_rule__ActorInstanceMapping__Group__227515);
+            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group__3_in_rule__ActorInstanceMapping__Group__227516);
             rule__ActorInstanceMapping__Group__3();
 
             state._fsp--;
@@ -37580,7 +37591,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13450:1: '->'
             {
              before(grammarAccess.getActorInstanceMappingAccess().getHyphenMinusGreaterThanSignKeyword_2()); 
-            match(input,44,FOLLOW_44_in_rule__ActorInstanceMapping__Group__2__Impl27543); 
+            match(input,44,FOLLOW_44_in_rule__ActorInstanceMapping__Group__2__Impl27544); 
              after(grammarAccess.getActorInstanceMappingAccess().getHyphenMinusGreaterThanSignKeyword_2()); 
 
             }
@@ -37613,12 +37624,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13467:1: ( rule__ActorInstanceMapping__Group__3__Impl rule__ActorInstanceMapping__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13468:2: rule__ActorInstanceMapping__Group__3__Impl rule__ActorInstanceMapping__Group__4
             {
-            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group__3__Impl_in_rule__ActorInstanceMapping__Group__327574);
+            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group__3__Impl_in_rule__ActorInstanceMapping__Group__327575);
             rule__ActorInstanceMapping__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group__4_in_rule__ActorInstanceMapping__Group__327577);
+            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group__4_in_rule__ActorInstanceMapping__Group__327578);
             rule__ActorInstanceMapping__Group__4();
 
             state._fsp--;
@@ -37658,7 +37669,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13482:1: ( rule__ActorInstanceMapping__ThreadAssignment_3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13482:2: rule__ActorInstanceMapping__ThreadAssignment_3
             {
-            pushFollow(FOLLOW_rule__ActorInstanceMapping__ThreadAssignment_3_in_rule__ActorInstanceMapping__Group__3__Impl27604);
+            pushFollow(FOLLOW_rule__ActorInstanceMapping__ThreadAssignment_3_in_rule__ActorInstanceMapping__Group__3__Impl27605);
             rule__ActorInstanceMapping__ThreadAssignment_3();
 
             state._fsp--;
@@ -37698,7 +37709,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13496:1: ( rule__ActorInstanceMapping__Group__4__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13497:2: rule__ActorInstanceMapping__Group__4__Impl
             {
-            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group__4__Impl_in_rule__ActorInstanceMapping__Group__427634);
+            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group__4__Impl_in_rule__ActorInstanceMapping__Group__427635);
             rule__ActorInstanceMapping__Group__4__Impl();
 
             state._fsp--;
@@ -37736,17 +37747,17 @@
             {
              before(grammarAccess.getActorInstanceMappingAccess().getGroup_4()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13510:1: ( rule__ActorInstanceMapping__Group_4__0 )?
-            int alt137=2;
-            int LA137_0 = input.LA(1);
+            int alt138=2;
+            int LA138_0 = input.LA(1);
 
-            if ( (LA137_0==40) ) {
-                alt137=1;
+            if ( (LA138_0==40) ) {
+                alt138=1;
             }
-            switch (alt137) {
+            switch (alt138) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13510:2: rule__ActorInstanceMapping__Group_4__0
                     {
-                    pushFollow(FOLLOW_rule__ActorInstanceMapping__Group_4__0_in_rule__ActorInstanceMapping__Group__4__Impl27661);
+                    pushFollow(FOLLOW_rule__ActorInstanceMapping__Group_4__0_in_rule__ActorInstanceMapping__Group__4__Impl27662);
                     rule__ActorInstanceMapping__Group_4__0();
 
                     state._fsp--;
@@ -37789,12 +37800,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13534:1: ( rule__ActorInstanceMapping__Group_4__0__Impl rule__ActorInstanceMapping__Group_4__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13535:2: rule__ActorInstanceMapping__Group_4__0__Impl rule__ActorInstanceMapping__Group_4__1
             {
-            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group_4__0__Impl_in_rule__ActorInstanceMapping__Group_4__027702);
+            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group_4__0__Impl_in_rule__ActorInstanceMapping__Group_4__027703);
             rule__ActorInstanceMapping__Group_4__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group_4__1_in_rule__ActorInstanceMapping__Group_4__027705);
+            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group_4__1_in_rule__ActorInstanceMapping__Group_4__027706);
             rule__ActorInstanceMapping__Group_4__1();
 
             state._fsp--;
@@ -37831,7 +37842,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13548:1: '{'
             {
              before(grammarAccess.getActorInstanceMappingAccess().getLeftCurlyBracketKeyword_4_0()); 
-            match(input,40,FOLLOW_40_in_rule__ActorInstanceMapping__Group_4__0__Impl27733); 
+            match(input,40,FOLLOW_40_in_rule__ActorInstanceMapping__Group_4__0__Impl27734); 
              after(grammarAccess.getActorInstanceMappingAccess().getLeftCurlyBracketKeyword_4_0()); 
 
             }
@@ -37864,12 +37875,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13565:1: ( rule__ActorInstanceMapping__Group_4__1__Impl rule__ActorInstanceMapping__Group_4__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13566:2: rule__ActorInstanceMapping__Group_4__1__Impl rule__ActorInstanceMapping__Group_4__2
             {
-            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group_4__1__Impl_in_rule__ActorInstanceMapping__Group_4__127764);
+            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group_4__1__Impl_in_rule__ActorInstanceMapping__Group_4__127765);
             rule__ActorInstanceMapping__Group_4__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group_4__2_in_rule__ActorInstanceMapping__Group_4__127767);
+            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group_4__2_in_rule__ActorInstanceMapping__Group_4__127768);
             rule__ActorInstanceMapping__Group_4__2();
 
             state._fsp--;
@@ -37907,21 +37918,21 @@
             {
              before(grammarAccess.getActorInstanceMappingAccess().getActorInstanceMappingsAssignment_4_1()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13580:1: ( rule__ActorInstanceMapping__ActorInstanceMappingsAssignment_4_1 )*
-            loop138:
+            loop139:
             do {
-                int alt138=2;
-                int LA138_0 = input.LA(1);
+                int alt139=2;
+                int LA139_0 = input.LA(1);
 
-                if ( (LA138_0==81) ) {
-                    alt138=1;
+                if ( (LA139_0==81) ) {
+                    alt139=1;
                 }
 
 
-                switch (alt138) {
+                switch (alt139) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13580:2: rule__ActorInstanceMapping__ActorInstanceMappingsAssignment_4_1
             	    {
-            	    pushFollow(FOLLOW_rule__ActorInstanceMapping__ActorInstanceMappingsAssignment_4_1_in_rule__ActorInstanceMapping__Group_4__1__Impl27794);
+            	    pushFollow(FOLLOW_rule__ActorInstanceMapping__ActorInstanceMappingsAssignment_4_1_in_rule__ActorInstanceMapping__Group_4__1__Impl27795);
             	    rule__ActorInstanceMapping__ActorInstanceMappingsAssignment_4_1();
 
             	    state._fsp--;
@@ -37931,7 +37942,7 @@
             	    break;
 
             	default :
-            	    break loop138;
+            	    break loop139;
                 }
             } while (true);
 
@@ -37967,7 +37978,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13594:1: ( rule__ActorInstanceMapping__Group_4__2__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13595:2: rule__ActorInstanceMapping__Group_4__2__Impl
             {
-            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group_4__2__Impl_in_rule__ActorInstanceMapping__Group_4__227825);
+            pushFollow(FOLLOW_rule__ActorInstanceMapping__Group_4__2__Impl_in_rule__ActorInstanceMapping__Group_4__227826);
             rule__ActorInstanceMapping__Group_4__2__Impl();
 
             state._fsp--;
@@ -38004,7 +38015,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13607:1: '}'
             {
              before(grammarAccess.getActorInstanceMappingAccess().getRightCurlyBracketKeyword_4_2()); 
-            match(input,41,FOLLOW_41_in_rule__ActorInstanceMapping__Group_4__2__Impl27853); 
+            match(input,41,FOLLOW_41_in_rule__ActorInstanceMapping__Group_4__2__Impl27854); 
              after(grammarAccess.getActorInstanceMappingAccess().getRightCurlyBracketKeyword_4_2()); 
 
             }
@@ -38037,12 +38048,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13630:1: ( rule__RefPath__Group__0__Impl rule__RefPath__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13631:2: rule__RefPath__Group__0__Impl rule__RefPath__Group__1
             {
-            pushFollow(FOLLOW_rule__RefPath__Group__0__Impl_in_rule__RefPath__Group__027890);
+            pushFollow(FOLLOW_rule__RefPath__Group__0__Impl_in_rule__RefPath__Group__027891);
             rule__RefPath__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RefPath__Group__1_in_rule__RefPath__Group__027893);
+            pushFollow(FOLLOW_rule__RefPath__Group__1_in_rule__RefPath__Group__027894);
             rule__RefPath__Group__1();
 
             state._fsp--;
@@ -38082,7 +38093,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13645:1: ( rule__RefPath__RefsAssignment_0 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13645:2: rule__RefPath__RefsAssignment_0
             {
-            pushFollow(FOLLOW_rule__RefPath__RefsAssignment_0_in_rule__RefPath__Group__0__Impl27920);
+            pushFollow(FOLLOW_rule__RefPath__RefsAssignment_0_in_rule__RefPath__Group__0__Impl27921);
             rule__RefPath__RefsAssignment_0();
 
             state._fsp--;
@@ -38122,7 +38133,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13659:1: ( rule__RefPath__Group__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13660:2: rule__RefPath__Group__1__Impl
             {
-            pushFollow(FOLLOW_rule__RefPath__Group__1__Impl_in_rule__RefPath__Group__127950);
+            pushFollow(FOLLOW_rule__RefPath__Group__1__Impl_in_rule__RefPath__Group__127951);
             rule__RefPath__Group__1__Impl();
 
             state._fsp--;
@@ -38160,21 +38171,21 @@
             {
              before(grammarAccess.getRefPathAccess().getGroup_1()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13673:1: ( rule__RefPath__Group_1__0 )*
-            loop139:
+            loop140:
             do {
-                int alt139=2;
-                int LA139_0 = input.LA(1);
+                int alt140=2;
+                int LA140_0 = input.LA(1);
 
-                if ( (LA139_0==82) ) {
-                    alt139=1;
+                if ( (LA140_0==82) ) {
+                    alt140=1;
                 }
 
 
-                switch (alt139) {
+                switch (alt140) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13673:2: rule__RefPath__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_rule__RefPath__Group_1__0_in_rule__RefPath__Group__1__Impl27977);
+            	    pushFollow(FOLLOW_rule__RefPath__Group_1__0_in_rule__RefPath__Group__1__Impl27978);
             	    rule__RefPath__Group_1__0();
 
             	    state._fsp--;
@@ -38184,7 +38195,7 @@
             	    break;
 
             	default :
-            	    break loop139;
+            	    break loop140;
                 }
             } while (true);
 
@@ -38220,12 +38231,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13691:1: ( rule__RefPath__Group_1__0__Impl rule__RefPath__Group_1__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13692:2: rule__RefPath__Group_1__0__Impl rule__RefPath__Group_1__1
             {
-            pushFollow(FOLLOW_rule__RefPath__Group_1__0__Impl_in_rule__RefPath__Group_1__028012);
+            pushFollow(FOLLOW_rule__RefPath__Group_1__0__Impl_in_rule__RefPath__Group_1__028013);
             rule__RefPath__Group_1__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RefPath__Group_1__1_in_rule__RefPath__Group_1__028015);
+            pushFollow(FOLLOW_rule__RefPath__Group_1__1_in_rule__RefPath__Group_1__028016);
             rule__RefPath__Group_1__1();
 
             state._fsp--;
@@ -38262,7 +38273,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13705:1: '/'
             {
              before(grammarAccess.getRefPathAccess().getSolidusKeyword_1_0()); 
-            match(input,82,FOLLOW_82_in_rule__RefPath__Group_1__0__Impl28043); 
+            match(input,82,FOLLOW_82_in_rule__RefPath__Group_1__0__Impl28044); 
              after(grammarAccess.getRefPathAccess().getSolidusKeyword_1_0()); 
 
             }
@@ -38295,7 +38306,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13722:1: ( rule__RefPath__Group_1__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13723:2: rule__RefPath__Group_1__1__Impl
             {
-            pushFollow(FOLLOW_rule__RefPath__Group_1__1__Impl_in_rule__RefPath__Group_1__128074);
+            pushFollow(FOLLOW_rule__RefPath__Group_1__1__Impl_in_rule__RefPath__Group_1__128075);
             rule__RefPath__Group_1__1__Impl();
 
             state._fsp--;
@@ -38335,7 +38346,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13736:1: ( rule__RefPath__RefsAssignment_1_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13736:2: rule__RefPath__RefsAssignment_1_1
             {
-            pushFollow(FOLLOW_rule__RefPath__RefsAssignment_1_1_in_rule__RefPath__Group_1__1__Impl28101);
+            pushFollow(FOLLOW_rule__RefPath__RefsAssignment_1_1_in_rule__RefPath__Group_1__1__Impl28102);
             rule__RefPath__RefsAssignment_1_1();
 
             state._fsp--;
@@ -38375,12 +38386,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13754:1: ( rule__RefSegment__Group__0__Impl rule__RefSegment__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13755:2: rule__RefSegment__Group__0__Impl rule__RefSegment__Group__1
             {
-            pushFollow(FOLLOW_rule__RefSegment__Group__0__Impl_in_rule__RefSegment__Group__028135);
+            pushFollow(FOLLOW_rule__RefSegment__Group__0__Impl_in_rule__RefSegment__Group__028136);
             rule__RefSegment__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RefSegment__Group__1_in_rule__RefSegment__Group__028138);
+            pushFollow(FOLLOW_rule__RefSegment__Group__1_in_rule__RefSegment__Group__028139);
             rule__RefSegment__Group__1();
 
             state._fsp--;
@@ -38420,7 +38431,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13769:1: ( rule__RefSegment__RefAssignment_0 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13769:2: rule__RefSegment__RefAssignment_0
             {
-            pushFollow(FOLLOW_rule__RefSegment__RefAssignment_0_in_rule__RefSegment__Group__0__Impl28165);
+            pushFollow(FOLLOW_rule__RefSegment__RefAssignment_0_in_rule__RefSegment__Group__0__Impl28166);
             rule__RefSegment__RefAssignment_0();
 
             state._fsp--;
@@ -38460,7 +38471,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13783:1: ( rule__RefSegment__Group__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13784:2: rule__RefSegment__Group__1__Impl
             {
-            pushFollow(FOLLOW_rule__RefSegment__Group__1__Impl_in_rule__RefSegment__Group__128195);
+            pushFollow(FOLLOW_rule__RefSegment__Group__1__Impl_in_rule__RefSegment__Group__128196);
             rule__RefSegment__Group__1__Impl();
 
             state._fsp--;
@@ -38498,17 +38509,17 @@
             {
              before(grammarAccess.getRefSegmentAccess().getGroup_1()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13797:1: ( rule__RefSegment__Group_1__0 )?
-            int alt140=2;
-            int LA140_0 = input.LA(1);
+            int alt141=2;
+            int LA141_0 = input.LA(1);
 
-            if ( (LA140_0==42) ) {
-                alt140=1;
+            if ( (LA141_0==42) ) {
+                alt141=1;
             }
-            switch (alt140) {
+            switch (alt141) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13797:2: rule__RefSegment__Group_1__0
                     {
-                    pushFollow(FOLLOW_rule__RefSegment__Group_1__0_in_rule__RefSegment__Group__1__Impl28222);
+                    pushFollow(FOLLOW_rule__RefSegment__Group_1__0_in_rule__RefSegment__Group__1__Impl28223);
                     rule__RefSegment__Group_1__0();
 
                     state._fsp--;
@@ -38551,12 +38562,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13815:1: ( rule__RefSegment__Group_1__0__Impl rule__RefSegment__Group_1__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13816:2: rule__RefSegment__Group_1__0__Impl rule__RefSegment__Group_1__1
             {
-            pushFollow(FOLLOW_rule__RefSegment__Group_1__0__Impl_in_rule__RefSegment__Group_1__028257);
+            pushFollow(FOLLOW_rule__RefSegment__Group_1__0__Impl_in_rule__RefSegment__Group_1__028258);
             rule__RefSegment__Group_1__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RefSegment__Group_1__1_in_rule__RefSegment__Group_1__028260);
+            pushFollow(FOLLOW_rule__RefSegment__Group_1__1_in_rule__RefSegment__Group_1__028261);
             rule__RefSegment__Group_1__1();
 
             state._fsp--;
@@ -38593,7 +38604,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13829:1: ':'
             {
              before(grammarAccess.getRefSegmentAccess().getColonKeyword_1_0()); 
-            match(input,42,FOLLOW_42_in_rule__RefSegment__Group_1__0__Impl28288); 
+            match(input,42,FOLLOW_42_in_rule__RefSegment__Group_1__0__Impl28289); 
              after(grammarAccess.getRefSegmentAccess().getColonKeyword_1_0()); 
 
             }
@@ -38626,7 +38637,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13846:1: ( rule__RefSegment__Group_1__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13847:2: rule__RefSegment__Group_1__1__Impl
             {
-            pushFollow(FOLLOW_rule__RefSegment__Group_1__1__Impl_in_rule__RefSegment__Group_1__128319);
+            pushFollow(FOLLOW_rule__RefSegment__Group_1__1__Impl_in_rule__RefSegment__Group_1__128320);
             rule__RefSegment__Group_1__1__Impl();
 
             state._fsp--;
@@ -38666,7 +38677,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13860:1: ( rule__RefSegment__IdxAssignment_1_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13860:2: rule__RefSegment__IdxAssignment_1_1
             {
-            pushFollow(FOLLOW_rule__RefSegment__IdxAssignment_1_1_in_rule__RefSegment__Group_1__1__Impl28346);
+            pushFollow(FOLLOW_rule__RefSegment__IdxAssignment_1_1_in_rule__RefSegment__Group_1__1__Impl28347);
             rule__RefSegment__IdxAssignment_1_1();
 
             state._fsp--;
@@ -38706,12 +38717,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13878:1: ( rule__Binding__Group__0__Impl rule__Binding__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13879:2: rule__Binding__Group__0__Impl rule__Binding__Group__1
             {
-            pushFollow(FOLLOW_rule__Binding__Group__0__Impl_in_rule__Binding__Group__028380);
+            pushFollow(FOLLOW_rule__Binding__Group__0__Impl_in_rule__Binding__Group__028381);
             rule__Binding__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Binding__Group__1_in_rule__Binding__Group__028383);
+            pushFollow(FOLLOW_rule__Binding__Group__1_in_rule__Binding__Group__028384);
             rule__Binding__Group__1();
 
             state._fsp--;
@@ -38748,7 +38759,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13892:1: 'Binding'
             {
              before(grammarAccess.getBindingAccess().getBindingKeyword_0()); 
-            match(input,83,FOLLOW_83_in_rule__Binding__Group__0__Impl28411); 
+            match(input,83,FOLLOW_83_in_rule__Binding__Group__0__Impl28412); 
              after(grammarAccess.getBindingAccess().getBindingKeyword_0()); 
 
             }
@@ -38781,12 +38792,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13909:1: ( rule__Binding__Group__1__Impl rule__Binding__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13910:2: rule__Binding__Group__1__Impl rule__Binding__Group__2
             {
-            pushFollow(FOLLOW_rule__Binding__Group__1__Impl_in_rule__Binding__Group__128442);
+            pushFollow(FOLLOW_rule__Binding__Group__1__Impl_in_rule__Binding__Group__128443);
             rule__Binding__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Binding__Group__2_in_rule__Binding__Group__128445);
+            pushFollow(FOLLOW_rule__Binding__Group__2_in_rule__Binding__Group__128446);
             rule__Binding__Group__2();
 
             state._fsp--;
@@ -38826,7 +38837,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13924:1: ( rule__Binding__Endpoint1Assignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13924:2: rule__Binding__Endpoint1Assignment_1
             {
-            pushFollow(FOLLOW_rule__Binding__Endpoint1Assignment_1_in_rule__Binding__Group__1__Impl28472);
+            pushFollow(FOLLOW_rule__Binding__Endpoint1Assignment_1_in_rule__Binding__Group__1__Impl28473);
             rule__Binding__Endpoint1Assignment_1();
 
             state._fsp--;
@@ -38866,12 +38877,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13938:1: ( rule__Binding__Group__2__Impl rule__Binding__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13939:2: rule__Binding__Group__2__Impl rule__Binding__Group__3
             {
-            pushFollow(FOLLOW_rule__Binding__Group__2__Impl_in_rule__Binding__Group__228502);
+            pushFollow(FOLLOW_rule__Binding__Group__2__Impl_in_rule__Binding__Group__228503);
             rule__Binding__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Binding__Group__3_in_rule__Binding__Group__228505);
+            pushFollow(FOLLOW_rule__Binding__Group__3_in_rule__Binding__Group__228506);
             rule__Binding__Group__3();
 
             state._fsp--;
@@ -38908,7 +38919,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13952:1: 'and'
             {
              before(grammarAccess.getBindingAccess().getAndKeyword_2()); 
-            match(input,84,FOLLOW_84_in_rule__Binding__Group__2__Impl28533); 
+            match(input,84,FOLLOW_84_in_rule__Binding__Group__2__Impl28534); 
              after(grammarAccess.getBindingAccess().getAndKeyword_2()); 
 
             }
@@ -38941,7 +38952,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13969:1: ( rule__Binding__Group__3__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13970:2: rule__Binding__Group__3__Impl
             {
-            pushFollow(FOLLOW_rule__Binding__Group__3__Impl_in_rule__Binding__Group__328564);
+            pushFollow(FOLLOW_rule__Binding__Group__3__Impl_in_rule__Binding__Group__328565);
             rule__Binding__Group__3__Impl();
 
             state._fsp--;
@@ -38981,7 +38992,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13983:1: ( rule__Binding__Endpoint2Assignment_3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:13983:2: rule__Binding__Endpoint2Assignment_3
             {
-            pushFollow(FOLLOW_rule__Binding__Endpoint2Assignment_3_in_rule__Binding__Group__3__Impl28591);
+            pushFollow(FOLLOW_rule__Binding__Endpoint2Assignment_3_in_rule__Binding__Group__3__Impl28592);
             rule__Binding__Endpoint2Assignment_3();
 
             state._fsp--;
@@ -39021,12 +39032,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14005:1: ( rule__BindingEndPoint__Group__0__Impl rule__BindingEndPoint__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14006:2: rule__BindingEndPoint__Group__0__Impl rule__BindingEndPoint__Group__1
             {
-            pushFollow(FOLLOW_rule__BindingEndPoint__Group__0__Impl_in_rule__BindingEndPoint__Group__028629);
+            pushFollow(FOLLOW_rule__BindingEndPoint__Group__0__Impl_in_rule__BindingEndPoint__Group__028630);
             rule__BindingEndPoint__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__BindingEndPoint__Group__1_in_rule__BindingEndPoint__Group__028632);
+            pushFollow(FOLLOW_rule__BindingEndPoint__Group__1_in_rule__BindingEndPoint__Group__028633);
             rule__BindingEndPoint__Group__1();
 
             state._fsp--;
@@ -39064,21 +39075,21 @@
             {
              before(grammarAccess.getBindingEndPointAccess().getGroup_0()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14020:1: ( rule__BindingEndPoint__Group_0__0 )?
-            int alt141=2;
-            int LA141_0 = input.LA(1);
+            int alt142=2;
+            int LA142_0 = input.LA(1);
 
-            if ( (LA141_0==RULE_ID) ) {
-                int LA141_1 = input.LA(2);
+            if ( (LA142_0==RULE_ID) ) {
+                int LA142_1 = input.LA(2);
 
-                if ( (LA141_1==85) ) {
-                    alt141=1;
+                if ( (LA142_1==85) ) {
+                    alt142=1;
                 }
             }
-            switch (alt141) {
+            switch (alt142) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14020:2: rule__BindingEndPoint__Group_0__0
                     {
-                    pushFollow(FOLLOW_rule__BindingEndPoint__Group_0__0_in_rule__BindingEndPoint__Group__0__Impl28659);
+                    pushFollow(FOLLOW_rule__BindingEndPoint__Group_0__0_in_rule__BindingEndPoint__Group__0__Impl28660);
                     rule__BindingEndPoint__Group_0__0();
 
                     state._fsp--;
@@ -39121,12 +39132,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14034:1: ( rule__BindingEndPoint__Group__1__Impl rule__BindingEndPoint__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14035:2: rule__BindingEndPoint__Group__1__Impl rule__BindingEndPoint__Group__2
             {
-            pushFollow(FOLLOW_rule__BindingEndPoint__Group__1__Impl_in_rule__BindingEndPoint__Group__128690);
+            pushFollow(FOLLOW_rule__BindingEndPoint__Group__1__Impl_in_rule__BindingEndPoint__Group__128691);
             rule__BindingEndPoint__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__BindingEndPoint__Group__2_in_rule__BindingEndPoint__Group__128693);
+            pushFollow(FOLLOW_rule__BindingEndPoint__Group__2_in_rule__BindingEndPoint__Group__128694);
             rule__BindingEndPoint__Group__2();
 
             state._fsp--;
@@ -39166,7 +39177,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14049:1: ( rule__BindingEndPoint__PortAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14049:2: rule__BindingEndPoint__PortAssignment_1
             {
-            pushFollow(FOLLOW_rule__BindingEndPoint__PortAssignment_1_in_rule__BindingEndPoint__Group__1__Impl28720);
+            pushFollow(FOLLOW_rule__BindingEndPoint__PortAssignment_1_in_rule__BindingEndPoint__Group__1__Impl28721);
             rule__BindingEndPoint__PortAssignment_1();
 
             state._fsp--;
@@ -39206,7 +39217,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14063:1: ( rule__BindingEndPoint__Group__2__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14064:2: rule__BindingEndPoint__Group__2__Impl
             {
-            pushFollow(FOLLOW_rule__BindingEndPoint__Group__2__Impl_in_rule__BindingEndPoint__Group__228750);
+            pushFollow(FOLLOW_rule__BindingEndPoint__Group__2__Impl_in_rule__BindingEndPoint__Group__228751);
             rule__BindingEndPoint__Group__2__Impl();
 
             state._fsp--;
@@ -39244,17 +39255,17 @@
             {
              before(grammarAccess.getBindingEndPointAccess().getGroup_2()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14077:1: ( rule__BindingEndPoint__Group_2__0 )?
-            int alt142=2;
-            int LA142_0 = input.LA(1);
+            int alt143=2;
+            int LA143_0 = input.LA(1);
 
-            if ( (LA142_0==86) ) {
-                alt142=1;
+            if ( (LA143_0==86) ) {
+                alt143=1;
             }
-            switch (alt142) {
+            switch (alt143) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14077:2: rule__BindingEndPoint__Group_2__0
                     {
-                    pushFollow(FOLLOW_rule__BindingEndPoint__Group_2__0_in_rule__BindingEndPoint__Group__2__Impl28777);
+                    pushFollow(FOLLOW_rule__BindingEndPoint__Group_2__0_in_rule__BindingEndPoint__Group__2__Impl28778);
                     rule__BindingEndPoint__Group_2__0();
 
                     state._fsp--;
@@ -39297,12 +39308,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14097:1: ( rule__BindingEndPoint__Group_0__0__Impl rule__BindingEndPoint__Group_0__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14098:2: rule__BindingEndPoint__Group_0__0__Impl rule__BindingEndPoint__Group_0__1
             {
-            pushFollow(FOLLOW_rule__BindingEndPoint__Group_0__0__Impl_in_rule__BindingEndPoint__Group_0__028814);
+            pushFollow(FOLLOW_rule__BindingEndPoint__Group_0__0__Impl_in_rule__BindingEndPoint__Group_0__028815);
             rule__BindingEndPoint__Group_0__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__BindingEndPoint__Group_0__1_in_rule__BindingEndPoint__Group_0__028817);
+            pushFollow(FOLLOW_rule__BindingEndPoint__Group_0__1_in_rule__BindingEndPoint__Group_0__028818);
             rule__BindingEndPoint__Group_0__1();
 
             state._fsp--;
@@ -39342,7 +39353,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14112:1: ( rule__BindingEndPoint__ActorRefAssignment_0_0 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14112:2: rule__BindingEndPoint__ActorRefAssignment_0_0
             {
-            pushFollow(FOLLOW_rule__BindingEndPoint__ActorRefAssignment_0_0_in_rule__BindingEndPoint__Group_0__0__Impl28844);
+            pushFollow(FOLLOW_rule__BindingEndPoint__ActorRefAssignment_0_0_in_rule__BindingEndPoint__Group_0__0__Impl28845);
             rule__BindingEndPoint__ActorRefAssignment_0_0();
 
             state._fsp--;
@@ -39382,7 +39393,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14126:1: ( rule__BindingEndPoint__Group_0__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14127:2: rule__BindingEndPoint__Group_0__1__Impl
             {
-            pushFollow(FOLLOW_rule__BindingEndPoint__Group_0__1__Impl_in_rule__BindingEndPoint__Group_0__128874);
+            pushFollow(FOLLOW_rule__BindingEndPoint__Group_0__1__Impl_in_rule__BindingEndPoint__Group_0__128875);
             rule__BindingEndPoint__Group_0__1__Impl();
 
             state._fsp--;
@@ -39419,7 +39430,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14139:1: '.'
             {
              before(grammarAccess.getBindingEndPointAccess().getFullStopKeyword_0_1()); 
-            match(input,85,FOLLOW_85_in_rule__BindingEndPoint__Group_0__1__Impl28902); 
+            match(input,85,FOLLOW_85_in_rule__BindingEndPoint__Group_0__1__Impl28903); 
              after(grammarAccess.getBindingEndPointAccess().getFullStopKeyword_0_1()); 
 
             }
@@ -39452,12 +39463,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14160:1: ( rule__BindingEndPoint__Group_2__0__Impl rule__BindingEndPoint__Group_2__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14161:2: rule__BindingEndPoint__Group_2__0__Impl rule__BindingEndPoint__Group_2__1
             {
-            pushFollow(FOLLOW_rule__BindingEndPoint__Group_2__0__Impl_in_rule__BindingEndPoint__Group_2__028937);
+            pushFollow(FOLLOW_rule__BindingEndPoint__Group_2__0__Impl_in_rule__BindingEndPoint__Group_2__028938);
             rule__BindingEndPoint__Group_2__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__BindingEndPoint__Group_2__1_in_rule__BindingEndPoint__Group_2__028940);
+            pushFollow(FOLLOW_rule__BindingEndPoint__Group_2__1_in_rule__BindingEndPoint__Group_2__028941);
             rule__BindingEndPoint__Group_2__1();
 
             state._fsp--;
@@ -39494,7 +39505,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14174:1: 'sub'
             {
              before(grammarAccess.getBindingEndPointAccess().getSubKeyword_2_0()); 
-            match(input,86,FOLLOW_86_in_rule__BindingEndPoint__Group_2__0__Impl28968); 
+            match(input,86,FOLLOW_86_in_rule__BindingEndPoint__Group_2__0__Impl28969); 
              after(grammarAccess.getBindingEndPointAccess().getSubKeyword_2_0()); 
 
             }
@@ -39527,7 +39538,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14191:1: ( rule__BindingEndPoint__Group_2__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14192:2: rule__BindingEndPoint__Group_2__1__Impl
             {
-            pushFollow(FOLLOW_rule__BindingEndPoint__Group_2__1__Impl_in_rule__BindingEndPoint__Group_2__128999);
+            pushFollow(FOLLOW_rule__BindingEndPoint__Group_2__1__Impl_in_rule__BindingEndPoint__Group_2__129000);
             rule__BindingEndPoint__Group_2__1__Impl();
 
             state._fsp--;
@@ -39567,7 +39578,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14205:1: ( rule__BindingEndPoint__SubAssignment_2_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14205:2: rule__BindingEndPoint__SubAssignment_2_1
             {
-            pushFollow(FOLLOW_rule__BindingEndPoint__SubAssignment_2_1_in_rule__BindingEndPoint__Group_2__1__Impl29026);
+            pushFollow(FOLLOW_rule__BindingEndPoint__SubAssignment_2_1_in_rule__BindingEndPoint__Group_2__1__Impl29027);
             rule__BindingEndPoint__SubAssignment_2_1();
 
             state._fsp--;
@@ -39607,12 +39618,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14223:1: ( rule__LayerConnection__Group__0__Impl rule__LayerConnection__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14224:2: rule__LayerConnection__Group__0__Impl rule__LayerConnection__Group__1
             {
-            pushFollow(FOLLOW_rule__LayerConnection__Group__0__Impl_in_rule__LayerConnection__Group__029060);
+            pushFollow(FOLLOW_rule__LayerConnection__Group__0__Impl_in_rule__LayerConnection__Group__029061);
             rule__LayerConnection__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__LayerConnection__Group__1_in_rule__LayerConnection__Group__029063);
+            pushFollow(FOLLOW_rule__LayerConnection__Group__1_in_rule__LayerConnection__Group__029064);
             rule__LayerConnection__Group__1();
 
             state._fsp--;
@@ -39649,7 +39660,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14237:1: 'LayerConnection'
             {
              before(grammarAccess.getLayerConnectionAccess().getLayerConnectionKeyword_0()); 
-            match(input,87,FOLLOW_87_in_rule__LayerConnection__Group__0__Impl29091); 
+            match(input,87,FOLLOW_87_in_rule__LayerConnection__Group__0__Impl29092); 
              after(grammarAccess.getLayerConnectionAccess().getLayerConnectionKeyword_0()); 
 
             }
@@ -39682,12 +39693,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14254:1: ( rule__LayerConnection__Group__1__Impl rule__LayerConnection__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14255:2: rule__LayerConnection__Group__1__Impl rule__LayerConnection__Group__2
             {
-            pushFollow(FOLLOW_rule__LayerConnection__Group__1__Impl_in_rule__LayerConnection__Group__129122);
+            pushFollow(FOLLOW_rule__LayerConnection__Group__1__Impl_in_rule__LayerConnection__Group__129123);
             rule__LayerConnection__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__LayerConnection__Group__2_in_rule__LayerConnection__Group__129125);
+            pushFollow(FOLLOW_rule__LayerConnection__Group__2_in_rule__LayerConnection__Group__129126);
             rule__LayerConnection__Group__2();
 
             state._fsp--;
@@ -39727,7 +39738,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14269:1: ( rule__LayerConnection__FromAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14269:2: rule__LayerConnection__FromAssignment_1
             {
-            pushFollow(FOLLOW_rule__LayerConnection__FromAssignment_1_in_rule__LayerConnection__Group__1__Impl29152);
+            pushFollow(FOLLOW_rule__LayerConnection__FromAssignment_1_in_rule__LayerConnection__Group__1__Impl29153);
             rule__LayerConnection__FromAssignment_1();
 
             state._fsp--;
@@ -39767,12 +39778,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14283:1: ( rule__LayerConnection__Group__2__Impl rule__LayerConnection__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14284:2: rule__LayerConnection__Group__2__Impl rule__LayerConnection__Group__3
             {
-            pushFollow(FOLLOW_rule__LayerConnection__Group__2__Impl_in_rule__LayerConnection__Group__229182);
+            pushFollow(FOLLOW_rule__LayerConnection__Group__2__Impl_in_rule__LayerConnection__Group__229183);
             rule__LayerConnection__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__LayerConnection__Group__3_in_rule__LayerConnection__Group__229185);
+            pushFollow(FOLLOW_rule__LayerConnection__Group__3_in_rule__LayerConnection__Group__229186);
             rule__LayerConnection__Group__3();
 
             state._fsp--;
@@ -39809,7 +39820,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14297:1: 'satisfied_by'
             {
              before(grammarAccess.getLayerConnectionAccess().getSatisfied_byKeyword_2()); 
-            match(input,88,FOLLOW_88_in_rule__LayerConnection__Group__2__Impl29213); 
+            match(input,88,FOLLOW_88_in_rule__LayerConnection__Group__2__Impl29214); 
              after(grammarAccess.getLayerConnectionAccess().getSatisfied_byKeyword_2()); 
 
             }
@@ -39842,7 +39853,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14314:1: ( rule__LayerConnection__Group__3__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14315:2: rule__LayerConnection__Group__3__Impl
             {
-            pushFollow(FOLLOW_rule__LayerConnection__Group__3__Impl_in_rule__LayerConnection__Group__329244);
+            pushFollow(FOLLOW_rule__LayerConnection__Group__3__Impl_in_rule__LayerConnection__Group__329245);
             rule__LayerConnection__Group__3__Impl();
 
             state._fsp--;
@@ -39882,7 +39893,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14328:1: ( rule__LayerConnection__ToAssignment_3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14328:2: rule__LayerConnection__ToAssignment_3
             {
-            pushFollow(FOLLOW_rule__LayerConnection__ToAssignment_3_in_rule__LayerConnection__Group__3__Impl29271);
+            pushFollow(FOLLOW_rule__LayerConnection__ToAssignment_3_in_rule__LayerConnection__Group__3__Impl29272);
             rule__LayerConnection__ToAssignment_3();
 
             state._fsp--;
@@ -39922,12 +39933,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14350:1: ( rule__RefSAPoint__Group__0__Impl rule__RefSAPoint__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14351:2: rule__RefSAPoint__Group__0__Impl rule__RefSAPoint__Group__1
             {
-            pushFollow(FOLLOW_rule__RefSAPoint__Group__0__Impl_in_rule__RefSAPoint__Group__029309);
+            pushFollow(FOLLOW_rule__RefSAPoint__Group__0__Impl_in_rule__RefSAPoint__Group__029310);
             rule__RefSAPoint__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RefSAPoint__Group__1_in_rule__RefSAPoint__Group__029312);
+            pushFollow(FOLLOW_rule__RefSAPoint__Group__1_in_rule__RefSAPoint__Group__029313);
             rule__RefSAPoint__Group__1();
 
             state._fsp--;
@@ -39964,7 +39975,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14364:1: 'ref'
             {
              before(grammarAccess.getRefSAPointAccess().getRefKeyword_0()); 
-            match(input,89,FOLLOW_89_in_rule__RefSAPoint__Group__0__Impl29340); 
+            match(input,89,FOLLOW_89_in_rule__RefSAPoint__Group__0__Impl29341); 
              after(grammarAccess.getRefSAPointAccess().getRefKeyword_0()); 
 
             }
@@ -39997,7 +40008,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14381:1: ( rule__RefSAPoint__Group__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14382:2: rule__RefSAPoint__Group__1__Impl
             {
-            pushFollow(FOLLOW_rule__RefSAPoint__Group__1__Impl_in_rule__RefSAPoint__Group__129371);
+            pushFollow(FOLLOW_rule__RefSAPoint__Group__1__Impl_in_rule__RefSAPoint__Group__129372);
             rule__RefSAPoint__Group__1__Impl();
 
             state._fsp--;
@@ -40037,7 +40048,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14395:1: ( rule__RefSAPoint__RefAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14395:2: rule__RefSAPoint__RefAssignment_1
             {
-            pushFollow(FOLLOW_rule__RefSAPoint__RefAssignment_1_in_rule__RefSAPoint__Group__1__Impl29398);
+            pushFollow(FOLLOW_rule__RefSAPoint__RefAssignment_1_in_rule__RefSAPoint__Group__1__Impl29399);
             rule__RefSAPoint__RefAssignment_1();
 
             state._fsp--;
@@ -40077,12 +40088,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14413:1: ( rule__RelaySAPoint__Group__0__Impl rule__RelaySAPoint__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14414:2: rule__RelaySAPoint__Group__0__Impl rule__RelaySAPoint__Group__1
             {
-            pushFollow(FOLLOW_rule__RelaySAPoint__Group__0__Impl_in_rule__RelaySAPoint__Group__029432);
+            pushFollow(FOLLOW_rule__RelaySAPoint__Group__0__Impl_in_rule__RelaySAPoint__Group__029433);
             rule__RelaySAPoint__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RelaySAPoint__Group__1_in_rule__RelaySAPoint__Group__029435);
+            pushFollow(FOLLOW_rule__RelaySAPoint__Group__1_in_rule__RelaySAPoint__Group__029436);
             rule__RelaySAPoint__Group__1();
 
             state._fsp--;
@@ -40119,7 +40130,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14427:1: 'relay_sap'
             {
              before(grammarAccess.getRelaySAPointAccess().getRelay_sapKeyword_0()); 
-            match(input,90,FOLLOW_90_in_rule__RelaySAPoint__Group__0__Impl29463); 
+            match(input,90,FOLLOW_90_in_rule__RelaySAPoint__Group__0__Impl29464); 
              after(grammarAccess.getRelaySAPointAccess().getRelay_sapKeyword_0()); 
 
             }
@@ -40152,7 +40163,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14444:1: ( rule__RelaySAPoint__Group__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14445:2: rule__RelaySAPoint__Group__1__Impl
             {
-            pushFollow(FOLLOW_rule__RelaySAPoint__Group__1__Impl_in_rule__RelaySAPoint__Group__129494);
+            pushFollow(FOLLOW_rule__RelaySAPoint__Group__1__Impl_in_rule__RelaySAPoint__Group__129495);
             rule__RelaySAPoint__Group__1__Impl();
 
             state._fsp--;
@@ -40192,7 +40203,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14458:1: ( rule__RelaySAPoint__RelayAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14458:2: rule__RelaySAPoint__RelayAssignment_1
             {
-            pushFollow(FOLLOW_rule__RelaySAPoint__RelayAssignment_1_in_rule__RelaySAPoint__Group__1__Impl29521);
+            pushFollow(FOLLOW_rule__RelaySAPoint__RelayAssignment_1_in_rule__RelaySAPoint__Group__1__Impl29522);
             rule__RelaySAPoint__RelayAssignment_1();
 
             state._fsp--;
@@ -40232,12 +40243,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14476:1: ( rule__SPPoint__Group__0__Impl rule__SPPoint__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14477:2: rule__SPPoint__Group__0__Impl rule__SPPoint__Group__1
             {
-            pushFollow(FOLLOW_rule__SPPoint__Group__0__Impl_in_rule__SPPoint__Group__029555);
+            pushFollow(FOLLOW_rule__SPPoint__Group__0__Impl_in_rule__SPPoint__Group__029556);
             rule__SPPoint__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SPPoint__Group__1_in_rule__SPPoint__Group__029558);
+            pushFollow(FOLLOW_rule__SPPoint__Group__1_in_rule__SPPoint__Group__029559);
             rule__SPPoint__Group__1();
 
             state._fsp--;
@@ -40277,7 +40288,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14491:1: ( rule__SPPoint__RefAssignment_0 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14491:2: rule__SPPoint__RefAssignment_0
             {
-            pushFollow(FOLLOW_rule__SPPoint__RefAssignment_0_in_rule__SPPoint__Group__0__Impl29585);
+            pushFollow(FOLLOW_rule__SPPoint__RefAssignment_0_in_rule__SPPoint__Group__0__Impl29586);
             rule__SPPoint__RefAssignment_0();
 
             state._fsp--;
@@ -40317,12 +40328,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14505:1: ( rule__SPPoint__Group__1__Impl rule__SPPoint__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14506:2: rule__SPPoint__Group__1__Impl rule__SPPoint__Group__2
             {
-            pushFollow(FOLLOW_rule__SPPoint__Group__1__Impl_in_rule__SPPoint__Group__129615);
+            pushFollow(FOLLOW_rule__SPPoint__Group__1__Impl_in_rule__SPPoint__Group__129616);
             rule__SPPoint__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SPPoint__Group__2_in_rule__SPPoint__Group__129618);
+            pushFollow(FOLLOW_rule__SPPoint__Group__2_in_rule__SPPoint__Group__129619);
             rule__SPPoint__Group__2();
 
             state._fsp--;
@@ -40359,7 +40370,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14519:1: '.'
             {
              before(grammarAccess.getSPPointAccess().getFullStopKeyword_1()); 
-            match(input,85,FOLLOW_85_in_rule__SPPoint__Group__1__Impl29646); 
+            match(input,85,FOLLOW_85_in_rule__SPPoint__Group__1__Impl29647); 
              after(grammarAccess.getSPPointAccess().getFullStopKeyword_1()); 
 
             }
@@ -40392,7 +40403,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14536:1: ( rule__SPPoint__Group__2__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14537:2: rule__SPPoint__Group__2__Impl
             {
-            pushFollow(FOLLOW_rule__SPPoint__Group__2__Impl_in_rule__SPPoint__Group__229677);
+            pushFollow(FOLLOW_rule__SPPoint__Group__2__Impl_in_rule__SPPoint__Group__229678);
             rule__SPPoint__Group__2__Impl();
 
             state._fsp--;
@@ -40432,7 +40443,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14550:1: ( rule__SPPoint__ServiceAssignment_2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14550:2: rule__SPPoint__ServiceAssignment_2
             {
-            pushFollow(FOLLOW_rule__SPPoint__ServiceAssignment_2_in_rule__SPPoint__Group__2__Impl29704);
+            pushFollow(FOLLOW_rule__SPPoint__ServiceAssignment_2_in_rule__SPPoint__Group__2__Impl29705);
             rule__SPPoint__ServiceAssignment_2();
 
             state._fsp--;
@@ -40472,12 +40483,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14570:1: ( rule__ActorRef__Group__0__Impl rule__ActorRef__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14571:2: rule__ActorRef__Group__0__Impl rule__ActorRef__Group__1
             {
-            pushFollow(FOLLOW_rule__ActorRef__Group__0__Impl_in_rule__ActorRef__Group__029740);
+            pushFollow(FOLLOW_rule__ActorRef__Group__0__Impl_in_rule__ActorRef__Group__029741);
             rule__ActorRef__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorRef__Group__1_in_rule__ActorRef__Group__029743);
+            pushFollow(FOLLOW_rule__ActorRef__Group__1_in_rule__ActorRef__Group__029744);
             rule__ActorRef__Group__1();
 
             state._fsp--;
@@ -40515,17 +40526,17 @@
             {
              before(grammarAccess.getActorRefAccess().getRefTypeAssignment_0()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14585:1: ( rule__ActorRef__RefTypeAssignment_0 )?
-            int alt143=2;
-            int LA143_0 = input.LA(1);
+            int alt144=2;
+            int LA144_0 = input.LA(1);
 
-            if ( ((LA143_0>=32 && LA143_0<=33)) ) {
-                alt143=1;
+            if ( ((LA144_0>=32 && LA144_0<=33)) ) {
+                alt144=1;
             }
-            switch (alt143) {
+            switch (alt144) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14585:2: rule__ActorRef__RefTypeAssignment_0
                     {
-                    pushFollow(FOLLOW_rule__ActorRef__RefTypeAssignment_0_in_rule__ActorRef__Group__0__Impl29770);
+                    pushFollow(FOLLOW_rule__ActorRef__RefTypeAssignment_0_in_rule__ActorRef__Group__0__Impl29771);
                     rule__ActorRef__RefTypeAssignment_0();
 
                     state._fsp--;
@@ -40568,12 +40579,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14599:1: ( rule__ActorRef__Group__1__Impl rule__ActorRef__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14600:2: rule__ActorRef__Group__1__Impl rule__ActorRef__Group__2
             {
-            pushFollow(FOLLOW_rule__ActorRef__Group__1__Impl_in_rule__ActorRef__Group__129801);
+            pushFollow(FOLLOW_rule__ActorRef__Group__1__Impl_in_rule__ActorRef__Group__129802);
             rule__ActorRef__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorRef__Group__2_in_rule__ActorRef__Group__129804);
+            pushFollow(FOLLOW_rule__ActorRef__Group__2_in_rule__ActorRef__Group__129805);
             rule__ActorRef__Group__2();
 
             state._fsp--;
@@ -40610,7 +40621,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14613:1: 'ActorRef'
             {
              before(grammarAccess.getActorRefAccess().getActorRefKeyword_1()); 
-            match(input,91,FOLLOW_91_in_rule__ActorRef__Group__1__Impl29832); 
+            match(input,91,FOLLOW_91_in_rule__ActorRef__Group__1__Impl29833); 
              after(grammarAccess.getActorRefAccess().getActorRefKeyword_1()); 
 
             }
@@ -40643,12 +40654,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14630:1: ( rule__ActorRef__Group__2__Impl rule__ActorRef__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14631:2: rule__ActorRef__Group__2__Impl rule__ActorRef__Group__3
             {
-            pushFollow(FOLLOW_rule__ActorRef__Group__2__Impl_in_rule__ActorRef__Group__229863);
+            pushFollow(FOLLOW_rule__ActorRef__Group__2__Impl_in_rule__ActorRef__Group__229864);
             rule__ActorRef__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorRef__Group__3_in_rule__ActorRef__Group__229866);
+            pushFollow(FOLLOW_rule__ActorRef__Group__3_in_rule__ActorRef__Group__229867);
             rule__ActorRef__Group__3();
 
             state._fsp--;
@@ -40688,7 +40699,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14645:1: ( rule__ActorRef__NameAssignment_2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14645:2: rule__ActorRef__NameAssignment_2
             {
-            pushFollow(FOLLOW_rule__ActorRef__NameAssignment_2_in_rule__ActorRef__Group__2__Impl29893);
+            pushFollow(FOLLOW_rule__ActorRef__NameAssignment_2_in_rule__ActorRef__Group__2__Impl29894);
             rule__ActorRef__NameAssignment_2();
 
             state._fsp--;
@@ -40728,12 +40739,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14659:1: ( rule__ActorRef__Group__3__Impl rule__ActorRef__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14660:2: rule__ActorRef__Group__3__Impl rule__ActorRef__Group__4
             {
-            pushFollow(FOLLOW_rule__ActorRef__Group__3__Impl_in_rule__ActorRef__Group__329923);
+            pushFollow(FOLLOW_rule__ActorRef__Group__3__Impl_in_rule__ActorRef__Group__329924);
             rule__ActorRef__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorRef__Group__4_in_rule__ActorRef__Group__329926);
+            pushFollow(FOLLOW_rule__ActorRef__Group__4_in_rule__ActorRef__Group__329927);
             rule__ActorRef__Group__4();
 
             state._fsp--;
@@ -40771,17 +40782,17 @@
             {
              before(grammarAccess.getActorRefAccess().getMultiplicityAssignment_3()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14674:1: ( rule__ActorRef__MultiplicityAssignment_3 )?
-            int alt144=2;
-            int LA144_0 = input.LA(1);
+            int alt145=2;
+            int LA145_0 = input.LA(1);
 
-            if ( (LA144_0==58) ) {
-                alt144=1;
+            if ( (LA145_0==58) ) {
+                alt145=1;
             }
-            switch (alt144) {
+            switch (alt145) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14674:2: rule__ActorRef__MultiplicityAssignment_3
                     {
-                    pushFollow(FOLLOW_rule__ActorRef__MultiplicityAssignment_3_in_rule__ActorRef__Group__3__Impl29953);
+                    pushFollow(FOLLOW_rule__ActorRef__MultiplicityAssignment_3_in_rule__ActorRef__Group__3__Impl29954);
                     rule__ActorRef__MultiplicityAssignment_3();
 
                     state._fsp--;
@@ -40824,12 +40835,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14688:1: ( rule__ActorRef__Group__4__Impl rule__ActorRef__Group__5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14689:2: rule__ActorRef__Group__4__Impl rule__ActorRef__Group__5
             {
-            pushFollow(FOLLOW_rule__ActorRef__Group__4__Impl_in_rule__ActorRef__Group__429984);
+            pushFollow(FOLLOW_rule__ActorRef__Group__4__Impl_in_rule__ActorRef__Group__429985);
             rule__ActorRef__Group__4__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorRef__Group__5_in_rule__ActorRef__Group__429987);
+            pushFollow(FOLLOW_rule__ActorRef__Group__5_in_rule__ActorRef__Group__429988);
             rule__ActorRef__Group__5();
 
             state._fsp--;
@@ -40866,7 +40877,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14702:1: ':'
             {
              before(grammarAccess.getActorRefAccess().getColonKeyword_4()); 
-            match(input,42,FOLLOW_42_in_rule__ActorRef__Group__4__Impl30015); 
+            match(input,42,FOLLOW_42_in_rule__ActorRef__Group__4__Impl30016); 
              after(grammarAccess.getActorRefAccess().getColonKeyword_4()); 
 
             }
@@ -40899,12 +40910,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14719:1: ( rule__ActorRef__Group__5__Impl rule__ActorRef__Group__6 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14720:2: rule__ActorRef__Group__5__Impl rule__ActorRef__Group__6
             {
-            pushFollow(FOLLOW_rule__ActorRef__Group__5__Impl_in_rule__ActorRef__Group__530046);
+            pushFollow(FOLLOW_rule__ActorRef__Group__5__Impl_in_rule__ActorRef__Group__530047);
             rule__ActorRef__Group__5__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ActorRef__Group__6_in_rule__ActorRef__Group__530049);
+            pushFollow(FOLLOW_rule__ActorRef__Group__6_in_rule__ActorRef__Group__530050);
             rule__ActorRef__Group__6();
 
             state._fsp--;
@@ -40944,7 +40955,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14734:1: ( rule__ActorRef__TypeAssignment_5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14734:2: rule__ActorRef__TypeAssignment_5
             {
-            pushFollow(FOLLOW_rule__ActorRef__TypeAssignment_5_in_rule__ActorRef__Group__5__Impl30076);
+            pushFollow(FOLLOW_rule__ActorRef__TypeAssignment_5_in_rule__ActorRef__Group__5__Impl30077);
             rule__ActorRef__TypeAssignment_5();
 
             state._fsp--;
@@ -40984,7 +40995,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14748:1: ( rule__ActorRef__Group__6__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14749:2: rule__ActorRef__Group__6__Impl
             {
-            pushFollow(FOLLOW_rule__ActorRef__Group__6__Impl_in_rule__ActorRef__Group__630106);
+            pushFollow(FOLLOW_rule__ActorRef__Group__6__Impl_in_rule__ActorRef__Group__630107);
             rule__ActorRef__Group__6__Impl();
 
             state._fsp--;
@@ -41022,17 +41033,17 @@
             {
              before(grammarAccess.getActorRefAccess().getDocuAssignment_6()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14762:1: ( rule__ActorRef__DocuAssignment_6 )?
-            int alt145=2;
-            int LA145_0 = input.LA(1);
+            int alt146=2;
+            int LA146_0 = input.LA(1);
 
-            if ( (LA145_0==58) ) {
-                alt145=1;
+            if ( (LA146_0==58) ) {
+                alt146=1;
             }
-            switch (alt145) {
+            switch (alt146) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14762:2: rule__ActorRef__DocuAssignment_6
                     {
-                    pushFollow(FOLLOW_rule__ActorRef__DocuAssignment_6_in_rule__ActorRef__Group__6__Impl30133);
+                    pushFollow(FOLLOW_rule__ActorRef__DocuAssignment_6_in_rule__ActorRef__Group__6__Impl30134);
                     rule__ActorRef__DocuAssignment_6();
 
                     state._fsp--;
@@ -41075,12 +41086,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14790:1: ( rule__MULTIPLICITY__Group__0__Impl rule__MULTIPLICITY__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14791:2: rule__MULTIPLICITY__Group__0__Impl rule__MULTIPLICITY__Group__1
             {
-            pushFollow(FOLLOW_rule__MULTIPLICITY__Group__0__Impl_in_rule__MULTIPLICITY__Group__030178);
+            pushFollow(FOLLOW_rule__MULTIPLICITY__Group__0__Impl_in_rule__MULTIPLICITY__Group__030179);
             rule__MULTIPLICITY__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__MULTIPLICITY__Group__1_in_rule__MULTIPLICITY__Group__030181);
+            pushFollow(FOLLOW_rule__MULTIPLICITY__Group__1_in_rule__MULTIPLICITY__Group__030182);
             rule__MULTIPLICITY__Group__1();
 
             state._fsp--;
@@ -41117,7 +41128,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14804:1: '['
             {
              before(grammarAccess.getMULTIPLICITYAccess().getLeftSquareBracketKeyword_0()); 
-            match(input,58,FOLLOW_58_in_rule__MULTIPLICITY__Group__0__Impl30209); 
+            match(input,58,FOLLOW_58_in_rule__MULTIPLICITY__Group__0__Impl30210); 
              after(grammarAccess.getMULTIPLICITYAccess().getLeftSquareBracketKeyword_0()); 
 
             }
@@ -41150,12 +41161,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14821:1: ( rule__MULTIPLICITY__Group__1__Impl rule__MULTIPLICITY__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14822:2: rule__MULTIPLICITY__Group__1__Impl rule__MULTIPLICITY__Group__2
             {
-            pushFollow(FOLLOW_rule__MULTIPLICITY__Group__1__Impl_in_rule__MULTIPLICITY__Group__130240);
+            pushFollow(FOLLOW_rule__MULTIPLICITY__Group__1__Impl_in_rule__MULTIPLICITY__Group__130241);
             rule__MULTIPLICITY__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__MULTIPLICITY__Group__2_in_rule__MULTIPLICITY__Group__130243);
+            pushFollow(FOLLOW_rule__MULTIPLICITY__Group__2_in_rule__MULTIPLICITY__Group__130244);
             rule__MULTIPLICITY__Group__2();
 
             state._fsp--;
@@ -41195,7 +41206,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14836:1: ( rule__MULTIPLICITY__Alternatives_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14836:2: rule__MULTIPLICITY__Alternatives_1
             {
-            pushFollow(FOLLOW_rule__MULTIPLICITY__Alternatives_1_in_rule__MULTIPLICITY__Group__1__Impl30270);
+            pushFollow(FOLLOW_rule__MULTIPLICITY__Alternatives_1_in_rule__MULTIPLICITY__Group__1__Impl30271);
             rule__MULTIPLICITY__Alternatives_1();
 
             state._fsp--;
@@ -41235,7 +41246,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14850:1: ( rule__MULTIPLICITY__Group__2__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14851:2: rule__MULTIPLICITY__Group__2__Impl
             {
-            pushFollow(FOLLOW_rule__MULTIPLICITY__Group__2__Impl_in_rule__MULTIPLICITY__Group__230300);
+            pushFollow(FOLLOW_rule__MULTIPLICITY__Group__2__Impl_in_rule__MULTIPLICITY__Group__230301);
             rule__MULTIPLICITY__Group__2__Impl();
 
             state._fsp--;
@@ -41272,7 +41283,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14863:1: ']'
             {
              before(grammarAccess.getMULTIPLICITYAccess().getRightSquareBracketKeyword_2()); 
-            match(input,59,FOLLOW_59_in_rule__MULTIPLICITY__Group__2__Impl30328); 
+            match(input,59,FOLLOW_59_in_rule__MULTIPLICITY__Group__2__Impl30329); 
              after(grammarAccess.getMULTIPLICITYAccess().getRightSquareBracketKeyword_2()); 
 
             }
@@ -41305,12 +41316,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14886:1: ( rule__StateGraph__Group__0__Impl rule__StateGraph__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14887:2: rule__StateGraph__Group__0__Impl rule__StateGraph__Group__1
             {
-            pushFollow(FOLLOW_rule__StateGraph__Group__0__Impl_in_rule__StateGraph__Group__030365);
+            pushFollow(FOLLOW_rule__StateGraph__Group__0__Impl_in_rule__StateGraph__Group__030366);
             rule__StateGraph__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__StateGraph__Group__1_in_rule__StateGraph__Group__030368);
+            pushFollow(FOLLOW_rule__StateGraph__Group__1_in_rule__StateGraph__Group__030369);
             rule__StateGraph__Group__1();
 
             state._fsp--;
@@ -41380,12 +41391,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14917:1: ( rule__StateGraph__Group__1__Impl rule__StateGraph__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14918:2: rule__StateGraph__Group__1__Impl rule__StateGraph__Group__2
             {
-            pushFollow(FOLLOW_rule__StateGraph__Group__1__Impl_in_rule__StateGraph__Group__130426);
+            pushFollow(FOLLOW_rule__StateGraph__Group__1__Impl_in_rule__StateGraph__Group__130427);
             rule__StateGraph__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__StateGraph__Group__2_in_rule__StateGraph__Group__130429);
+            pushFollow(FOLLOW_rule__StateGraph__Group__2_in_rule__StateGraph__Group__130430);
             rule__StateGraph__Group__2();
 
             state._fsp--;
@@ -41422,7 +41433,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14931:1: '{'
             {
              before(grammarAccess.getStateGraphAccess().getLeftCurlyBracketKeyword_1()); 
-            match(input,40,FOLLOW_40_in_rule__StateGraph__Group__1__Impl30457); 
+            match(input,40,FOLLOW_40_in_rule__StateGraph__Group__1__Impl30458); 
              after(grammarAccess.getStateGraphAccess().getLeftCurlyBracketKeyword_1()); 
 
             }
@@ -41455,12 +41466,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14948:1: ( rule__StateGraph__Group__2__Impl rule__StateGraph__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14949:2: rule__StateGraph__Group__2__Impl rule__StateGraph__Group__3
             {
-            pushFollow(FOLLOW_rule__StateGraph__Group__2__Impl_in_rule__StateGraph__Group__230488);
+            pushFollow(FOLLOW_rule__StateGraph__Group__2__Impl_in_rule__StateGraph__Group__230489);
             rule__StateGraph__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__StateGraph__Group__3_in_rule__StateGraph__Group__230491);
+            pushFollow(FOLLOW_rule__StateGraph__Group__3_in_rule__StateGraph__Group__230492);
             rule__StateGraph__Group__3();
 
             state._fsp--;
@@ -41498,21 +41509,21 @@
             {
              before(grammarAccess.getStateGraphAccess().getAlternatives_2()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14963:1: ( rule__StateGraph__Alternatives_2 )*
-            loop146:
+            loop147:
             do {
-                int alt146=2;
-                int LA146_0 = input.LA(1);
+                int alt147=2;
+                int LA147_0 = input.LA(1);
 
-                if ( (LA146_0==93||(LA146_0>=98 && LA146_0<=103)||LA146_0==110||LA146_0==129) ) {
-                    alt146=1;
+                if ( (LA147_0==93||(LA147_0>=98 && LA147_0<=103)||LA147_0==110||LA147_0==129) ) {
+                    alt147=1;
                 }
 
 
-                switch (alt146) {
+                switch (alt147) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14963:2: rule__StateGraph__Alternatives_2
             	    {
-            	    pushFollow(FOLLOW_rule__StateGraph__Alternatives_2_in_rule__StateGraph__Group__2__Impl30518);
+            	    pushFollow(FOLLOW_rule__StateGraph__Alternatives_2_in_rule__StateGraph__Group__2__Impl30519);
             	    rule__StateGraph__Alternatives_2();
 
             	    state._fsp--;
@@ -41522,7 +41533,7 @@
             	    break;
 
             	default :
-            	    break loop146;
+            	    break loop147;
                 }
             } while (true);
 
@@ -41558,7 +41569,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14977:1: ( rule__StateGraph__Group__3__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14978:2: rule__StateGraph__Group__3__Impl
             {
-            pushFollow(FOLLOW_rule__StateGraph__Group__3__Impl_in_rule__StateGraph__Group__330549);
+            pushFollow(FOLLOW_rule__StateGraph__Group__3__Impl_in_rule__StateGraph__Group__330550);
             rule__StateGraph__Group__3__Impl();
 
             state._fsp--;
@@ -41595,7 +41606,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:14990:1: '}'
             {
              before(grammarAccess.getStateGraphAccess().getRightCurlyBracketKeyword_3()); 
-            match(input,41,FOLLOW_41_in_rule__StateGraph__Group__3__Impl30577); 
+            match(input,41,FOLLOW_41_in_rule__StateGraph__Group__3__Impl30578); 
              after(grammarAccess.getStateGraphAccess().getRightCurlyBracketKeyword_3()); 
 
             }
@@ -41628,12 +41639,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15015:1: ( rule__StateMachine__Group__0__Impl rule__StateMachine__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15016:2: rule__StateMachine__Group__0__Impl rule__StateMachine__Group__1
             {
-            pushFollow(FOLLOW_rule__StateMachine__Group__0__Impl_in_rule__StateMachine__Group__030616);
+            pushFollow(FOLLOW_rule__StateMachine__Group__0__Impl_in_rule__StateMachine__Group__030617);
             rule__StateMachine__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__StateMachine__Group__1_in_rule__StateMachine__Group__030619);
+            pushFollow(FOLLOW_rule__StateMachine__Group__1_in_rule__StateMachine__Group__030620);
             rule__StateMachine__Group__1();
 
             state._fsp--;
@@ -41703,12 +41714,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15046:1: ( rule__StateMachine__Group__1__Impl rule__StateMachine__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15047:2: rule__StateMachine__Group__1__Impl rule__StateMachine__Group__2
             {
-            pushFollow(FOLLOW_rule__StateMachine__Group__1__Impl_in_rule__StateMachine__Group__130677);
+            pushFollow(FOLLOW_rule__StateMachine__Group__1__Impl_in_rule__StateMachine__Group__130678);
             rule__StateMachine__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__StateMachine__Group__2_in_rule__StateMachine__Group__130680);
+            pushFollow(FOLLOW_rule__StateMachine__Group__2_in_rule__StateMachine__Group__130681);
             rule__StateMachine__Group__2();
 
             state._fsp--;
@@ -41745,7 +41756,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15060:1: 'StateMachine'
             {
              before(grammarAccess.getStateMachineAccess().getStateMachineKeyword_1()); 
-            match(input,92,FOLLOW_92_in_rule__StateMachine__Group__1__Impl30708); 
+            match(input,92,FOLLOW_92_in_rule__StateMachine__Group__1__Impl30709); 
              after(grammarAccess.getStateMachineAccess().getStateMachineKeyword_1()); 
 
             }
@@ -41778,12 +41789,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15077:1: ( rule__StateMachine__Group__2__Impl rule__StateMachine__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15078:2: rule__StateMachine__Group__2__Impl rule__StateMachine__Group__3
             {
-            pushFollow(FOLLOW_rule__StateMachine__Group__2__Impl_in_rule__StateMachine__Group__230739);
+            pushFollow(FOLLOW_rule__StateMachine__Group__2__Impl_in_rule__StateMachine__Group__230740);
             rule__StateMachine__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__StateMachine__Group__3_in_rule__StateMachine__Group__230742);
+            pushFollow(FOLLOW_rule__StateMachine__Group__3_in_rule__StateMachine__Group__230743);
             rule__StateMachine__Group__3();
 
             state._fsp--;
@@ -41820,7 +41831,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15091:1: '{'
             {
              before(grammarAccess.getStateMachineAccess().getLeftCurlyBracketKeyword_2()); 
-            match(input,40,FOLLOW_40_in_rule__StateMachine__Group__2__Impl30770); 
+            match(input,40,FOLLOW_40_in_rule__StateMachine__Group__2__Impl30771); 
              after(grammarAccess.getStateMachineAccess().getLeftCurlyBracketKeyword_2()); 
 
             }
@@ -41853,12 +41864,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15108:1: ( rule__StateMachine__Group__3__Impl rule__StateMachine__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15109:2: rule__StateMachine__Group__3__Impl rule__StateMachine__Group__4
             {
-            pushFollow(FOLLOW_rule__StateMachine__Group__3__Impl_in_rule__StateMachine__Group__330801);
+            pushFollow(FOLLOW_rule__StateMachine__Group__3__Impl_in_rule__StateMachine__Group__330802);
             rule__StateMachine__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__StateMachine__Group__4_in_rule__StateMachine__Group__330804);
+            pushFollow(FOLLOW_rule__StateMachine__Group__4_in_rule__StateMachine__Group__330805);
             rule__StateMachine__Group__4();
 
             state._fsp--;
@@ -41896,21 +41907,21 @@
             {
              before(grammarAccess.getStateMachineAccess().getAlternatives_3()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15123:1: ( rule__StateMachine__Alternatives_3 )*
-            loop147:
+            loop148:
             do {
-                int alt147=2;
-                int LA147_0 = input.LA(1);
+                int alt148=2;
+                int LA148_0 = input.LA(1);
 
-                if ( (LA147_0==93||(LA147_0>=98 && LA147_0<=103)||LA147_0==110||LA147_0==129) ) {
-                    alt147=1;
+                if ( (LA148_0==93||(LA148_0>=98 && LA148_0<=103)||LA148_0==110||LA148_0==129) ) {
+                    alt148=1;
                 }
 
 
-                switch (alt147) {
+                switch (alt148) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15123:2: rule__StateMachine__Alternatives_3
             	    {
-            	    pushFollow(FOLLOW_rule__StateMachine__Alternatives_3_in_rule__StateMachine__Group__3__Impl30831);
+            	    pushFollow(FOLLOW_rule__StateMachine__Alternatives_3_in_rule__StateMachine__Group__3__Impl30832);
             	    rule__StateMachine__Alternatives_3();
 
             	    state._fsp--;
@@ -41920,7 +41931,7 @@
             	    break;
 
             	default :
-            	    break loop147;
+            	    break loop148;
                 }
             } while (true);
 
@@ -41956,7 +41967,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15137:1: ( rule__StateMachine__Group__4__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15138:2: rule__StateMachine__Group__4__Impl
             {
-            pushFollow(FOLLOW_rule__StateMachine__Group__4__Impl_in_rule__StateMachine__Group__430862);
+            pushFollow(FOLLOW_rule__StateMachine__Group__4__Impl_in_rule__StateMachine__Group__430863);
             rule__StateMachine__Group__4__Impl();
 
             state._fsp--;
@@ -41993,7 +42004,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15150:1: '}'
             {
              before(grammarAccess.getStateMachineAccess().getRightCurlyBracketKeyword_4()); 
-            match(input,41,FOLLOW_41_in_rule__StateMachine__Group__4__Impl30890); 
+            match(input,41,FOLLOW_41_in_rule__StateMachine__Group__4__Impl30891); 
              after(grammarAccess.getStateMachineAccess().getRightCurlyBracketKeyword_4()); 
 
             }
@@ -42026,12 +42037,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15177:1: ( rule__SimpleState__Group__0__Impl rule__SimpleState__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15178:2: rule__SimpleState__Group__0__Impl rule__SimpleState__Group__1
             {
-            pushFollow(FOLLOW_rule__SimpleState__Group__0__Impl_in_rule__SimpleState__Group__030931);
+            pushFollow(FOLLOW_rule__SimpleState__Group__0__Impl_in_rule__SimpleState__Group__030932);
             rule__SimpleState__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SimpleState__Group__1_in_rule__SimpleState__Group__030934);
+            pushFollow(FOLLOW_rule__SimpleState__Group__1_in_rule__SimpleState__Group__030935);
             rule__SimpleState__Group__1();
 
             state._fsp--;
@@ -42068,7 +42079,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15191:1: 'State'
             {
              before(grammarAccess.getSimpleStateAccess().getStateKeyword_0()); 
-            match(input,93,FOLLOW_93_in_rule__SimpleState__Group__0__Impl30962); 
+            match(input,93,FOLLOW_93_in_rule__SimpleState__Group__0__Impl30963); 
              after(grammarAccess.getSimpleStateAccess().getStateKeyword_0()); 
 
             }
@@ -42101,12 +42112,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15208:1: ( rule__SimpleState__Group__1__Impl rule__SimpleState__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15209:2: rule__SimpleState__Group__1__Impl rule__SimpleState__Group__2
             {
-            pushFollow(FOLLOW_rule__SimpleState__Group__1__Impl_in_rule__SimpleState__Group__130993);
+            pushFollow(FOLLOW_rule__SimpleState__Group__1__Impl_in_rule__SimpleState__Group__130994);
             rule__SimpleState__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SimpleState__Group__2_in_rule__SimpleState__Group__130996);
+            pushFollow(FOLLOW_rule__SimpleState__Group__2_in_rule__SimpleState__Group__130997);
             rule__SimpleState__Group__2();
 
             state._fsp--;
@@ -42146,7 +42157,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15223:1: ( rule__SimpleState__NameAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15223:2: rule__SimpleState__NameAssignment_1
             {
-            pushFollow(FOLLOW_rule__SimpleState__NameAssignment_1_in_rule__SimpleState__Group__1__Impl31023);
+            pushFollow(FOLLOW_rule__SimpleState__NameAssignment_1_in_rule__SimpleState__Group__1__Impl31024);
             rule__SimpleState__NameAssignment_1();
 
             state._fsp--;
@@ -42186,12 +42197,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15237:1: ( rule__SimpleState__Group__2__Impl rule__SimpleState__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15238:2: rule__SimpleState__Group__2__Impl rule__SimpleState__Group__3
             {
-            pushFollow(FOLLOW_rule__SimpleState__Group__2__Impl_in_rule__SimpleState__Group__231053);
+            pushFollow(FOLLOW_rule__SimpleState__Group__2__Impl_in_rule__SimpleState__Group__231054);
             rule__SimpleState__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SimpleState__Group__3_in_rule__SimpleState__Group__231056);
+            pushFollow(FOLLOW_rule__SimpleState__Group__3_in_rule__SimpleState__Group__231057);
             rule__SimpleState__Group__3();
 
             state._fsp--;
@@ -42229,17 +42240,17 @@
             {
              before(grammarAccess.getSimpleStateAccess().getDocuAssignment_2()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15252:1: ( rule__SimpleState__DocuAssignment_2 )?
-            int alt148=2;
-            int LA148_0 = input.LA(1);
+            int alt149=2;
+            int LA149_0 = input.LA(1);
 
-            if ( (LA148_0==58) ) {
-                alt148=1;
+            if ( (LA149_0==58) ) {
+                alt149=1;
             }
-            switch (alt148) {
+            switch (alt149) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15252:2: rule__SimpleState__DocuAssignment_2
                     {
-                    pushFollow(FOLLOW_rule__SimpleState__DocuAssignment_2_in_rule__SimpleState__Group__2__Impl31083);
+                    pushFollow(FOLLOW_rule__SimpleState__DocuAssignment_2_in_rule__SimpleState__Group__2__Impl31084);
                     rule__SimpleState__DocuAssignment_2();
 
                     state._fsp--;
@@ -42282,7 +42293,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15266:1: ( rule__SimpleState__Group__3__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15267:2: rule__SimpleState__Group__3__Impl
             {
-            pushFollow(FOLLOW_rule__SimpleState__Group__3__Impl_in_rule__SimpleState__Group__331114);
+            pushFollow(FOLLOW_rule__SimpleState__Group__3__Impl_in_rule__SimpleState__Group__331115);
             rule__SimpleState__Group__3__Impl();
 
             state._fsp--;
@@ -42320,17 +42331,17 @@
             {
              before(grammarAccess.getSimpleStateAccess().getGroup_3()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15280:1: ( rule__SimpleState__Group_3__0 )?
-            int alt149=2;
-            int LA149_0 = input.LA(1);
+            int alt150=2;
+            int LA150_0 = input.LA(1);
 
-            if ( (LA149_0==40) ) {
-                alt149=1;
+            if ( (LA150_0==40) ) {
+                alt150=1;
             }
-            switch (alt149) {
+            switch (alt150) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15280:2: rule__SimpleState__Group_3__0
                     {
-                    pushFollow(FOLLOW_rule__SimpleState__Group_3__0_in_rule__SimpleState__Group__3__Impl31141);
+                    pushFollow(FOLLOW_rule__SimpleState__Group_3__0_in_rule__SimpleState__Group__3__Impl31142);
                     rule__SimpleState__Group_3__0();
 
                     state._fsp--;
@@ -42373,12 +42384,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15302:1: ( rule__SimpleState__Group_3__0__Impl rule__SimpleState__Group_3__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15303:2: rule__SimpleState__Group_3__0__Impl rule__SimpleState__Group_3__1
             {
-            pushFollow(FOLLOW_rule__SimpleState__Group_3__0__Impl_in_rule__SimpleState__Group_3__031180);
+            pushFollow(FOLLOW_rule__SimpleState__Group_3__0__Impl_in_rule__SimpleState__Group_3__031181);
             rule__SimpleState__Group_3__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SimpleState__Group_3__1_in_rule__SimpleState__Group_3__031183);
+            pushFollow(FOLLOW_rule__SimpleState__Group_3__1_in_rule__SimpleState__Group_3__031184);
             rule__SimpleState__Group_3__1();
 
             state._fsp--;
@@ -42415,7 +42426,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15316:1: '{'
             {
              before(grammarAccess.getSimpleStateAccess().getLeftCurlyBracketKeyword_3_0()); 
-            match(input,40,FOLLOW_40_in_rule__SimpleState__Group_3__0__Impl31211); 
+            match(input,40,FOLLOW_40_in_rule__SimpleState__Group_3__0__Impl31212); 
              after(grammarAccess.getSimpleStateAccess().getLeftCurlyBracketKeyword_3_0()); 
 
             }
@@ -42448,12 +42459,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15333:1: ( rule__SimpleState__Group_3__1__Impl rule__SimpleState__Group_3__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15334:2: rule__SimpleState__Group_3__1__Impl rule__SimpleState__Group_3__2
             {
-            pushFollow(FOLLOW_rule__SimpleState__Group_3__1__Impl_in_rule__SimpleState__Group_3__131242);
+            pushFollow(FOLLOW_rule__SimpleState__Group_3__1__Impl_in_rule__SimpleState__Group_3__131243);
             rule__SimpleState__Group_3__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SimpleState__Group_3__2_in_rule__SimpleState__Group_3__131245);
+            pushFollow(FOLLOW_rule__SimpleState__Group_3__2_in_rule__SimpleState__Group_3__131246);
             rule__SimpleState__Group_3__2();
 
             state._fsp--;
@@ -42491,17 +42502,17 @@
             {
              before(grammarAccess.getSimpleStateAccess().getGroup_3_1()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15348:1: ( rule__SimpleState__Group_3_1__0 )?
-            int alt150=2;
-            int LA150_0 = input.LA(1);
+            int alt151=2;
+            int LA151_0 = input.LA(1);
 
-            if ( (LA150_0==94) ) {
-                alt150=1;
+            if ( (LA151_0==94) ) {
+                alt151=1;
             }
-            switch (alt150) {
+            switch (alt151) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15348:2: rule__SimpleState__Group_3_1__0
                     {
-                    pushFollow(FOLLOW_rule__SimpleState__Group_3_1__0_in_rule__SimpleState__Group_3__1__Impl31272);
+                    pushFollow(FOLLOW_rule__SimpleState__Group_3_1__0_in_rule__SimpleState__Group_3__1__Impl31273);
                     rule__SimpleState__Group_3_1__0();
 
                     state._fsp--;
@@ -42544,12 +42555,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15362:1: ( rule__SimpleState__Group_3__2__Impl rule__SimpleState__Group_3__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15363:2: rule__SimpleState__Group_3__2__Impl rule__SimpleState__Group_3__3
             {
-            pushFollow(FOLLOW_rule__SimpleState__Group_3__2__Impl_in_rule__SimpleState__Group_3__231303);
+            pushFollow(FOLLOW_rule__SimpleState__Group_3__2__Impl_in_rule__SimpleState__Group_3__231304);
             rule__SimpleState__Group_3__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SimpleState__Group_3__3_in_rule__SimpleState__Group_3__231306);
+            pushFollow(FOLLOW_rule__SimpleState__Group_3__3_in_rule__SimpleState__Group_3__231307);
             rule__SimpleState__Group_3__3();
 
             state._fsp--;
@@ -42587,17 +42598,17 @@
             {
              before(grammarAccess.getSimpleStateAccess().getGroup_3_2()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15377:1: ( rule__SimpleState__Group_3_2__0 )?
-            int alt151=2;
-            int LA151_0 = input.LA(1);
+            int alt152=2;
+            int LA152_0 = input.LA(1);
 
-            if ( (LA151_0==95) ) {
-                alt151=1;
+            if ( (LA152_0==95) ) {
+                alt152=1;
             }
-            switch (alt151) {
+            switch (alt152) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15377:2: rule__SimpleState__Group_3_2__0
                     {
-                    pushFollow(FOLLOW_rule__SimpleState__Group_3_2__0_in_rule__SimpleState__Group_3__2__Impl31333);
+                    pushFollow(FOLLOW_rule__SimpleState__Group_3_2__0_in_rule__SimpleState__Group_3__2__Impl31334);
                     rule__SimpleState__Group_3_2__0();
 
                     state._fsp--;
@@ -42640,12 +42651,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15391:1: ( rule__SimpleState__Group_3__3__Impl rule__SimpleState__Group_3__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15392:2: rule__SimpleState__Group_3__3__Impl rule__SimpleState__Group_3__4
             {
-            pushFollow(FOLLOW_rule__SimpleState__Group_3__3__Impl_in_rule__SimpleState__Group_3__331364);
+            pushFollow(FOLLOW_rule__SimpleState__Group_3__3__Impl_in_rule__SimpleState__Group_3__331365);
             rule__SimpleState__Group_3__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SimpleState__Group_3__4_in_rule__SimpleState__Group_3__331367);
+            pushFollow(FOLLOW_rule__SimpleState__Group_3__4_in_rule__SimpleState__Group_3__331368);
             rule__SimpleState__Group_3__4();
 
             state._fsp--;
@@ -42683,17 +42694,17 @@
             {
              before(grammarAccess.getSimpleStateAccess().getGroup_3_3()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15406:1: ( rule__SimpleState__Group_3_3__0 )?
-            int alt152=2;
-            int LA152_0 = input.LA(1);
+            int alt153=2;
+            int LA153_0 = input.LA(1);
 
-            if ( (LA152_0==96) ) {
-                alt152=1;
+            if ( (LA153_0==96) ) {
+                alt153=1;
             }
-            switch (alt152) {
+            switch (alt153) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15406:2: rule__SimpleState__Group_3_3__0
                     {
-                    pushFollow(FOLLOW_rule__SimpleState__Group_3_3__0_in_rule__SimpleState__Group_3__3__Impl31394);
+                    pushFollow(FOLLOW_rule__SimpleState__Group_3_3__0_in_rule__SimpleState__Group_3__3__Impl31395);
                     rule__SimpleState__Group_3_3__0();
 
                     state._fsp--;
@@ -42736,12 +42747,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15420:1: ( rule__SimpleState__Group_3__4__Impl rule__SimpleState__Group_3__5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15421:2: rule__SimpleState__Group_3__4__Impl rule__SimpleState__Group_3__5
             {
-            pushFollow(FOLLOW_rule__SimpleState__Group_3__4__Impl_in_rule__SimpleState__Group_3__431425);
+            pushFollow(FOLLOW_rule__SimpleState__Group_3__4__Impl_in_rule__SimpleState__Group_3__431426);
             rule__SimpleState__Group_3__4__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SimpleState__Group_3__5_in_rule__SimpleState__Group_3__431428);
+            pushFollow(FOLLOW_rule__SimpleState__Group_3__5_in_rule__SimpleState__Group_3__431429);
             rule__SimpleState__Group_3__5();
 
             state._fsp--;
@@ -42779,17 +42790,17 @@
             {
              before(grammarAccess.getSimpleStateAccess().getGroup_3_4()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15435:1: ( rule__SimpleState__Group_3_4__0 )?
-            int alt153=2;
-            int LA153_0 = input.LA(1);
+            int alt154=2;
+            int LA154_0 = input.LA(1);
 
-            if ( (LA153_0==97) ) {
-                alt153=1;
+            if ( (LA154_0==97) ) {
+                alt154=1;
             }
-            switch (alt153) {
+            switch (alt154) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15435:2: rule__SimpleState__Group_3_4__0
                     {
-                    pushFollow(FOLLOW_rule__SimpleState__Group_3_4__0_in_rule__SimpleState__Group_3__4__Impl31455);
+                    pushFollow(FOLLOW_rule__SimpleState__Group_3_4__0_in_rule__SimpleState__Group_3__4__Impl31456);
                     rule__SimpleState__Group_3_4__0();
 
                     state._fsp--;
@@ -42832,7 +42843,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15449:1: ( rule__SimpleState__Group_3__5__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15450:2: rule__SimpleState__Group_3__5__Impl
             {
-            pushFollow(FOLLOW_rule__SimpleState__Group_3__5__Impl_in_rule__SimpleState__Group_3__531486);
+            pushFollow(FOLLOW_rule__SimpleState__Group_3__5__Impl_in_rule__SimpleState__Group_3__531487);
             rule__SimpleState__Group_3__5__Impl();
 
             state._fsp--;
@@ -42869,7 +42880,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15462:1: '}'
             {
              before(grammarAccess.getSimpleStateAccess().getRightCurlyBracketKeyword_3_5()); 
-            match(input,41,FOLLOW_41_in_rule__SimpleState__Group_3__5__Impl31514); 
+            match(input,41,FOLLOW_41_in_rule__SimpleState__Group_3__5__Impl31515); 
              after(grammarAccess.getSimpleStateAccess().getRightCurlyBracketKeyword_3_5()); 
 
             }
@@ -42902,12 +42913,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15491:1: ( rule__SimpleState__Group_3_1__0__Impl rule__SimpleState__Group_3_1__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15492:2: rule__SimpleState__Group_3_1__0__Impl rule__SimpleState__Group_3_1__1
             {
-            pushFollow(FOLLOW_rule__SimpleState__Group_3_1__0__Impl_in_rule__SimpleState__Group_3_1__031557);
+            pushFollow(FOLLOW_rule__SimpleState__Group_3_1__0__Impl_in_rule__SimpleState__Group_3_1__031558);
             rule__SimpleState__Group_3_1__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SimpleState__Group_3_1__1_in_rule__SimpleState__Group_3_1__031560);
+            pushFollow(FOLLOW_rule__SimpleState__Group_3_1__1_in_rule__SimpleState__Group_3_1__031561);
             rule__SimpleState__Group_3_1__1();
 
             state._fsp--;
@@ -42944,7 +42955,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15505:1: 'entry'
             {
              before(grammarAccess.getSimpleStateAccess().getEntryKeyword_3_1_0()); 
-            match(input,94,FOLLOW_94_in_rule__SimpleState__Group_3_1__0__Impl31588); 
+            match(input,94,FOLLOW_94_in_rule__SimpleState__Group_3_1__0__Impl31589); 
              after(grammarAccess.getSimpleStateAccess().getEntryKeyword_3_1_0()); 
 
             }
@@ -42977,7 +42988,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15522:1: ( rule__SimpleState__Group_3_1__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15523:2: rule__SimpleState__Group_3_1__1__Impl
             {
-            pushFollow(FOLLOW_rule__SimpleState__Group_3_1__1__Impl_in_rule__SimpleState__Group_3_1__131619);
+            pushFollow(FOLLOW_rule__SimpleState__Group_3_1__1__Impl_in_rule__SimpleState__Group_3_1__131620);
             rule__SimpleState__Group_3_1__1__Impl();
 
             state._fsp--;
@@ -43017,7 +43028,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15536:1: ( rule__SimpleState__EntryCodeAssignment_3_1_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15536:2: rule__SimpleState__EntryCodeAssignment_3_1_1
             {
-            pushFollow(FOLLOW_rule__SimpleState__EntryCodeAssignment_3_1_1_in_rule__SimpleState__Group_3_1__1__Impl31646);
+            pushFollow(FOLLOW_rule__SimpleState__EntryCodeAssignment_3_1_1_in_rule__SimpleState__Group_3_1__1__Impl31647);
             rule__SimpleState__EntryCodeAssignment_3_1_1();
 
             state._fsp--;
@@ -43057,12 +43068,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15554:1: ( rule__SimpleState__Group_3_2__0__Impl rule__SimpleState__Group_3_2__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15555:2: rule__SimpleState__Group_3_2__0__Impl rule__SimpleState__Group_3_2__1
             {
-            pushFollow(FOLLOW_rule__SimpleState__Group_3_2__0__Impl_in_rule__SimpleState__Group_3_2__031680);
+            pushFollow(FOLLOW_rule__SimpleState__Group_3_2__0__Impl_in_rule__SimpleState__Group_3_2__031681);
             rule__SimpleState__Group_3_2__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SimpleState__Group_3_2__1_in_rule__SimpleState__Group_3_2__031683);
+            pushFollow(FOLLOW_rule__SimpleState__Group_3_2__1_in_rule__SimpleState__Group_3_2__031684);
             rule__SimpleState__Group_3_2__1();
 
             state._fsp--;
@@ -43099,7 +43110,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15568:1: 'exit'
             {
              before(grammarAccess.getSimpleStateAccess().getExitKeyword_3_2_0()); 
-            match(input,95,FOLLOW_95_in_rule__SimpleState__Group_3_2__0__Impl31711); 
+            match(input,95,FOLLOW_95_in_rule__SimpleState__Group_3_2__0__Impl31712); 
              after(grammarAccess.getSimpleStateAccess().getExitKeyword_3_2_0()); 
 
             }
@@ -43132,7 +43143,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15585:1: ( rule__SimpleState__Group_3_2__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15586:2: rule__SimpleState__Group_3_2__1__Impl
             {
-            pushFollow(FOLLOW_rule__SimpleState__Group_3_2__1__Impl_in_rule__SimpleState__Group_3_2__131742);
+            pushFollow(FOLLOW_rule__SimpleState__Group_3_2__1__Impl_in_rule__SimpleState__Group_3_2__131743);
             rule__SimpleState__Group_3_2__1__Impl();
 
             state._fsp--;
@@ -43172,7 +43183,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15599:1: ( rule__SimpleState__ExitCodeAssignment_3_2_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15599:2: rule__SimpleState__ExitCodeAssignment_3_2_1
             {
-            pushFollow(FOLLOW_rule__SimpleState__ExitCodeAssignment_3_2_1_in_rule__SimpleState__Group_3_2__1__Impl31769);
+            pushFollow(FOLLOW_rule__SimpleState__ExitCodeAssignment_3_2_1_in_rule__SimpleState__Group_3_2__1__Impl31770);
             rule__SimpleState__ExitCodeAssignment_3_2_1();
 
             state._fsp--;
@@ -43212,12 +43223,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15617:1: ( rule__SimpleState__Group_3_3__0__Impl rule__SimpleState__Group_3_3__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15618:2: rule__SimpleState__Group_3_3__0__Impl rule__SimpleState__Group_3_3__1
             {
-            pushFollow(FOLLOW_rule__SimpleState__Group_3_3__0__Impl_in_rule__SimpleState__Group_3_3__031803);
+            pushFollow(FOLLOW_rule__SimpleState__Group_3_3__0__Impl_in_rule__SimpleState__Group_3_3__031804);
             rule__SimpleState__Group_3_3__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SimpleState__Group_3_3__1_in_rule__SimpleState__Group_3_3__031806);
+            pushFollow(FOLLOW_rule__SimpleState__Group_3_3__1_in_rule__SimpleState__Group_3_3__031807);
             rule__SimpleState__Group_3_3__1();
 
             state._fsp--;
@@ -43254,7 +43265,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15631:1: 'do'
             {
              before(grammarAccess.getSimpleStateAccess().getDoKeyword_3_3_0()); 
-            match(input,96,FOLLOW_96_in_rule__SimpleState__Group_3_3__0__Impl31834); 
+            match(input,96,FOLLOW_96_in_rule__SimpleState__Group_3_3__0__Impl31835); 
              after(grammarAccess.getSimpleStateAccess().getDoKeyword_3_3_0()); 
 
             }
@@ -43287,7 +43298,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15648:1: ( rule__SimpleState__Group_3_3__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15649:2: rule__SimpleState__Group_3_3__1__Impl
             {
-            pushFollow(FOLLOW_rule__SimpleState__Group_3_3__1__Impl_in_rule__SimpleState__Group_3_3__131865);
+            pushFollow(FOLLOW_rule__SimpleState__Group_3_3__1__Impl_in_rule__SimpleState__Group_3_3__131866);
             rule__SimpleState__Group_3_3__1__Impl();
 
             state._fsp--;
@@ -43327,7 +43338,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15662:1: ( rule__SimpleState__DoCodeAssignment_3_3_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15662:2: rule__SimpleState__DoCodeAssignment_3_3_1
             {
-            pushFollow(FOLLOW_rule__SimpleState__DoCodeAssignment_3_3_1_in_rule__SimpleState__Group_3_3__1__Impl31892);
+            pushFollow(FOLLOW_rule__SimpleState__DoCodeAssignment_3_3_1_in_rule__SimpleState__Group_3_3__1__Impl31893);
             rule__SimpleState__DoCodeAssignment_3_3_1();
 
             state._fsp--;
@@ -43367,12 +43378,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15680:1: ( rule__SimpleState__Group_3_4__0__Impl rule__SimpleState__Group_3_4__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15681:2: rule__SimpleState__Group_3_4__0__Impl rule__SimpleState__Group_3_4__1
             {
-            pushFollow(FOLLOW_rule__SimpleState__Group_3_4__0__Impl_in_rule__SimpleState__Group_3_4__031926);
+            pushFollow(FOLLOW_rule__SimpleState__Group_3_4__0__Impl_in_rule__SimpleState__Group_3_4__031927);
             rule__SimpleState__Group_3_4__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SimpleState__Group_3_4__1_in_rule__SimpleState__Group_3_4__031929);
+            pushFollow(FOLLOW_rule__SimpleState__Group_3_4__1_in_rule__SimpleState__Group_3_4__031930);
             rule__SimpleState__Group_3_4__1();
 
             state._fsp--;
@@ -43409,7 +43420,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15694:1: 'subgraph'
             {
              before(grammarAccess.getSimpleStateAccess().getSubgraphKeyword_3_4_0()); 
-            match(input,97,FOLLOW_97_in_rule__SimpleState__Group_3_4__0__Impl31957); 
+            match(input,97,FOLLOW_97_in_rule__SimpleState__Group_3_4__0__Impl31958); 
              after(grammarAccess.getSimpleStateAccess().getSubgraphKeyword_3_4_0()); 
 
             }
@@ -43442,7 +43453,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15711:1: ( rule__SimpleState__Group_3_4__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15712:2: rule__SimpleState__Group_3_4__1__Impl
             {
-            pushFollow(FOLLOW_rule__SimpleState__Group_3_4__1__Impl_in_rule__SimpleState__Group_3_4__131988);
+            pushFollow(FOLLOW_rule__SimpleState__Group_3_4__1__Impl_in_rule__SimpleState__Group_3_4__131989);
             rule__SimpleState__Group_3_4__1__Impl();
 
             state._fsp--;
@@ -43482,7 +43493,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15725:1: ( rule__SimpleState__SubgraphAssignment_3_4_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15725:2: rule__SimpleState__SubgraphAssignment_3_4_1
             {
-            pushFollow(FOLLOW_rule__SimpleState__SubgraphAssignment_3_4_1_in_rule__SimpleState__Group_3_4__1__Impl32015);
+            pushFollow(FOLLOW_rule__SimpleState__SubgraphAssignment_3_4_1_in_rule__SimpleState__Group_3_4__1__Impl32016);
             rule__SimpleState__SubgraphAssignment_3_4_1();
 
             state._fsp--;
@@ -43522,12 +43533,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15743:1: ( rule__RefinedState__Group__0__Impl rule__RefinedState__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15744:2: rule__RefinedState__Group__0__Impl rule__RefinedState__Group__1
             {
-            pushFollow(FOLLOW_rule__RefinedState__Group__0__Impl_in_rule__RefinedState__Group__032049);
+            pushFollow(FOLLOW_rule__RefinedState__Group__0__Impl_in_rule__RefinedState__Group__032050);
             rule__RefinedState__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RefinedState__Group__1_in_rule__RefinedState__Group__032052);
+            pushFollow(FOLLOW_rule__RefinedState__Group__1_in_rule__RefinedState__Group__032053);
             rule__RefinedState__Group__1();
 
             state._fsp--;
@@ -43564,7 +43575,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15757:1: 'RefinedState'
             {
              before(grammarAccess.getRefinedStateAccess().getRefinedStateKeyword_0()); 
-            match(input,98,FOLLOW_98_in_rule__RefinedState__Group__0__Impl32080); 
+            match(input,98,FOLLOW_98_in_rule__RefinedState__Group__0__Impl32081); 
              after(grammarAccess.getRefinedStateAccess().getRefinedStateKeyword_0()); 
 
             }
@@ -43597,12 +43608,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15774:1: ( rule__RefinedState__Group__1__Impl rule__RefinedState__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15775:2: rule__RefinedState__Group__1__Impl rule__RefinedState__Group__2
             {
-            pushFollow(FOLLOW_rule__RefinedState__Group__1__Impl_in_rule__RefinedState__Group__132111);
+            pushFollow(FOLLOW_rule__RefinedState__Group__1__Impl_in_rule__RefinedState__Group__132112);
             rule__RefinedState__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RefinedState__Group__2_in_rule__RefinedState__Group__132114);
+            pushFollow(FOLLOW_rule__RefinedState__Group__2_in_rule__RefinedState__Group__132115);
             rule__RefinedState__Group__2();
 
             state._fsp--;
@@ -43642,7 +43653,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15789:1: ( rule__RefinedState__TargetAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15789:2: rule__RefinedState__TargetAssignment_1
             {
-            pushFollow(FOLLOW_rule__RefinedState__TargetAssignment_1_in_rule__RefinedState__Group__1__Impl32141);
+            pushFollow(FOLLOW_rule__RefinedState__TargetAssignment_1_in_rule__RefinedState__Group__1__Impl32142);
             rule__RefinedState__TargetAssignment_1();
 
             state._fsp--;
@@ -43682,12 +43693,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15803:1: ( rule__RefinedState__Group__2__Impl rule__RefinedState__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15804:2: rule__RefinedState__Group__2__Impl rule__RefinedState__Group__3
             {
-            pushFollow(FOLLOW_rule__RefinedState__Group__2__Impl_in_rule__RefinedState__Group__232171);
+            pushFollow(FOLLOW_rule__RefinedState__Group__2__Impl_in_rule__RefinedState__Group__232172);
             rule__RefinedState__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RefinedState__Group__3_in_rule__RefinedState__Group__232174);
+            pushFollow(FOLLOW_rule__RefinedState__Group__3_in_rule__RefinedState__Group__232175);
             rule__RefinedState__Group__3();
 
             state._fsp--;
@@ -43725,17 +43736,17 @@
             {
              before(grammarAccess.getRefinedStateAccess().getDocuAssignment_2()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15818:1: ( rule__RefinedState__DocuAssignment_2 )?
-            int alt154=2;
-            int LA154_0 = input.LA(1);
+            int alt155=2;
+            int LA155_0 = input.LA(1);
 
-            if ( (LA154_0==58) ) {
-                alt154=1;
+            if ( (LA155_0==58) ) {
+                alt155=1;
             }
-            switch (alt154) {
+            switch (alt155) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15818:2: rule__RefinedState__DocuAssignment_2
                     {
-                    pushFollow(FOLLOW_rule__RefinedState__DocuAssignment_2_in_rule__RefinedState__Group__2__Impl32201);
+                    pushFollow(FOLLOW_rule__RefinedState__DocuAssignment_2_in_rule__RefinedState__Group__2__Impl32202);
                     rule__RefinedState__DocuAssignment_2();
 
                     state._fsp--;
@@ -43778,12 +43789,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15832:1: ( rule__RefinedState__Group__3__Impl rule__RefinedState__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15833:2: rule__RefinedState__Group__3__Impl rule__RefinedState__Group__4
             {
-            pushFollow(FOLLOW_rule__RefinedState__Group__3__Impl_in_rule__RefinedState__Group__332232);
+            pushFollow(FOLLOW_rule__RefinedState__Group__3__Impl_in_rule__RefinedState__Group__332233);
             rule__RefinedState__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RefinedState__Group__4_in_rule__RefinedState__Group__332235);
+            pushFollow(FOLLOW_rule__RefinedState__Group__4_in_rule__RefinedState__Group__332236);
             rule__RefinedState__Group__4();
 
             state._fsp--;
@@ -43820,7 +43831,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15846:1: '{'
             {
              before(grammarAccess.getRefinedStateAccess().getLeftCurlyBracketKeyword_3()); 
-            match(input,40,FOLLOW_40_in_rule__RefinedState__Group__3__Impl32263); 
+            match(input,40,FOLLOW_40_in_rule__RefinedState__Group__3__Impl32264); 
              after(grammarAccess.getRefinedStateAccess().getLeftCurlyBracketKeyword_3()); 
 
             }
@@ -43853,12 +43864,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15863:1: ( rule__RefinedState__Group__4__Impl rule__RefinedState__Group__5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15864:2: rule__RefinedState__Group__4__Impl rule__RefinedState__Group__5
             {
-            pushFollow(FOLLOW_rule__RefinedState__Group__4__Impl_in_rule__RefinedState__Group__432294);
+            pushFollow(FOLLOW_rule__RefinedState__Group__4__Impl_in_rule__RefinedState__Group__432295);
             rule__RefinedState__Group__4__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RefinedState__Group__5_in_rule__RefinedState__Group__432297);
+            pushFollow(FOLLOW_rule__RefinedState__Group__5_in_rule__RefinedState__Group__432298);
             rule__RefinedState__Group__5();
 
             state._fsp--;
@@ -43896,17 +43907,17 @@
             {
              before(grammarAccess.getRefinedStateAccess().getGroup_4()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15878:1: ( rule__RefinedState__Group_4__0 )?
-            int alt155=2;
-            int LA155_0 = input.LA(1);
+            int alt156=2;
+            int LA156_0 = input.LA(1);
 
-            if ( (LA155_0==94) ) {
-                alt155=1;
+            if ( (LA156_0==94) ) {
+                alt156=1;
             }
-            switch (alt155) {
+            switch (alt156) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15878:2: rule__RefinedState__Group_4__0
                     {
-                    pushFollow(FOLLOW_rule__RefinedState__Group_4__0_in_rule__RefinedState__Group__4__Impl32324);
+                    pushFollow(FOLLOW_rule__RefinedState__Group_4__0_in_rule__RefinedState__Group__4__Impl32325);
                     rule__RefinedState__Group_4__0();
 
                     state._fsp--;
@@ -43949,12 +43960,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15892:1: ( rule__RefinedState__Group__5__Impl rule__RefinedState__Group__6 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15893:2: rule__RefinedState__Group__5__Impl rule__RefinedState__Group__6
             {
-            pushFollow(FOLLOW_rule__RefinedState__Group__5__Impl_in_rule__RefinedState__Group__532355);
+            pushFollow(FOLLOW_rule__RefinedState__Group__5__Impl_in_rule__RefinedState__Group__532356);
             rule__RefinedState__Group__5__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RefinedState__Group__6_in_rule__RefinedState__Group__532358);
+            pushFollow(FOLLOW_rule__RefinedState__Group__6_in_rule__RefinedState__Group__532359);
             rule__RefinedState__Group__6();
 
             state._fsp--;
@@ -43992,17 +44003,17 @@
             {
              before(grammarAccess.getRefinedStateAccess().getGroup_5()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15907:1: ( rule__RefinedState__Group_5__0 )?
-            int alt156=2;
-            int LA156_0 = input.LA(1);
+            int alt157=2;
+            int LA157_0 = input.LA(1);
 
-            if ( (LA156_0==95) ) {
-                alt156=1;
+            if ( (LA157_0==95) ) {
+                alt157=1;
             }
-            switch (alt156) {
+            switch (alt157) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15907:2: rule__RefinedState__Group_5__0
                     {
-                    pushFollow(FOLLOW_rule__RefinedState__Group_5__0_in_rule__RefinedState__Group__5__Impl32385);
+                    pushFollow(FOLLOW_rule__RefinedState__Group_5__0_in_rule__RefinedState__Group__5__Impl32386);
                     rule__RefinedState__Group_5__0();
 
                     state._fsp--;
@@ -44045,12 +44056,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15921:1: ( rule__RefinedState__Group__6__Impl rule__RefinedState__Group__7 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15922:2: rule__RefinedState__Group__6__Impl rule__RefinedState__Group__7
             {
-            pushFollow(FOLLOW_rule__RefinedState__Group__6__Impl_in_rule__RefinedState__Group__632416);
+            pushFollow(FOLLOW_rule__RefinedState__Group__6__Impl_in_rule__RefinedState__Group__632417);
             rule__RefinedState__Group__6__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RefinedState__Group__7_in_rule__RefinedState__Group__632419);
+            pushFollow(FOLLOW_rule__RefinedState__Group__7_in_rule__RefinedState__Group__632420);
             rule__RefinedState__Group__7();
 
             state._fsp--;
@@ -44088,17 +44099,17 @@
             {
              before(grammarAccess.getRefinedStateAccess().getGroup_6()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15936:1: ( rule__RefinedState__Group_6__0 )?
-            int alt157=2;
-            int LA157_0 = input.LA(1);
+            int alt158=2;
+            int LA158_0 = input.LA(1);
 
-            if ( (LA157_0==96) ) {
-                alt157=1;
+            if ( (LA158_0==96) ) {
+                alt158=1;
             }
-            switch (alt157) {
+            switch (alt158) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15936:2: rule__RefinedState__Group_6__0
                     {
-                    pushFollow(FOLLOW_rule__RefinedState__Group_6__0_in_rule__RefinedState__Group__6__Impl32446);
+                    pushFollow(FOLLOW_rule__RefinedState__Group_6__0_in_rule__RefinedState__Group__6__Impl32447);
                     rule__RefinedState__Group_6__0();
 
                     state._fsp--;
@@ -44141,12 +44152,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15950:1: ( rule__RefinedState__Group__7__Impl rule__RefinedState__Group__8 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15951:2: rule__RefinedState__Group__7__Impl rule__RefinedState__Group__8
             {
-            pushFollow(FOLLOW_rule__RefinedState__Group__7__Impl_in_rule__RefinedState__Group__732477);
+            pushFollow(FOLLOW_rule__RefinedState__Group__7__Impl_in_rule__RefinedState__Group__732478);
             rule__RefinedState__Group__7__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RefinedState__Group__8_in_rule__RefinedState__Group__732480);
+            pushFollow(FOLLOW_rule__RefinedState__Group__8_in_rule__RefinedState__Group__732481);
             rule__RefinedState__Group__8();
 
             state._fsp--;
@@ -44184,17 +44195,17 @@
             {
              before(grammarAccess.getRefinedStateAccess().getGroup_7()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15965:1: ( rule__RefinedState__Group_7__0 )?
-            int alt158=2;
-            int LA158_0 = input.LA(1);
+            int alt159=2;
+            int LA159_0 = input.LA(1);
 
-            if ( (LA158_0==97) ) {
-                alt158=1;
+            if ( (LA159_0==97) ) {
+                alt159=1;
             }
-            switch (alt158) {
+            switch (alt159) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15965:2: rule__RefinedState__Group_7__0
                     {
-                    pushFollow(FOLLOW_rule__RefinedState__Group_7__0_in_rule__RefinedState__Group__7__Impl32507);
+                    pushFollow(FOLLOW_rule__RefinedState__Group_7__0_in_rule__RefinedState__Group__7__Impl32508);
                     rule__RefinedState__Group_7__0();
 
                     state._fsp--;
@@ -44237,7 +44248,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15979:1: ( rule__RefinedState__Group__8__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15980:2: rule__RefinedState__Group__8__Impl
             {
-            pushFollow(FOLLOW_rule__RefinedState__Group__8__Impl_in_rule__RefinedState__Group__832538);
+            pushFollow(FOLLOW_rule__RefinedState__Group__8__Impl_in_rule__RefinedState__Group__832539);
             rule__RefinedState__Group__8__Impl();
 
             state._fsp--;
@@ -44274,7 +44285,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:15992:1: '}'
             {
              before(grammarAccess.getRefinedStateAccess().getRightCurlyBracketKeyword_8()); 
-            match(input,41,FOLLOW_41_in_rule__RefinedState__Group__8__Impl32566); 
+            match(input,41,FOLLOW_41_in_rule__RefinedState__Group__8__Impl32567); 
              after(grammarAccess.getRefinedStateAccess().getRightCurlyBracketKeyword_8()); 
 
             }
@@ -44307,12 +44318,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16027:1: ( rule__RefinedState__Group_4__0__Impl rule__RefinedState__Group_4__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16028:2: rule__RefinedState__Group_4__0__Impl rule__RefinedState__Group_4__1
             {
-            pushFollow(FOLLOW_rule__RefinedState__Group_4__0__Impl_in_rule__RefinedState__Group_4__032615);
+            pushFollow(FOLLOW_rule__RefinedState__Group_4__0__Impl_in_rule__RefinedState__Group_4__032616);
             rule__RefinedState__Group_4__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RefinedState__Group_4__1_in_rule__RefinedState__Group_4__032618);
+            pushFollow(FOLLOW_rule__RefinedState__Group_4__1_in_rule__RefinedState__Group_4__032619);
             rule__RefinedState__Group_4__1();
 
             state._fsp--;
@@ -44349,7 +44360,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16041:1: 'entry'
             {
              before(grammarAccess.getRefinedStateAccess().getEntryKeyword_4_0()); 
-            match(input,94,FOLLOW_94_in_rule__RefinedState__Group_4__0__Impl32646); 
+            match(input,94,FOLLOW_94_in_rule__RefinedState__Group_4__0__Impl32647); 
              after(grammarAccess.getRefinedStateAccess().getEntryKeyword_4_0()); 
 
             }
@@ -44382,7 +44393,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16058:1: ( rule__RefinedState__Group_4__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16059:2: rule__RefinedState__Group_4__1__Impl
             {
-            pushFollow(FOLLOW_rule__RefinedState__Group_4__1__Impl_in_rule__RefinedState__Group_4__132677);
+            pushFollow(FOLLOW_rule__RefinedState__Group_4__1__Impl_in_rule__RefinedState__Group_4__132678);
             rule__RefinedState__Group_4__1__Impl();
 
             state._fsp--;
@@ -44422,7 +44433,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16072:1: ( rule__RefinedState__EntryCodeAssignment_4_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16072:2: rule__RefinedState__EntryCodeAssignment_4_1
             {
-            pushFollow(FOLLOW_rule__RefinedState__EntryCodeAssignment_4_1_in_rule__RefinedState__Group_4__1__Impl32704);
+            pushFollow(FOLLOW_rule__RefinedState__EntryCodeAssignment_4_1_in_rule__RefinedState__Group_4__1__Impl32705);
             rule__RefinedState__EntryCodeAssignment_4_1();
 
             state._fsp--;
@@ -44462,12 +44473,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16090:1: ( rule__RefinedState__Group_5__0__Impl rule__RefinedState__Group_5__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16091:2: rule__RefinedState__Group_5__0__Impl rule__RefinedState__Group_5__1
             {
-            pushFollow(FOLLOW_rule__RefinedState__Group_5__0__Impl_in_rule__RefinedState__Group_5__032738);
+            pushFollow(FOLLOW_rule__RefinedState__Group_5__0__Impl_in_rule__RefinedState__Group_5__032739);
             rule__RefinedState__Group_5__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RefinedState__Group_5__1_in_rule__RefinedState__Group_5__032741);
+            pushFollow(FOLLOW_rule__RefinedState__Group_5__1_in_rule__RefinedState__Group_5__032742);
             rule__RefinedState__Group_5__1();
 
             state._fsp--;
@@ -44504,7 +44515,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16104:1: 'exit'
             {
              before(grammarAccess.getRefinedStateAccess().getExitKeyword_5_0()); 
-            match(input,95,FOLLOW_95_in_rule__RefinedState__Group_5__0__Impl32769); 
+            match(input,95,FOLLOW_95_in_rule__RefinedState__Group_5__0__Impl32770); 
              after(grammarAccess.getRefinedStateAccess().getExitKeyword_5_0()); 
 
             }
@@ -44537,7 +44548,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16121:1: ( rule__RefinedState__Group_5__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16122:2: rule__RefinedState__Group_5__1__Impl
             {
-            pushFollow(FOLLOW_rule__RefinedState__Group_5__1__Impl_in_rule__RefinedState__Group_5__132800);
+            pushFollow(FOLLOW_rule__RefinedState__Group_5__1__Impl_in_rule__RefinedState__Group_5__132801);
             rule__RefinedState__Group_5__1__Impl();
 
             state._fsp--;
@@ -44577,7 +44588,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16135:1: ( rule__RefinedState__ExitCodeAssignment_5_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16135:2: rule__RefinedState__ExitCodeAssignment_5_1
             {
-            pushFollow(FOLLOW_rule__RefinedState__ExitCodeAssignment_5_1_in_rule__RefinedState__Group_5__1__Impl32827);
+            pushFollow(FOLLOW_rule__RefinedState__ExitCodeAssignment_5_1_in_rule__RefinedState__Group_5__1__Impl32828);
             rule__RefinedState__ExitCodeAssignment_5_1();
 
             state._fsp--;
@@ -44617,12 +44628,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16153:1: ( rule__RefinedState__Group_6__0__Impl rule__RefinedState__Group_6__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16154:2: rule__RefinedState__Group_6__0__Impl rule__RefinedState__Group_6__1
             {
-            pushFollow(FOLLOW_rule__RefinedState__Group_6__0__Impl_in_rule__RefinedState__Group_6__032861);
+            pushFollow(FOLLOW_rule__RefinedState__Group_6__0__Impl_in_rule__RefinedState__Group_6__032862);
             rule__RefinedState__Group_6__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RefinedState__Group_6__1_in_rule__RefinedState__Group_6__032864);
+            pushFollow(FOLLOW_rule__RefinedState__Group_6__1_in_rule__RefinedState__Group_6__032865);
             rule__RefinedState__Group_6__1();
 
             state._fsp--;
@@ -44659,7 +44670,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16167:1: 'do'
             {
              before(grammarAccess.getRefinedStateAccess().getDoKeyword_6_0()); 
-            match(input,96,FOLLOW_96_in_rule__RefinedState__Group_6__0__Impl32892); 
+            match(input,96,FOLLOW_96_in_rule__RefinedState__Group_6__0__Impl32893); 
              after(grammarAccess.getRefinedStateAccess().getDoKeyword_6_0()); 
 
             }
@@ -44692,7 +44703,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16184:1: ( rule__RefinedState__Group_6__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16185:2: rule__RefinedState__Group_6__1__Impl
             {
-            pushFollow(FOLLOW_rule__RefinedState__Group_6__1__Impl_in_rule__RefinedState__Group_6__132923);
+            pushFollow(FOLLOW_rule__RefinedState__Group_6__1__Impl_in_rule__RefinedState__Group_6__132924);
             rule__RefinedState__Group_6__1__Impl();
 
             state._fsp--;
@@ -44732,7 +44743,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16198:1: ( rule__RefinedState__DoCodeAssignment_6_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16198:2: rule__RefinedState__DoCodeAssignment_6_1
             {
-            pushFollow(FOLLOW_rule__RefinedState__DoCodeAssignment_6_1_in_rule__RefinedState__Group_6__1__Impl32950);
+            pushFollow(FOLLOW_rule__RefinedState__DoCodeAssignment_6_1_in_rule__RefinedState__Group_6__1__Impl32951);
             rule__RefinedState__DoCodeAssignment_6_1();
 
             state._fsp--;
@@ -44772,12 +44783,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16216:1: ( rule__RefinedState__Group_7__0__Impl rule__RefinedState__Group_7__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16217:2: rule__RefinedState__Group_7__0__Impl rule__RefinedState__Group_7__1
             {
-            pushFollow(FOLLOW_rule__RefinedState__Group_7__0__Impl_in_rule__RefinedState__Group_7__032984);
+            pushFollow(FOLLOW_rule__RefinedState__Group_7__0__Impl_in_rule__RefinedState__Group_7__032985);
             rule__RefinedState__Group_7__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RefinedState__Group_7__1_in_rule__RefinedState__Group_7__032987);
+            pushFollow(FOLLOW_rule__RefinedState__Group_7__1_in_rule__RefinedState__Group_7__032988);
             rule__RefinedState__Group_7__1();
 
             state._fsp--;
@@ -44814,7 +44825,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16230:1: 'subgraph'
             {
              before(grammarAccess.getRefinedStateAccess().getSubgraphKeyword_7_0()); 
-            match(input,97,FOLLOW_97_in_rule__RefinedState__Group_7__0__Impl33015); 
+            match(input,97,FOLLOW_97_in_rule__RefinedState__Group_7__0__Impl33016); 
              after(grammarAccess.getRefinedStateAccess().getSubgraphKeyword_7_0()); 
 
             }
@@ -44847,7 +44858,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16247:1: ( rule__RefinedState__Group_7__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16248:2: rule__RefinedState__Group_7__1__Impl
             {
-            pushFollow(FOLLOW_rule__RefinedState__Group_7__1__Impl_in_rule__RefinedState__Group_7__133046);
+            pushFollow(FOLLOW_rule__RefinedState__Group_7__1__Impl_in_rule__RefinedState__Group_7__133047);
             rule__RefinedState__Group_7__1__Impl();
 
             state._fsp--;
@@ -44887,7 +44898,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16261:1: ( rule__RefinedState__SubgraphAssignment_7_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16261:2: rule__RefinedState__SubgraphAssignment_7_1
             {
-            pushFollow(FOLLOW_rule__RefinedState__SubgraphAssignment_7_1_in_rule__RefinedState__Group_7__1__Impl33073);
+            pushFollow(FOLLOW_rule__RefinedState__SubgraphAssignment_7_1_in_rule__RefinedState__Group_7__1__Impl33074);
             rule__RefinedState__SubgraphAssignment_7_1();
 
             state._fsp--;
@@ -44927,12 +44938,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16279:1: ( rule__DetailCode__Group__0__Impl rule__DetailCode__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16280:2: rule__DetailCode__Group__0__Impl rule__DetailCode__Group__1
             {
-            pushFollow(FOLLOW_rule__DetailCode__Group__0__Impl_in_rule__DetailCode__Group__033107);
+            pushFollow(FOLLOW_rule__DetailCode__Group__0__Impl_in_rule__DetailCode__Group__033108);
             rule__DetailCode__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__DetailCode__Group__1_in_rule__DetailCode__Group__033110);
+            pushFollow(FOLLOW_rule__DetailCode__Group__1_in_rule__DetailCode__Group__033111);
             rule__DetailCode__Group__1();
 
             state._fsp--;
@@ -45002,12 +45013,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16310:1: ( rule__DetailCode__Group__1__Impl rule__DetailCode__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16311:2: rule__DetailCode__Group__1__Impl rule__DetailCode__Group__2
             {
-            pushFollow(FOLLOW_rule__DetailCode__Group__1__Impl_in_rule__DetailCode__Group__133168);
+            pushFollow(FOLLOW_rule__DetailCode__Group__1__Impl_in_rule__DetailCode__Group__133169);
             rule__DetailCode__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__DetailCode__Group__2_in_rule__DetailCode__Group__133171);
+            pushFollow(FOLLOW_rule__DetailCode__Group__2_in_rule__DetailCode__Group__133172);
             rule__DetailCode__Group__2();
 
             state._fsp--;
@@ -45047,7 +45058,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16325:1: ( rule__DetailCode__UsedAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16325:2: rule__DetailCode__UsedAssignment_1
             {
-            pushFollow(FOLLOW_rule__DetailCode__UsedAssignment_1_in_rule__DetailCode__Group__1__Impl33198);
+            pushFollow(FOLLOW_rule__DetailCode__UsedAssignment_1_in_rule__DetailCode__Group__1__Impl33199);
             rule__DetailCode__UsedAssignment_1();
 
             state._fsp--;
@@ -45087,12 +45098,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16339:1: ( rule__DetailCode__Group__2__Impl rule__DetailCode__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16340:2: rule__DetailCode__Group__2__Impl rule__DetailCode__Group__3
             {
-            pushFollow(FOLLOW_rule__DetailCode__Group__2__Impl_in_rule__DetailCode__Group__233228);
+            pushFollow(FOLLOW_rule__DetailCode__Group__2__Impl_in_rule__DetailCode__Group__233229);
             rule__DetailCode__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__DetailCode__Group__3_in_rule__DetailCode__Group__233231);
+            pushFollow(FOLLOW_rule__DetailCode__Group__3_in_rule__DetailCode__Group__233232);
             rule__DetailCode__Group__3();
 
             state._fsp--;
@@ -45130,21 +45141,21 @@
             {
              before(grammarAccess.getDetailCodeAccess().getLinesAssignment_2()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16354:1: ( rule__DetailCode__LinesAssignment_2 )*
-            loop159:
+            loop160:
             do {
-                int alt159=2;
-                int LA159_0 = input.LA(1);
+                int alt160=2;
+                int LA160_0 = input.LA(1);
 
-                if ( (LA159_0==RULE_STRING) ) {
-                    alt159=1;
+                if ( (LA160_0==RULE_STRING) ) {
+                    alt160=1;
                 }
 
 
-                switch (alt159) {
+                switch (alt160) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16354:2: rule__DetailCode__LinesAssignment_2
             	    {
-            	    pushFollow(FOLLOW_rule__DetailCode__LinesAssignment_2_in_rule__DetailCode__Group__2__Impl33258);
+            	    pushFollow(FOLLOW_rule__DetailCode__LinesAssignment_2_in_rule__DetailCode__Group__2__Impl33259);
             	    rule__DetailCode__LinesAssignment_2();
 
             	    state._fsp--;
@@ -45154,7 +45165,7 @@
             	    break;
 
             	default :
-            	    break loop159;
+            	    break loop160;
                 }
             } while (true);
 
@@ -45190,7 +45201,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16368:1: ( rule__DetailCode__Group__3__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16369:2: rule__DetailCode__Group__3__Impl
             {
-            pushFollow(FOLLOW_rule__DetailCode__Group__3__Impl_in_rule__DetailCode__Group__333289);
+            pushFollow(FOLLOW_rule__DetailCode__Group__3__Impl_in_rule__DetailCode__Group__333290);
             rule__DetailCode__Group__3__Impl();
 
             state._fsp--;
@@ -45227,7 +45238,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16381:1: '}'
             {
              before(grammarAccess.getDetailCodeAccess().getRightCurlyBracketKeyword_3()); 
-            match(input,41,FOLLOW_41_in_rule__DetailCode__Group__3__Impl33317); 
+            match(input,41,FOLLOW_41_in_rule__DetailCode__Group__3__Impl33318); 
              after(grammarAccess.getDetailCodeAccess().getRightCurlyBracketKeyword_3()); 
 
             }
@@ -45260,12 +45271,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16406:1: ( rule__TransitionPoint__Group__0__Impl rule__TransitionPoint__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16407:2: rule__TransitionPoint__Group__0__Impl rule__TransitionPoint__Group__1
             {
-            pushFollow(FOLLOW_rule__TransitionPoint__Group__0__Impl_in_rule__TransitionPoint__Group__033356);
+            pushFollow(FOLLOW_rule__TransitionPoint__Group__0__Impl_in_rule__TransitionPoint__Group__033357);
             rule__TransitionPoint__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__TransitionPoint__Group__1_in_rule__TransitionPoint__Group__033359);
+            pushFollow(FOLLOW_rule__TransitionPoint__Group__1_in_rule__TransitionPoint__Group__033360);
             rule__TransitionPoint__Group__1();
 
             state._fsp--;
@@ -45303,17 +45314,17 @@
             {
              before(grammarAccess.getTransitionPointAccess().getHandlerAssignment_0()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16421:1: ( rule__TransitionPoint__HandlerAssignment_0 )?
-            int alt160=2;
-            int LA160_0 = input.LA(1);
+            int alt161=2;
+            int LA161_0 = input.LA(1);
 
-            if ( (LA160_0==129) ) {
-                alt160=1;
+            if ( (LA161_0==129) ) {
+                alt161=1;
             }
-            switch (alt160) {
+            switch (alt161) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16421:2: rule__TransitionPoint__HandlerAssignment_0
                     {
-                    pushFollow(FOLLOW_rule__TransitionPoint__HandlerAssignment_0_in_rule__TransitionPoint__Group__0__Impl33386);
+                    pushFollow(FOLLOW_rule__TransitionPoint__HandlerAssignment_0_in_rule__TransitionPoint__Group__0__Impl33387);
                     rule__TransitionPoint__HandlerAssignment_0();
 
                     state._fsp--;
@@ -45356,12 +45367,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16435:1: ( rule__TransitionPoint__Group__1__Impl rule__TransitionPoint__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16436:2: rule__TransitionPoint__Group__1__Impl rule__TransitionPoint__Group__2
             {
-            pushFollow(FOLLOW_rule__TransitionPoint__Group__1__Impl_in_rule__TransitionPoint__Group__133417);
+            pushFollow(FOLLOW_rule__TransitionPoint__Group__1__Impl_in_rule__TransitionPoint__Group__133418);
             rule__TransitionPoint__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__TransitionPoint__Group__2_in_rule__TransitionPoint__Group__133420);
+            pushFollow(FOLLOW_rule__TransitionPoint__Group__2_in_rule__TransitionPoint__Group__133421);
             rule__TransitionPoint__Group__2();
 
             state._fsp--;
@@ -45398,7 +45409,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16449:1: 'TransitionPoint'
             {
              before(grammarAccess.getTransitionPointAccess().getTransitionPointKeyword_1()); 
-            match(input,99,FOLLOW_99_in_rule__TransitionPoint__Group__1__Impl33448); 
+            match(input,99,FOLLOW_99_in_rule__TransitionPoint__Group__1__Impl33449); 
              after(grammarAccess.getTransitionPointAccess().getTransitionPointKeyword_1()); 
 
             }
@@ -45431,7 +45442,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16466:1: ( rule__TransitionPoint__Group__2__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16467:2: rule__TransitionPoint__Group__2__Impl
             {
-            pushFollow(FOLLOW_rule__TransitionPoint__Group__2__Impl_in_rule__TransitionPoint__Group__233479);
+            pushFollow(FOLLOW_rule__TransitionPoint__Group__2__Impl_in_rule__TransitionPoint__Group__233480);
             rule__TransitionPoint__Group__2__Impl();
 
             state._fsp--;
@@ -45471,7 +45482,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16480:1: ( rule__TransitionPoint__NameAssignment_2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16480:2: rule__TransitionPoint__NameAssignment_2
             {
-            pushFollow(FOLLOW_rule__TransitionPoint__NameAssignment_2_in_rule__TransitionPoint__Group__2__Impl33506);
+            pushFollow(FOLLOW_rule__TransitionPoint__NameAssignment_2_in_rule__TransitionPoint__Group__2__Impl33507);
             rule__TransitionPoint__NameAssignment_2();
 
             state._fsp--;
@@ -45511,12 +45522,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16500:1: ( rule__EntryPoint__Group__0__Impl rule__EntryPoint__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16501:2: rule__EntryPoint__Group__0__Impl rule__EntryPoint__Group__1
             {
-            pushFollow(FOLLOW_rule__EntryPoint__Group__0__Impl_in_rule__EntryPoint__Group__033542);
+            pushFollow(FOLLOW_rule__EntryPoint__Group__0__Impl_in_rule__EntryPoint__Group__033543);
             rule__EntryPoint__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__EntryPoint__Group__1_in_rule__EntryPoint__Group__033545);
+            pushFollow(FOLLOW_rule__EntryPoint__Group__1_in_rule__EntryPoint__Group__033546);
             rule__EntryPoint__Group__1();
 
             state._fsp--;
@@ -45553,7 +45564,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16514:1: 'EntryPoint'
             {
              before(grammarAccess.getEntryPointAccess().getEntryPointKeyword_0()); 
-            match(input,100,FOLLOW_100_in_rule__EntryPoint__Group__0__Impl33573); 
+            match(input,100,FOLLOW_100_in_rule__EntryPoint__Group__0__Impl33574); 
              after(grammarAccess.getEntryPointAccess().getEntryPointKeyword_0()); 
 
             }
@@ -45586,7 +45597,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16531:1: ( rule__EntryPoint__Group__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16532:2: rule__EntryPoint__Group__1__Impl
             {
-            pushFollow(FOLLOW_rule__EntryPoint__Group__1__Impl_in_rule__EntryPoint__Group__133604);
+            pushFollow(FOLLOW_rule__EntryPoint__Group__1__Impl_in_rule__EntryPoint__Group__133605);
             rule__EntryPoint__Group__1__Impl();
 
             state._fsp--;
@@ -45626,7 +45637,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16545:1: ( rule__EntryPoint__NameAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16545:2: rule__EntryPoint__NameAssignment_1
             {
-            pushFollow(FOLLOW_rule__EntryPoint__NameAssignment_1_in_rule__EntryPoint__Group__1__Impl33631);
+            pushFollow(FOLLOW_rule__EntryPoint__NameAssignment_1_in_rule__EntryPoint__Group__1__Impl33632);
             rule__EntryPoint__NameAssignment_1();
 
             state._fsp--;
@@ -45666,12 +45677,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16563:1: ( rule__ExitPoint__Group__0__Impl rule__ExitPoint__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16564:2: rule__ExitPoint__Group__0__Impl rule__ExitPoint__Group__1
             {
-            pushFollow(FOLLOW_rule__ExitPoint__Group__0__Impl_in_rule__ExitPoint__Group__033665);
+            pushFollow(FOLLOW_rule__ExitPoint__Group__0__Impl_in_rule__ExitPoint__Group__033666);
             rule__ExitPoint__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ExitPoint__Group__1_in_rule__ExitPoint__Group__033668);
+            pushFollow(FOLLOW_rule__ExitPoint__Group__1_in_rule__ExitPoint__Group__033669);
             rule__ExitPoint__Group__1();
 
             state._fsp--;
@@ -45708,7 +45719,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16577:1: 'ExitPoint'
             {
              before(grammarAccess.getExitPointAccess().getExitPointKeyword_0()); 
-            match(input,101,FOLLOW_101_in_rule__ExitPoint__Group__0__Impl33696); 
+            match(input,101,FOLLOW_101_in_rule__ExitPoint__Group__0__Impl33697); 
              after(grammarAccess.getExitPointAccess().getExitPointKeyword_0()); 
 
             }
@@ -45741,7 +45752,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16594:1: ( rule__ExitPoint__Group__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16595:2: rule__ExitPoint__Group__1__Impl
             {
-            pushFollow(FOLLOW_rule__ExitPoint__Group__1__Impl_in_rule__ExitPoint__Group__133727);
+            pushFollow(FOLLOW_rule__ExitPoint__Group__1__Impl_in_rule__ExitPoint__Group__133728);
             rule__ExitPoint__Group__1__Impl();
 
             state._fsp--;
@@ -45781,7 +45792,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16608:1: ( rule__ExitPoint__NameAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16608:2: rule__ExitPoint__NameAssignment_1
             {
-            pushFollow(FOLLOW_rule__ExitPoint__NameAssignment_1_in_rule__ExitPoint__Group__1__Impl33754);
+            pushFollow(FOLLOW_rule__ExitPoint__NameAssignment_1_in_rule__ExitPoint__Group__1__Impl33755);
             rule__ExitPoint__NameAssignment_1();
 
             state._fsp--;
@@ -45821,12 +45832,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16626:1: ( rule__ChoicePoint__Group__0__Impl rule__ChoicePoint__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16627:2: rule__ChoicePoint__Group__0__Impl rule__ChoicePoint__Group__1
             {
-            pushFollow(FOLLOW_rule__ChoicePoint__Group__0__Impl_in_rule__ChoicePoint__Group__033788);
+            pushFollow(FOLLOW_rule__ChoicePoint__Group__0__Impl_in_rule__ChoicePoint__Group__033789);
             rule__ChoicePoint__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ChoicePoint__Group__1_in_rule__ChoicePoint__Group__033791);
+            pushFollow(FOLLOW_rule__ChoicePoint__Group__1_in_rule__ChoicePoint__Group__033792);
             rule__ChoicePoint__Group__1();
 
             state._fsp--;
@@ -45863,7 +45874,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16640:1: 'ChoicePoint'
             {
              before(grammarAccess.getChoicePointAccess().getChoicePointKeyword_0()); 
-            match(input,102,FOLLOW_102_in_rule__ChoicePoint__Group__0__Impl33819); 
+            match(input,102,FOLLOW_102_in_rule__ChoicePoint__Group__0__Impl33820); 
              after(grammarAccess.getChoicePointAccess().getChoicePointKeyword_0()); 
 
             }
@@ -45896,12 +45907,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16657:1: ( rule__ChoicePoint__Group__1__Impl rule__ChoicePoint__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16658:2: rule__ChoicePoint__Group__1__Impl rule__ChoicePoint__Group__2
             {
-            pushFollow(FOLLOW_rule__ChoicePoint__Group__1__Impl_in_rule__ChoicePoint__Group__133850);
+            pushFollow(FOLLOW_rule__ChoicePoint__Group__1__Impl_in_rule__ChoicePoint__Group__133851);
             rule__ChoicePoint__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ChoicePoint__Group__2_in_rule__ChoicePoint__Group__133853);
+            pushFollow(FOLLOW_rule__ChoicePoint__Group__2_in_rule__ChoicePoint__Group__133854);
             rule__ChoicePoint__Group__2();
 
             state._fsp--;
@@ -45941,7 +45952,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16672:1: ( rule__ChoicePoint__NameAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16672:2: rule__ChoicePoint__NameAssignment_1
             {
-            pushFollow(FOLLOW_rule__ChoicePoint__NameAssignment_1_in_rule__ChoicePoint__Group__1__Impl33880);
+            pushFollow(FOLLOW_rule__ChoicePoint__NameAssignment_1_in_rule__ChoicePoint__Group__1__Impl33881);
             rule__ChoicePoint__NameAssignment_1();
 
             state._fsp--;
@@ -45981,7 +45992,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16686:1: ( rule__ChoicePoint__Group__2__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16687:2: rule__ChoicePoint__Group__2__Impl
             {
-            pushFollow(FOLLOW_rule__ChoicePoint__Group__2__Impl_in_rule__ChoicePoint__Group__233910);
+            pushFollow(FOLLOW_rule__ChoicePoint__Group__2__Impl_in_rule__ChoicePoint__Group__233911);
             rule__ChoicePoint__Group__2__Impl();
 
             state._fsp--;
@@ -46019,17 +46030,17 @@
             {
              before(grammarAccess.getChoicePointAccess().getDocuAssignment_2()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16700:1: ( rule__ChoicePoint__DocuAssignment_2 )?
-            int alt161=2;
-            int LA161_0 = input.LA(1);
+            int alt162=2;
+            int LA162_0 = input.LA(1);
 
-            if ( (LA161_0==58) ) {
-                alt161=1;
+            if ( (LA162_0==58) ) {
+                alt162=1;
             }
-            switch (alt161) {
+            switch (alt162) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16700:2: rule__ChoicePoint__DocuAssignment_2
                     {
-                    pushFollow(FOLLOW_rule__ChoicePoint__DocuAssignment_2_in_rule__ChoicePoint__Group__2__Impl33937);
+                    pushFollow(FOLLOW_rule__ChoicePoint__DocuAssignment_2_in_rule__ChoicePoint__Group__2__Impl33938);
                     rule__ChoicePoint__DocuAssignment_2();
 
                     state._fsp--;
@@ -46072,12 +46083,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16720:1: ( rule__InitialTransition__Group__0__Impl rule__InitialTransition__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16721:2: rule__InitialTransition__Group__0__Impl rule__InitialTransition__Group__1
             {
-            pushFollow(FOLLOW_rule__InitialTransition__Group__0__Impl_in_rule__InitialTransition__Group__033974);
+            pushFollow(FOLLOW_rule__InitialTransition__Group__0__Impl_in_rule__InitialTransition__Group__033975);
             rule__InitialTransition__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__InitialTransition__Group__1_in_rule__InitialTransition__Group__033977);
+            pushFollow(FOLLOW_rule__InitialTransition__Group__1_in_rule__InitialTransition__Group__033978);
             rule__InitialTransition__Group__1();
 
             state._fsp--;
@@ -46114,7 +46125,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16734:1: 'Transition'
             {
              before(grammarAccess.getInitialTransitionAccess().getTransitionKeyword_0()); 
-            match(input,103,FOLLOW_103_in_rule__InitialTransition__Group__0__Impl34005); 
+            match(input,103,FOLLOW_103_in_rule__InitialTransition__Group__0__Impl34006); 
              after(grammarAccess.getInitialTransitionAccess().getTransitionKeyword_0()); 
 
             }
@@ -46147,12 +46158,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16751:1: ( rule__InitialTransition__Group__1__Impl rule__InitialTransition__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16752:2: rule__InitialTransition__Group__1__Impl rule__InitialTransition__Group__2
             {
-            pushFollow(FOLLOW_rule__InitialTransition__Group__1__Impl_in_rule__InitialTransition__Group__134036);
+            pushFollow(FOLLOW_rule__InitialTransition__Group__1__Impl_in_rule__InitialTransition__Group__134037);
             rule__InitialTransition__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__InitialTransition__Group__2_in_rule__InitialTransition__Group__134039);
+            pushFollow(FOLLOW_rule__InitialTransition__Group__2_in_rule__InitialTransition__Group__134040);
             rule__InitialTransition__Group__2();
 
             state._fsp--;
@@ -46190,17 +46201,17 @@
             {
              before(grammarAccess.getInitialTransitionAccess().getNameAssignment_1()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16766:1: ( rule__InitialTransition__NameAssignment_1 )?
-            int alt162=2;
-            int LA162_0 = input.LA(1);
+            int alt163=2;
+            int LA163_0 = input.LA(1);
 
-            if ( (LA162_0==RULE_ID) ) {
-                alt162=1;
+            if ( (LA163_0==RULE_ID) ) {
+                alt163=1;
             }
-            switch (alt162) {
+            switch (alt163) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16766:2: rule__InitialTransition__NameAssignment_1
                     {
-                    pushFollow(FOLLOW_rule__InitialTransition__NameAssignment_1_in_rule__InitialTransition__Group__1__Impl34066);
+                    pushFollow(FOLLOW_rule__InitialTransition__NameAssignment_1_in_rule__InitialTransition__Group__1__Impl34067);
                     rule__InitialTransition__NameAssignment_1();
 
                     state._fsp--;
@@ -46243,12 +46254,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16780:1: ( rule__InitialTransition__Group__2__Impl rule__InitialTransition__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16781:2: rule__InitialTransition__Group__2__Impl rule__InitialTransition__Group__3
             {
-            pushFollow(FOLLOW_rule__InitialTransition__Group__2__Impl_in_rule__InitialTransition__Group__234097);
+            pushFollow(FOLLOW_rule__InitialTransition__Group__2__Impl_in_rule__InitialTransition__Group__234098);
             rule__InitialTransition__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__InitialTransition__Group__3_in_rule__InitialTransition__Group__234100);
+            pushFollow(FOLLOW_rule__InitialTransition__Group__3_in_rule__InitialTransition__Group__234101);
             rule__InitialTransition__Group__3();
 
             state._fsp--;
@@ -46285,7 +46296,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16794:1: ':'
             {
              before(grammarAccess.getInitialTransitionAccess().getColonKeyword_2()); 
-            match(input,42,FOLLOW_42_in_rule__InitialTransition__Group__2__Impl34128); 
+            match(input,42,FOLLOW_42_in_rule__InitialTransition__Group__2__Impl34129); 
              after(grammarAccess.getInitialTransitionAccess().getColonKeyword_2()); 
 
             }
@@ -46318,12 +46329,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16811:1: ( rule__InitialTransition__Group__3__Impl rule__InitialTransition__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16812:2: rule__InitialTransition__Group__3__Impl rule__InitialTransition__Group__4
             {
-            pushFollow(FOLLOW_rule__InitialTransition__Group__3__Impl_in_rule__InitialTransition__Group__334159);
+            pushFollow(FOLLOW_rule__InitialTransition__Group__3__Impl_in_rule__InitialTransition__Group__334160);
             rule__InitialTransition__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__InitialTransition__Group__4_in_rule__InitialTransition__Group__334162);
+            pushFollow(FOLLOW_rule__InitialTransition__Group__4_in_rule__InitialTransition__Group__334163);
             rule__InitialTransition__Group__4();
 
             state._fsp--;
@@ -46360,7 +46371,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16825:1: 'initial'
             {
              before(grammarAccess.getInitialTransitionAccess().getInitialKeyword_3()); 
-            match(input,104,FOLLOW_104_in_rule__InitialTransition__Group__3__Impl34190); 
+            match(input,104,FOLLOW_104_in_rule__InitialTransition__Group__3__Impl34191); 
              after(grammarAccess.getInitialTransitionAccess().getInitialKeyword_3()); 
 
             }
@@ -46393,12 +46404,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16842:1: ( rule__InitialTransition__Group__4__Impl rule__InitialTransition__Group__5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16843:2: rule__InitialTransition__Group__4__Impl rule__InitialTransition__Group__5
             {
-            pushFollow(FOLLOW_rule__InitialTransition__Group__4__Impl_in_rule__InitialTransition__Group__434221);
+            pushFollow(FOLLOW_rule__InitialTransition__Group__4__Impl_in_rule__InitialTransition__Group__434222);
             rule__InitialTransition__Group__4__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__InitialTransition__Group__5_in_rule__InitialTransition__Group__434224);
+            pushFollow(FOLLOW_rule__InitialTransition__Group__5_in_rule__InitialTransition__Group__434225);
             rule__InitialTransition__Group__5();
 
             state._fsp--;
@@ -46435,7 +46446,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16856:1: '->'
             {
              before(grammarAccess.getInitialTransitionAccess().getHyphenMinusGreaterThanSignKeyword_4()); 
-            match(input,44,FOLLOW_44_in_rule__InitialTransition__Group__4__Impl34252); 
+            match(input,44,FOLLOW_44_in_rule__InitialTransition__Group__4__Impl34253); 
              after(grammarAccess.getInitialTransitionAccess().getHyphenMinusGreaterThanSignKeyword_4()); 
 
             }
@@ -46468,12 +46479,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16873:1: ( rule__InitialTransition__Group__5__Impl rule__InitialTransition__Group__6 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16874:2: rule__InitialTransition__Group__5__Impl rule__InitialTransition__Group__6
             {
-            pushFollow(FOLLOW_rule__InitialTransition__Group__5__Impl_in_rule__InitialTransition__Group__534283);
+            pushFollow(FOLLOW_rule__InitialTransition__Group__5__Impl_in_rule__InitialTransition__Group__534284);
             rule__InitialTransition__Group__5__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__InitialTransition__Group__6_in_rule__InitialTransition__Group__534286);
+            pushFollow(FOLLOW_rule__InitialTransition__Group__6_in_rule__InitialTransition__Group__534287);
             rule__InitialTransition__Group__6();
 
             state._fsp--;
@@ -46513,7 +46524,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16888:1: ( rule__InitialTransition__ToAssignment_5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16888:2: rule__InitialTransition__ToAssignment_5
             {
-            pushFollow(FOLLOW_rule__InitialTransition__ToAssignment_5_in_rule__InitialTransition__Group__5__Impl34313);
+            pushFollow(FOLLOW_rule__InitialTransition__ToAssignment_5_in_rule__InitialTransition__Group__5__Impl34314);
             rule__InitialTransition__ToAssignment_5();
 
             state._fsp--;
@@ -46553,12 +46564,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16902:1: ( rule__InitialTransition__Group__6__Impl rule__InitialTransition__Group__7 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16903:2: rule__InitialTransition__Group__6__Impl rule__InitialTransition__Group__7
             {
-            pushFollow(FOLLOW_rule__InitialTransition__Group__6__Impl_in_rule__InitialTransition__Group__634343);
+            pushFollow(FOLLOW_rule__InitialTransition__Group__6__Impl_in_rule__InitialTransition__Group__634344);
             rule__InitialTransition__Group__6__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__InitialTransition__Group__7_in_rule__InitialTransition__Group__634346);
+            pushFollow(FOLLOW_rule__InitialTransition__Group__7_in_rule__InitialTransition__Group__634347);
             rule__InitialTransition__Group__7();
 
             state._fsp--;
@@ -46596,17 +46607,17 @@
             {
              before(grammarAccess.getInitialTransitionAccess().getDocuAssignment_6()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16917:1: ( rule__InitialTransition__DocuAssignment_6 )?
-            int alt163=2;
-            int LA163_0 = input.LA(1);
+            int alt164=2;
+            int LA164_0 = input.LA(1);
 
-            if ( (LA163_0==58) ) {
-                alt163=1;
+            if ( (LA164_0==58) ) {
+                alt164=1;
             }
-            switch (alt163) {
+            switch (alt164) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16917:2: rule__InitialTransition__DocuAssignment_6
                     {
-                    pushFollow(FOLLOW_rule__InitialTransition__DocuAssignment_6_in_rule__InitialTransition__Group__6__Impl34373);
+                    pushFollow(FOLLOW_rule__InitialTransition__DocuAssignment_6_in_rule__InitialTransition__Group__6__Impl34374);
                     rule__InitialTransition__DocuAssignment_6();
 
                     state._fsp--;
@@ -46649,7 +46660,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16931:1: ( rule__InitialTransition__Group__7__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16932:2: rule__InitialTransition__Group__7__Impl
             {
-            pushFollow(FOLLOW_rule__InitialTransition__Group__7__Impl_in_rule__InitialTransition__Group__734404);
+            pushFollow(FOLLOW_rule__InitialTransition__Group__7__Impl_in_rule__InitialTransition__Group__734405);
             rule__InitialTransition__Group__7__Impl();
 
             state._fsp--;
@@ -46687,17 +46698,17 @@
             {
              before(grammarAccess.getInitialTransitionAccess().getGroup_7()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16945:1: ( rule__InitialTransition__Group_7__0 )?
-            int alt164=2;
-            int LA164_0 = input.LA(1);
+            int alt165=2;
+            int LA165_0 = input.LA(1);
 
-            if ( (LA164_0==40) ) {
-                alt164=1;
+            if ( (LA165_0==40) ) {
+                alt165=1;
             }
-            switch (alt164) {
+            switch (alt165) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16945:2: rule__InitialTransition__Group_7__0
                     {
-                    pushFollow(FOLLOW_rule__InitialTransition__Group_7__0_in_rule__InitialTransition__Group__7__Impl34431);
+                    pushFollow(FOLLOW_rule__InitialTransition__Group_7__0_in_rule__InitialTransition__Group__7__Impl34432);
                     rule__InitialTransition__Group_7__0();
 
                     state._fsp--;
@@ -46740,12 +46751,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16975:1: ( rule__InitialTransition__Group_7__0__Impl rule__InitialTransition__Group_7__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16976:2: rule__InitialTransition__Group_7__0__Impl rule__InitialTransition__Group_7__1
             {
-            pushFollow(FOLLOW_rule__InitialTransition__Group_7__0__Impl_in_rule__InitialTransition__Group_7__034478);
+            pushFollow(FOLLOW_rule__InitialTransition__Group_7__0__Impl_in_rule__InitialTransition__Group_7__034479);
             rule__InitialTransition__Group_7__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__InitialTransition__Group_7__1_in_rule__InitialTransition__Group_7__034481);
+            pushFollow(FOLLOW_rule__InitialTransition__Group_7__1_in_rule__InitialTransition__Group_7__034482);
             rule__InitialTransition__Group_7__1();
 
             state._fsp--;
@@ -46782,7 +46793,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:16989:1: '{'
             {
              before(grammarAccess.getInitialTransitionAccess().getLeftCurlyBracketKeyword_7_0()); 
-            match(input,40,FOLLOW_40_in_rule__InitialTransition__Group_7__0__Impl34509); 
+            match(input,40,FOLLOW_40_in_rule__InitialTransition__Group_7__0__Impl34510); 
              after(grammarAccess.getInitialTransitionAccess().getLeftCurlyBracketKeyword_7_0()); 
 
             }
@@ -46815,12 +46826,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17006:1: ( rule__InitialTransition__Group_7__1__Impl rule__InitialTransition__Group_7__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17007:2: rule__InitialTransition__Group_7__1__Impl rule__InitialTransition__Group_7__2
             {
-            pushFollow(FOLLOW_rule__InitialTransition__Group_7__1__Impl_in_rule__InitialTransition__Group_7__134540);
+            pushFollow(FOLLOW_rule__InitialTransition__Group_7__1__Impl_in_rule__InitialTransition__Group_7__134541);
             rule__InitialTransition__Group_7__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__InitialTransition__Group_7__2_in_rule__InitialTransition__Group_7__134543);
+            pushFollow(FOLLOW_rule__InitialTransition__Group_7__2_in_rule__InitialTransition__Group_7__134544);
             rule__InitialTransition__Group_7__2();
 
             state._fsp--;
@@ -46858,17 +46869,17 @@
             {
              before(grammarAccess.getInitialTransitionAccess().getGroup_7_1()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17021:1: ( rule__InitialTransition__Group_7_1__0 )?
-            int alt165=2;
-            int LA165_0 = input.LA(1);
+            int alt166=2;
+            int LA166_0 = input.LA(1);
 
-            if ( (LA165_0==105) ) {
-                alt165=1;
+            if ( (LA166_0==105) ) {
+                alt166=1;
             }
-            switch (alt165) {
+            switch (alt166) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17021:2: rule__InitialTransition__Group_7_1__0
                     {
-                    pushFollow(FOLLOW_rule__InitialTransition__Group_7_1__0_in_rule__InitialTransition__Group_7__1__Impl34570);
+                    pushFollow(FOLLOW_rule__InitialTransition__Group_7_1__0_in_rule__InitialTransition__Group_7__1__Impl34571);
                     rule__InitialTransition__Group_7_1__0();
 
                     state._fsp--;
@@ -46911,7 +46922,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17035:1: ( rule__InitialTransition__Group_7__2__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17036:2: rule__InitialTransition__Group_7__2__Impl
             {
-            pushFollow(FOLLOW_rule__InitialTransition__Group_7__2__Impl_in_rule__InitialTransition__Group_7__234601);
+            pushFollow(FOLLOW_rule__InitialTransition__Group_7__2__Impl_in_rule__InitialTransition__Group_7__234602);
             rule__InitialTransition__Group_7__2__Impl();
 
             state._fsp--;
@@ -46948,7 +46959,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17048:1: '}'
             {
              before(grammarAccess.getInitialTransitionAccess().getRightCurlyBracketKeyword_7_2()); 
-            match(input,41,FOLLOW_41_in_rule__InitialTransition__Group_7__2__Impl34629); 
+            match(input,41,FOLLOW_41_in_rule__InitialTransition__Group_7__2__Impl34630); 
              after(grammarAccess.getInitialTransitionAccess().getRightCurlyBracketKeyword_7_2()); 
 
             }
@@ -46981,12 +46992,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17071:1: ( rule__InitialTransition__Group_7_1__0__Impl rule__InitialTransition__Group_7_1__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17072:2: rule__InitialTransition__Group_7_1__0__Impl rule__InitialTransition__Group_7_1__1
             {
-            pushFollow(FOLLOW_rule__InitialTransition__Group_7_1__0__Impl_in_rule__InitialTransition__Group_7_1__034666);
+            pushFollow(FOLLOW_rule__InitialTransition__Group_7_1__0__Impl_in_rule__InitialTransition__Group_7_1__034667);
             rule__InitialTransition__Group_7_1__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__InitialTransition__Group_7_1__1_in_rule__InitialTransition__Group_7_1__034669);
+            pushFollow(FOLLOW_rule__InitialTransition__Group_7_1__1_in_rule__InitialTransition__Group_7_1__034670);
             rule__InitialTransition__Group_7_1__1();
 
             state._fsp--;
@@ -47023,7 +47034,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17085:1: 'action'
             {
              before(grammarAccess.getInitialTransitionAccess().getActionKeyword_7_1_0()); 
-            match(input,105,FOLLOW_105_in_rule__InitialTransition__Group_7_1__0__Impl34697); 
+            match(input,105,FOLLOW_105_in_rule__InitialTransition__Group_7_1__0__Impl34698); 
              after(grammarAccess.getInitialTransitionAccess().getActionKeyword_7_1_0()); 
 
             }
@@ -47056,7 +47067,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17102:1: ( rule__InitialTransition__Group_7_1__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17103:2: rule__InitialTransition__Group_7_1__1__Impl
             {
-            pushFollow(FOLLOW_rule__InitialTransition__Group_7_1__1__Impl_in_rule__InitialTransition__Group_7_1__134728);
+            pushFollow(FOLLOW_rule__InitialTransition__Group_7_1__1__Impl_in_rule__InitialTransition__Group_7_1__134729);
             rule__InitialTransition__Group_7_1__1__Impl();
 
             state._fsp--;
@@ -47096,7 +47107,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17116:1: ( rule__InitialTransition__ActionAssignment_7_1_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17116:2: rule__InitialTransition__ActionAssignment_7_1_1
             {
-            pushFollow(FOLLOW_rule__InitialTransition__ActionAssignment_7_1_1_in_rule__InitialTransition__Group_7_1__1__Impl34755);
+            pushFollow(FOLLOW_rule__InitialTransition__ActionAssignment_7_1_1_in_rule__InitialTransition__Group_7_1__1__Impl34756);
             rule__InitialTransition__ActionAssignment_7_1_1();
 
             state._fsp--;
@@ -47136,12 +47147,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17134:1: ( rule__ContinuationTransition__Group__0__Impl rule__ContinuationTransition__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17135:2: rule__ContinuationTransition__Group__0__Impl rule__ContinuationTransition__Group__1
             {
-            pushFollow(FOLLOW_rule__ContinuationTransition__Group__0__Impl_in_rule__ContinuationTransition__Group__034789);
+            pushFollow(FOLLOW_rule__ContinuationTransition__Group__0__Impl_in_rule__ContinuationTransition__Group__034790);
             rule__ContinuationTransition__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ContinuationTransition__Group__1_in_rule__ContinuationTransition__Group__034792);
+            pushFollow(FOLLOW_rule__ContinuationTransition__Group__1_in_rule__ContinuationTransition__Group__034793);
             rule__ContinuationTransition__Group__1();
 
             state._fsp--;
@@ -47178,7 +47189,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17148:1: 'Transition'
             {
              before(grammarAccess.getContinuationTransitionAccess().getTransitionKeyword_0()); 
-            match(input,103,FOLLOW_103_in_rule__ContinuationTransition__Group__0__Impl34820); 
+            match(input,103,FOLLOW_103_in_rule__ContinuationTransition__Group__0__Impl34821); 
              after(grammarAccess.getContinuationTransitionAccess().getTransitionKeyword_0()); 
 
             }
@@ -47211,12 +47222,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17165:1: ( rule__ContinuationTransition__Group__1__Impl rule__ContinuationTransition__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17166:2: rule__ContinuationTransition__Group__1__Impl rule__ContinuationTransition__Group__2
             {
-            pushFollow(FOLLOW_rule__ContinuationTransition__Group__1__Impl_in_rule__ContinuationTransition__Group__134851);
+            pushFollow(FOLLOW_rule__ContinuationTransition__Group__1__Impl_in_rule__ContinuationTransition__Group__134852);
             rule__ContinuationTransition__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ContinuationTransition__Group__2_in_rule__ContinuationTransition__Group__134854);
+            pushFollow(FOLLOW_rule__ContinuationTransition__Group__2_in_rule__ContinuationTransition__Group__134855);
             rule__ContinuationTransition__Group__2();
 
             state._fsp--;
@@ -47254,17 +47265,17 @@
             {
              before(grammarAccess.getContinuationTransitionAccess().getNameAssignment_1()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17180:1: ( rule__ContinuationTransition__NameAssignment_1 )?
-            int alt166=2;
-            int LA166_0 = input.LA(1);
+            int alt167=2;
+            int LA167_0 = input.LA(1);
 
-            if ( (LA166_0==RULE_ID) ) {
-                alt166=1;
+            if ( (LA167_0==RULE_ID) ) {
+                alt167=1;
             }
-            switch (alt166) {
+            switch (alt167) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17180:2: rule__ContinuationTransition__NameAssignment_1
                     {
-                    pushFollow(FOLLOW_rule__ContinuationTransition__NameAssignment_1_in_rule__ContinuationTransition__Group__1__Impl34881);
+                    pushFollow(FOLLOW_rule__ContinuationTransition__NameAssignment_1_in_rule__ContinuationTransition__Group__1__Impl34882);
                     rule__ContinuationTransition__NameAssignment_1();
 
                     state._fsp--;
@@ -47307,12 +47318,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17194:1: ( rule__ContinuationTransition__Group__2__Impl rule__ContinuationTransition__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17195:2: rule__ContinuationTransition__Group__2__Impl rule__ContinuationTransition__Group__3
             {
-            pushFollow(FOLLOW_rule__ContinuationTransition__Group__2__Impl_in_rule__ContinuationTransition__Group__234912);
+            pushFollow(FOLLOW_rule__ContinuationTransition__Group__2__Impl_in_rule__ContinuationTransition__Group__234913);
             rule__ContinuationTransition__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ContinuationTransition__Group__3_in_rule__ContinuationTransition__Group__234915);
+            pushFollow(FOLLOW_rule__ContinuationTransition__Group__3_in_rule__ContinuationTransition__Group__234916);
             rule__ContinuationTransition__Group__3();
 
             state._fsp--;
@@ -47349,7 +47360,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17208:1: ':'
             {
              before(grammarAccess.getContinuationTransitionAccess().getColonKeyword_2()); 
-            match(input,42,FOLLOW_42_in_rule__ContinuationTransition__Group__2__Impl34943); 
+            match(input,42,FOLLOW_42_in_rule__ContinuationTransition__Group__2__Impl34944); 
              after(grammarAccess.getContinuationTransitionAccess().getColonKeyword_2()); 
 
             }
@@ -47382,12 +47393,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17225:1: ( rule__ContinuationTransition__Group__3__Impl rule__ContinuationTransition__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17226:2: rule__ContinuationTransition__Group__3__Impl rule__ContinuationTransition__Group__4
             {
-            pushFollow(FOLLOW_rule__ContinuationTransition__Group__3__Impl_in_rule__ContinuationTransition__Group__334974);
+            pushFollow(FOLLOW_rule__ContinuationTransition__Group__3__Impl_in_rule__ContinuationTransition__Group__334975);
             rule__ContinuationTransition__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ContinuationTransition__Group__4_in_rule__ContinuationTransition__Group__334977);
+            pushFollow(FOLLOW_rule__ContinuationTransition__Group__4_in_rule__ContinuationTransition__Group__334978);
             rule__ContinuationTransition__Group__4();
 
             state._fsp--;
@@ -47427,7 +47438,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17240:1: ( rule__ContinuationTransition__FromAssignment_3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17240:2: rule__ContinuationTransition__FromAssignment_3
             {
-            pushFollow(FOLLOW_rule__ContinuationTransition__FromAssignment_3_in_rule__ContinuationTransition__Group__3__Impl35004);
+            pushFollow(FOLLOW_rule__ContinuationTransition__FromAssignment_3_in_rule__ContinuationTransition__Group__3__Impl35005);
             rule__ContinuationTransition__FromAssignment_3();
 
             state._fsp--;
@@ -47467,12 +47478,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17254:1: ( rule__ContinuationTransition__Group__4__Impl rule__ContinuationTransition__Group__5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17255:2: rule__ContinuationTransition__Group__4__Impl rule__ContinuationTransition__Group__5
             {
-            pushFollow(FOLLOW_rule__ContinuationTransition__Group__4__Impl_in_rule__ContinuationTransition__Group__435034);
+            pushFollow(FOLLOW_rule__ContinuationTransition__Group__4__Impl_in_rule__ContinuationTransition__Group__435035);
             rule__ContinuationTransition__Group__4__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ContinuationTransition__Group__5_in_rule__ContinuationTransition__Group__435037);
+            pushFollow(FOLLOW_rule__ContinuationTransition__Group__5_in_rule__ContinuationTransition__Group__435038);
             rule__ContinuationTransition__Group__5();
 
             state._fsp--;
@@ -47509,7 +47520,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17268:1: '->'
             {
              before(grammarAccess.getContinuationTransitionAccess().getHyphenMinusGreaterThanSignKeyword_4()); 
-            match(input,44,FOLLOW_44_in_rule__ContinuationTransition__Group__4__Impl35065); 
+            match(input,44,FOLLOW_44_in_rule__ContinuationTransition__Group__4__Impl35066); 
              after(grammarAccess.getContinuationTransitionAccess().getHyphenMinusGreaterThanSignKeyword_4()); 
 
             }
@@ -47542,12 +47553,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17285:1: ( rule__ContinuationTransition__Group__5__Impl rule__ContinuationTransition__Group__6 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17286:2: rule__ContinuationTransition__Group__5__Impl rule__ContinuationTransition__Group__6
             {
-            pushFollow(FOLLOW_rule__ContinuationTransition__Group__5__Impl_in_rule__ContinuationTransition__Group__535096);
+            pushFollow(FOLLOW_rule__ContinuationTransition__Group__5__Impl_in_rule__ContinuationTransition__Group__535097);
             rule__ContinuationTransition__Group__5__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ContinuationTransition__Group__6_in_rule__ContinuationTransition__Group__535099);
+            pushFollow(FOLLOW_rule__ContinuationTransition__Group__6_in_rule__ContinuationTransition__Group__535100);
             rule__ContinuationTransition__Group__6();
 
             state._fsp--;
@@ -47587,7 +47598,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17300:1: ( rule__ContinuationTransition__ToAssignment_5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17300:2: rule__ContinuationTransition__ToAssignment_5
             {
-            pushFollow(FOLLOW_rule__ContinuationTransition__ToAssignment_5_in_rule__ContinuationTransition__Group__5__Impl35126);
+            pushFollow(FOLLOW_rule__ContinuationTransition__ToAssignment_5_in_rule__ContinuationTransition__Group__5__Impl35127);
             rule__ContinuationTransition__ToAssignment_5();
 
             state._fsp--;
@@ -47627,12 +47638,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17314:1: ( rule__ContinuationTransition__Group__6__Impl rule__ContinuationTransition__Group__7 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17315:2: rule__ContinuationTransition__Group__6__Impl rule__ContinuationTransition__Group__7
             {
-            pushFollow(FOLLOW_rule__ContinuationTransition__Group__6__Impl_in_rule__ContinuationTransition__Group__635156);
+            pushFollow(FOLLOW_rule__ContinuationTransition__Group__6__Impl_in_rule__ContinuationTransition__Group__635157);
             rule__ContinuationTransition__Group__6__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ContinuationTransition__Group__7_in_rule__ContinuationTransition__Group__635159);
+            pushFollow(FOLLOW_rule__ContinuationTransition__Group__7_in_rule__ContinuationTransition__Group__635160);
             rule__ContinuationTransition__Group__7();
 
             state._fsp--;
@@ -47670,17 +47681,17 @@
             {
              before(grammarAccess.getContinuationTransitionAccess().getDocuAssignment_6()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17329:1: ( rule__ContinuationTransition__DocuAssignment_6 )?
-            int alt167=2;
-            int LA167_0 = input.LA(1);
+            int alt168=2;
+            int LA168_0 = input.LA(1);
 
-            if ( (LA167_0==58) ) {
-                alt167=1;
+            if ( (LA168_0==58) ) {
+                alt168=1;
             }
-            switch (alt167) {
+            switch (alt168) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17329:2: rule__ContinuationTransition__DocuAssignment_6
                     {
-                    pushFollow(FOLLOW_rule__ContinuationTransition__DocuAssignment_6_in_rule__ContinuationTransition__Group__6__Impl35186);
+                    pushFollow(FOLLOW_rule__ContinuationTransition__DocuAssignment_6_in_rule__ContinuationTransition__Group__6__Impl35187);
                     rule__ContinuationTransition__DocuAssignment_6();
 
                     state._fsp--;
@@ -47723,7 +47734,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17343:1: ( rule__ContinuationTransition__Group__7__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17344:2: rule__ContinuationTransition__Group__7__Impl
             {
-            pushFollow(FOLLOW_rule__ContinuationTransition__Group__7__Impl_in_rule__ContinuationTransition__Group__735217);
+            pushFollow(FOLLOW_rule__ContinuationTransition__Group__7__Impl_in_rule__ContinuationTransition__Group__735218);
             rule__ContinuationTransition__Group__7__Impl();
 
             state._fsp--;
@@ -47761,17 +47772,17 @@
             {
              before(grammarAccess.getContinuationTransitionAccess().getGroup_7()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17357:1: ( rule__ContinuationTransition__Group_7__0 )?
-            int alt168=2;
-            int LA168_0 = input.LA(1);
+            int alt169=2;
+            int LA169_0 = input.LA(1);
 
-            if ( (LA168_0==40) ) {
-                alt168=1;
+            if ( (LA169_0==40) ) {
+                alt169=1;
             }
-            switch (alt168) {
+            switch (alt169) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17357:2: rule__ContinuationTransition__Group_7__0
                     {
-                    pushFollow(FOLLOW_rule__ContinuationTransition__Group_7__0_in_rule__ContinuationTransition__Group__7__Impl35244);
+                    pushFollow(FOLLOW_rule__ContinuationTransition__Group_7__0_in_rule__ContinuationTransition__Group__7__Impl35245);
                     rule__ContinuationTransition__Group_7__0();
 
                     state._fsp--;
@@ -47814,12 +47825,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17387:1: ( rule__ContinuationTransition__Group_7__0__Impl rule__ContinuationTransition__Group_7__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17388:2: rule__ContinuationTransition__Group_7__0__Impl rule__ContinuationTransition__Group_7__1
             {
-            pushFollow(FOLLOW_rule__ContinuationTransition__Group_7__0__Impl_in_rule__ContinuationTransition__Group_7__035291);
+            pushFollow(FOLLOW_rule__ContinuationTransition__Group_7__0__Impl_in_rule__ContinuationTransition__Group_7__035292);
             rule__ContinuationTransition__Group_7__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ContinuationTransition__Group_7__1_in_rule__ContinuationTransition__Group_7__035294);
+            pushFollow(FOLLOW_rule__ContinuationTransition__Group_7__1_in_rule__ContinuationTransition__Group_7__035295);
             rule__ContinuationTransition__Group_7__1();
 
             state._fsp--;
@@ -47856,7 +47867,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17401:1: '{'
             {
              before(grammarAccess.getContinuationTransitionAccess().getLeftCurlyBracketKeyword_7_0()); 
-            match(input,40,FOLLOW_40_in_rule__ContinuationTransition__Group_7__0__Impl35322); 
+            match(input,40,FOLLOW_40_in_rule__ContinuationTransition__Group_7__0__Impl35323); 
              after(grammarAccess.getContinuationTransitionAccess().getLeftCurlyBracketKeyword_7_0()); 
 
             }
@@ -47889,12 +47900,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17418:1: ( rule__ContinuationTransition__Group_7__1__Impl rule__ContinuationTransition__Group_7__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17419:2: rule__ContinuationTransition__Group_7__1__Impl rule__ContinuationTransition__Group_7__2
             {
-            pushFollow(FOLLOW_rule__ContinuationTransition__Group_7__1__Impl_in_rule__ContinuationTransition__Group_7__135353);
+            pushFollow(FOLLOW_rule__ContinuationTransition__Group_7__1__Impl_in_rule__ContinuationTransition__Group_7__135354);
             rule__ContinuationTransition__Group_7__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ContinuationTransition__Group_7__2_in_rule__ContinuationTransition__Group_7__135356);
+            pushFollow(FOLLOW_rule__ContinuationTransition__Group_7__2_in_rule__ContinuationTransition__Group_7__135357);
             rule__ContinuationTransition__Group_7__2();
 
             state._fsp--;
@@ -47932,17 +47943,17 @@
             {
              before(grammarAccess.getContinuationTransitionAccess().getGroup_7_1()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17433:1: ( rule__ContinuationTransition__Group_7_1__0 )?
-            int alt169=2;
-            int LA169_0 = input.LA(1);
+            int alt170=2;
+            int LA170_0 = input.LA(1);
 
-            if ( (LA169_0==105) ) {
-                alt169=1;
+            if ( (LA170_0==105) ) {
+                alt170=1;
             }
-            switch (alt169) {
+            switch (alt170) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17433:2: rule__ContinuationTransition__Group_7_1__0
                     {
-                    pushFollow(FOLLOW_rule__ContinuationTransition__Group_7_1__0_in_rule__ContinuationTransition__Group_7__1__Impl35383);
+                    pushFollow(FOLLOW_rule__ContinuationTransition__Group_7_1__0_in_rule__ContinuationTransition__Group_7__1__Impl35384);
                     rule__ContinuationTransition__Group_7_1__0();
 
                     state._fsp--;
@@ -47985,7 +47996,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17447:1: ( rule__ContinuationTransition__Group_7__2__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17448:2: rule__ContinuationTransition__Group_7__2__Impl
             {
-            pushFollow(FOLLOW_rule__ContinuationTransition__Group_7__2__Impl_in_rule__ContinuationTransition__Group_7__235414);
+            pushFollow(FOLLOW_rule__ContinuationTransition__Group_7__2__Impl_in_rule__ContinuationTransition__Group_7__235415);
             rule__ContinuationTransition__Group_7__2__Impl();
 
             state._fsp--;
@@ -48022,7 +48033,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17460:1: '}'
             {
              before(grammarAccess.getContinuationTransitionAccess().getRightCurlyBracketKeyword_7_2()); 
-            match(input,41,FOLLOW_41_in_rule__ContinuationTransition__Group_7__2__Impl35442); 
+            match(input,41,FOLLOW_41_in_rule__ContinuationTransition__Group_7__2__Impl35443); 
              after(grammarAccess.getContinuationTransitionAccess().getRightCurlyBracketKeyword_7_2()); 
 
             }
@@ -48055,12 +48066,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17483:1: ( rule__ContinuationTransition__Group_7_1__0__Impl rule__ContinuationTransition__Group_7_1__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17484:2: rule__ContinuationTransition__Group_7_1__0__Impl rule__ContinuationTransition__Group_7_1__1
             {
-            pushFollow(FOLLOW_rule__ContinuationTransition__Group_7_1__0__Impl_in_rule__ContinuationTransition__Group_7_1__035479);
+            pushFollow(FOLLOW_rule__ContinuationTransition__Group_7_1__0__Impl_in_rule__ContinuationTransition__Group_7_1__035480);
             rule__ContinuationTransition__Group_7_1__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ContinuationTransition__Group_7_1__1_in_rule__ContinuationTransition__Group_7_1__035482);
+            pushFollow(FOLLOW_rule__ContinuationTransition__Group_7_1__1_in_rule__ContinuationTransition__Group_7_1__035483);
             rule__ContinuationTransition__Group_7_1__1();
 
             state._fsp--;
@@ -48097,7 +48108,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17497:1: 'action'
             {
              before(grammarAccess.getContinuationTransitionAccess().getActionKeyword_7_1_0()); 
-            match(input,105,FOLLOW_105_in_rule__ContinuationTransition__Group_7_1__0__Impl35510); 
+            match(input,105,FOLLOW_105_in_rule__ContinuationTransition__Group_7_1__0__Impl35511); 
              after(grammarAccess.getContinuationTransitionAccess().getActionKeyword_7_1_0()); 
 
             }
@@ -48130,7 +48141,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17514:1: ( rule__ContinuationTransition__Group_7_1__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17515:2: rule__ContinuationTransition__Group_7_1__1__Impl
             {
-            pushFollow(FOLLOW_rule__ContinuationTransition__Group_7_1__1__Impl_in_rule__ContinuationTransition__Group_7_1__135541);
+            pushFollow(FOLLOW_rule__ContinuationTransition__Group_7_1__1__Impl_in_rule__ContinuationTransition__Group_7_1__135542);
             rule__ContinuationTransition__Group_7_1__1__Impl();
 
             state._fsp--;
@@ -48170,7 +48181,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17528:1: ( rule__ContinuationTransition__ActionAssignment_7_1_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17528:2: rule__ContinuationTransition__ActionAssignment_7_1_1
             {
-            pushFollow(FOLLOW_rule__ContinuationTransition__ActionAssignment_7_1_1_in_rule__ContinuationTransition__Group_7_1__1__Impl35568);
+            pushFollow(FOLLOW_rule__ContinuationTransition__ActionAssignment_7_1_1_in_rule__ContinuationTransition__Group_7_1__1__Impl35569);
             rule__ContinuationTransition__ActionAssignment_7_1_1();
 
             state._fsp--;
@@ -48210,12 +48221,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17546:1: ( rule__TriggeredTransition__Group__0__Impl rule__TriggeredTransition__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17547:2: rule__TriggeredTransition__Group__0__Impl rule__TriggeredTransition__Group__1
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__0__Impl_in_rule__TriggeredTransition__Group__035602);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__0__Impl_in_rule__TriggeredTransition__Group__035603);
             rule__TriggeredTransition__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__1_in_rule__TriggeredTransition__Group__035605);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__1_in_rule__TriggeredTransition__Group__035606);
             rule__TriggeredTransition__Group__1();
 
             state._fsp--;
@@ -48252,7 +48263,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17560:1: 'Transition'
             {
              before(grammarAccess.getTriggeredTransitionAccess().getTransitionKeyword_0()); 
-            match(input,103,FOLLOW_103_in_rule__TriggeredTransition__Group__0__Impl35633); 
+            match(input,103,FOLLOW_103_in_rule__TriggeredTransition__Group__0__Impl35634); 
              after(grammarAccess.getTriggeredTransitionAccess().getTransitionKeyword_0()); 
 
             }
@@ -48285,12 +48296,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17577:1: ( rule__TriggeredTransition__Group__1__Impl rule__TriggeredTransition__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17578:2: rule__TriggeredTransition__Group__1__Impl rule__TriggeredTransition__Group__2
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__1__Impl_in_rule__TriggeredTransition__Group__135664);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__1__Impl_in_rule__TriggeredTransition__Group__135665);
             rule__TriggeredTransition__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__2_in_rule__TriggeredTransition__Group__135667);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__2_in_rule__TriggeredTransition__Group__135668);
             rule__TriggeredTransition__Group__2();
 
             state._fsp--;
@@ -48328,17 +48339,17 @@
             {
              before(grammarAccess.getTriggeredTransitionAccess().getNameAssignment_1()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17592:1: ( rule__TriggeredTransition__NameAssignment_1 )?
-            int alt170=2;
-            int LA170_0 = input.LA(1);
+            int alt171=2;
+            int LA171_0 = input.LA(1);
 
-            if ( (LA170_0==RULE_ID) ) {
-                alt170=1;
+            if ( (LA171_0==RULE_ID) ) {
+                alt171=1;
             }
-            switch (alt170) {
+            switch (alt171) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17592:2: rule__TriggeredTransition__NameAssignment_1
                     {
-                    pushFollow(FOLLOW_rule__TriggeredTransition__NameAssignment_1_in_rule__TriggeredTransition__Group__1__Impl35694);
+                    pushFollow(FOLLOW_rule__TriggeredTransition__NameAssignment_1_in_rule__TriggeredTransition__Group__1__Impl35695);
                     rule__TriggeredTransition__NameAssignment_1();
 
                     state._fsp--;
@@ -48381,12 +48392,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17606:1: ( rule__TriggeredTransition__Group__2__Impl rule__TriggeredTransition__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17607:2: rule__TriggeredTransition__Group__2__Impl rule__TriggeredTransition__Group__3
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__2__Impl_in_rule__TriggeredTransition__Group__235725);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__2__Impl_in_rule__TriggeredTransition__Group__235726);
             rule__TriggeredTransition__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__3_in_rule__TriggeredTransition__Group__235728);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__3_in_rule__TriggeredTransition__Group__235729);
             rule__TriggeredTransition__Group__3();
 
             state._fsp--;
@@ -48423,7 +48434,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17620:1: ':'
             {
              before(grammarAccess.getTriggeredTransitionAccess().getColonKeyword_2()); 
-            match(input,42,FOLLOW_42_in_rule__TriggeredTransition__Group__2__Impl35756); 
+            match(input,42,FOLLOW_42_in_rule__TriggeredTransition__Group__2__Impl35757); 
              after(grammarAccess.getTriggeredTransitionAccess().getColonKeyword_2()); 
 
             }
@@ -48456,12 +48467,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17637:1: ( rule__TriggeredTransition__Group__3__Impl rule__TriggeredTransition__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17638:2: rule__TriggeredTransition__Group__3__Impl rule__TriggeredTransition__Group__4
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__3__Impl_in_rule__TriggeredTransition__Group__335787);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__3__Impl_in_rule__TriggeredTransition__Group__335788);
             rule__TriggeredTransition__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__4_in_rule__TriggeredTransition__Group__335790);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__4_in_rule__TriggeredTransition__Group__335791);
             rule__TriggeredTransition__Group__4();
 
             state._fsp--;
@@ -48501,7 +48512,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17652:1: ( rule__TriggeredTransition__FromAssignment_3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17652:2: rule__TriggeredTransition__FromAssignment_3
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__FromAssignment_3_in_rule__TriggeredTransition__Group__3__Impl35817);
+            pushFollow(FOLLOW_rule__TriggeredTransition__FromAssignment_3_in_rule__TriggeredTransition__Group__3__Impl35818);
             rule__TriggeredTransition__FromAssignment_3();
 
             state._fsp--;
@@ -48541,12 +48552,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17666:1: ( rule__TriggeredTransition__Group__4__Impl rule__TriggeredTransition__Group__5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17667:2: rule__TriggeredTransition__Group__4__Impl rule__TriggeredTransition__Group__5
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__4__Impl_in_rule__TriggeredTransition__Group__435847);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__4__Impl_in_rule__TriggeredTransition__Group__435848);
             rule__TriggeredTransition__Group__4__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__5_in_rule__TriggeredTransition__Group__435850);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__5_in_rule__TriggeredTransition__Group__435851);
             rule__TriggeredTransition__Group__5();
 
             state._fsp--;
@@ -48583,7 +48594,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17680:1: '->'
             {
              before(grammarAccess.getTriggeredTransitionAccess().getHyphenMinusGreaterThanSignKeyword_4()); 
-            match(input,44,FOLLOW_44_in_rule__TriggeredTransition__Group__4__Impl35878); 
+            match(input,44,FOLLOW_44_in_rule__TriggeredTransition__Group__4__Impl35879); 
              after(grammarAccess.getTriggeredTransitionAccess().getHyphenMinusGreaterThanSignKeyword_4()); 
 
             }
@@ -48616,12 +48627,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17697:1: ( rule__TriggeredTransition__Group__5__Impl rule__TriggeredTransition__Group__6 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17698:2: rule__TriggeredTransition__Group__5__Impl rule__TriggeredTransition__Group__6
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__5__Impl_in_rule__TriggeredTransition__Group__535909);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__5__Impl_in_rule__TriggeredTransition__Group__535910);
             rule__TriggeredTransition__Group__5__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__6_in_rule__TriggeredTransition__Group__535912);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__6_in_rule__TriggeredTransition__Group__535913);
             rule__TriggeredTransition__Group__6();
 
             state._fsp--;
@@ -48661,7 +48672,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17712:1: ( rule__TriggeredTransition__ToAssignment_5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17712:2: rule__TriggeredTransition__ToAssignment_5
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__ToAssignment_5_in_rule__TriggeredTransition__Group__5__Impl35939);
+            pushFollow(FOLLOW_rule__TriggeredTransition__ToAssignment_5_in_rule__TriggeredTransition__Group__5__Impl35940);
             rule__TriggeredTransition__ToAssignment_5();
 
             state._fsp--;
@@ -48701,12 +48712,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17726:1: ( rule__TriggeredTransition__Group__6__Impl rule__TriggeredTransition__Group__7 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17727:2: rule__TriggeredTransition__Group__6__Impl rule__TriggeredTransition__Group__7
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__6__Impl_in_rule__TriggeredTransition__Group__635969);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__6__Impl_in_rule__TriggeredTransition__Group__635970);
             rule__TriggeredTransition__Group__6__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__7_in_rule__TriggeredTransition__Group__635972);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__7_in_rule__TriggeredTransition__Group__635973);
             rule__TriggeredTransition__Group__7();
 
             state._fsp--;
@@ -48744,17 +48755,17 @@
             {
              before(grammarAccess.getTriggeredTransitionAccess().getDocuAssignment_6()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17741:1: ( rule__TriggeredTransition__DocuAssignment_6 )?
-            int alt171=2;
-            int LA171_0 = input.LA(1);
+            int alt172=2;
+            int LA172_0 = input.LA(1);
 
-            if ( (LA171_0==58) ) {
-                alt171=1;
+            if ( (LA172_0==58) ) {
+                alt172=1;
             }
-            switch (alt171) {
+            switch (alt172) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17741:2: rule__TriggeredTransition__DocuAssignment_6
                     {
-                    pushFollow(FOLLOW_rule__TriggeredTransition__DocuAssignment_6_in_rule__TriggeredTransition__Group__6__Impl35999);
+                    pushFollow(FOLLOW_rule__TriggeredTransition__DocuAssignment_6_in_rule__TriggeredTransition__Group__6__Impl36000);
                     rule__TriggeredTransition__DocuAssignment_6();
 
                     state._fsp--;
@@ -48797,12 +48808,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17755:1: ( rule__TriggeredTransition__Group__7__Impl rule__TriggeredTransition__Group__8 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17756:2: rule__TriggeredTransition__Group__7__Impl rule__TriggeredTransition__Group__8
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__7__Impl_in_rule__TriggeredTransition__Group__736030);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__7__Impl_in_rule__TriggeredTransition__Group__736031);
             rule__TriggeredTransition__Group__7__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__8_in_rule__TriggeredTransition__Group__736033);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__8_in_rule__TriggeredTransition__Group__736034);
             rule__TriggeredTransition__Group__8();
 
             state._fsp--;
@@ -48839,7 +48850,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17769:1: '{'
             {
              before(grammarAccess.getTriggeredTransitionAccess().getLeftCurlyBracketKeyword_7()); 
-            match(input,40,FOLLOW_40_in_rule__TriggeredTransition__Group__7__Impl36061); 
+            match(input,40,FOLLOW_40_in_rule__TriggeredTransition__Group__7__Impl36062); 
              after(grammarAccess.getTriggeredTransitionAccess().getLeftCurlyBracketKeyword_7()); 
 
             }
@@ -48872,12 +48883,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17786:1: ( rule__TriggeredTransition__Group__8__Impl rule__TriggeredTransition__Group__9 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17787:2: rule__TriggeredTransition__Group__8__Impl rule__TriggeredTransition__Group__9
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__8__Impl_in_rule__TriggeredTransition__Group__836092);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__8__Impl_in_rule__TriggeredTransition__Group__836093);
             rule__TriggeredTransition__Group__8__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__9_in_rule__TriggeredTransition__Group__836095);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__9_in_rule__TriggeredTransition__Group__836096);
             rule__TriggeredTransition__Group__9();
 
             state._fsp--;
@@ -48914,7 +48925,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17800:1: 'triggers'
             {
              before(grammarAccess.getTriggeredTransitionAccess().getTriggersKeyword_8()); 
-            match(input,106,FOLLOW_106_in_rule__TriggeredTransition__Group__8__Impl36123); 
+            match(input,106,FOLLOW_106_in_rule__TriggeredTransition__Group__8__Impl36124); 
              after(grammarAccess.getTriggeredTransitionAccess().getTriggersKeyword_8()); 
 
             }
@@ -48947,12 +48958,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17817:1: ( rule__TriggeredTransition__Group__9__Impl rule__TriggeredTransition__Group__10 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17818:2: rule__TriggeredTransition__Group__9__Impl rule__TriggeredTransition__Group__10
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__9__Impl_in_rule__TriggeredTransition__Group__936154);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__9__Impl_in_rule__TriggeredTransition__Group__936155);
             rule__TriggeredTransition__Group__9__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__10_in_rule__TriggeredTransition__Group__936157);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__10_in_rule__TriggeredTransition__Group__936158);
             rule__TriggeredTransition__Group__10();
 
             state._fsp--;
@@ -48989,7 +49000,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17831:1: '{'
             {
              before(grammarAccess.getTriggeredTransitionAccess().getLeftCurlyBracketKeyword_9()); 
-            match(input,40,FOLLOW_40_in_rule__TriggeredTransition__Group__9__Impl36185); 
+            match(input,40,FOLLOW_40_in_rule__TriggeredTransition__Group__9__Impl36186); 
              after(grammarAccess.getTriggeredTransitionAccess().getLeftCurlyBracketKeyword_9()); 
 
             }
@@ -49022,12 +49033,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17848:1: ( rule__TriggeredTransition__Group__10__Impl rule__TriggeredTransition__Group__11 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17849:2: rule__TriggeredTransition__Group__10__Impl rule__TriggeredTransition__Group__11
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__10__Impl_in_rule__TriggeredTransition__Group__1036216);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__10__Impl_in_rule__TriggeredTransition__Group__1036217);
             rule__TriggeredTransition__Group__10__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__11_in_rule__TriggeredTransition__Group__1036219);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__11_in_rule__TriggeredTransition__Group__1036220);
             rule__TriggeredTransition__Group__11();
 
             state._fsp--;
@@ -49067,7 +49078,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17863:1: ( rule__TriggeredTransition__TriggersAssignment_10 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17863:2: rule__TriggeredTransition__TriggersAssignment_10
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__TriggersAssignment_10_in_rule__TriggeredTransition__Group__10__Impl36246);
+            pushFollow(FOLLOW_rule__TriggeredTransition__TriggersAssignment_10_in_rule__TriggeredTransition__Group__10__Impl36247);
             rule__TriggeredTransition__TriggersAssignment_10();
 
             state._fsp--;
@@ -49107,12 +49118,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17877:1: ( rule__TriggeredTransition__Group__11__Impl rule__TriggeredTransition__Group__12 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17878:2: rule__TriggeredTransition__Group__11__Impl rule__TriggeredTransition__Group__12
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__11__Impl_in_rule__TriggeredTransition__Group__1136276);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__11__Impl_in_rule__TriggeredTransition__Group__1136277);
             rule__TriggeredTransition__Group__11__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__12_in_rule__TriggeredTransition__Group__1136279);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__12_in_rule__TriggeredTransition__Group__1136280);
             rule__TriggeredTransition__Group__12();
 
             state._fsp--;
@@ -49150,21 +49161,21 @@
             {
              before(grammarAccess.getTriggeredTransitionAccess().getGroup_11()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17892:1: ( rule__TriggeredTransition__Group_11__0 )*
-            loop172:
+            loop173:
             do {
-                int alt172=2;
-                int LA172_0 = input.LA(1);
+                int alt173=2;
+                int LA173_0 = input.LA(1);
 
-                if ( (LA172_0==107) ) {
-                    alt172=1;
+                if ( (LA173_0==107) ) {
+                    alt173=1;
                 }
 
 
-                switch (alt172) {
+                switch (alt173) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17892:2: rule__TriggeredTransition__Group_11__0
             	    {
-            	    pushFollow(FOLLOW_rule__TriggeredTransition__Group_11__0_in_rule__TriggeredTransition__Group__11__Impl36306);
+            	    pushFollow(FOLLOW_rule__TriggeredTransition__Group_11__0_in_rule__TriggeredTransition__Group__11__Impl36307);
             	    rule__TriggeredTransition__Group_11__0();
 
             	    state._fsp--;
@@ -49174,7 +49185,7 @@
             	    break;
 
             	default :
-            	    break loop172;
+            	    break loop173;
                 }
             } while (true);
 
@@ -49210,12 +49221,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17906:1: ( rule__TriggeredTransition__Group__12__Impl rule__TriggeredTransition__Group__13 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17907:2: rule__TriggeredTransition__Group__12__Impl rule__TriggeredTransition__Group__13
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__12__Impl_in_rule__TriggeredTransition__Group__1236337);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__12__Impl_in_rule__TriggeredTransition__Group__1236338);
             rule__TriggeredTransition__Group__12__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__13_in_rule__TriggeredTransition__Group__1236340);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__13_in_rule__TriggeredTransition__Group__1236341);
             rule__TriggeredTransition__Group__13();
 
             state._fsp--;
@@ -49252,7 +49263,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17920:1: '}'
             {
              before(grammarAccess.getTriggeredTransitionAccess().getRightCurlyBracketKeyword_12()); 
-            match(input,41,FOLLOW_41_in_rule__TriggeredTransition__Group__12__Impl36368); 
+            match(input,41,FOLLOW_41_in_rule__TriggeredTransition__Group__12__Impl36369); 
              after(grammarAccess.getTriggeredTransitionAccess().getRightCurlyBracketKeyword_12()); 
 
             }
@@ -49285,12 +49296,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17937:1: ( rule__TriggeredTransition__Group__13__Impl rule__TriggeredTransition__Group__14 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17938:2: rule__TriggeredTransition__Group__13__Impl rule__TriggeredTransition__Group__14
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__13__Impl_in_rule__TriggeredTransition__Group__1336399);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__13__Impl_in_rule__TriggeredTransition__Group__1336400);
             rule__TriggeredTransition__Group__13__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__14_in_rule__TriggeredTransition__Group__1336402);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__14_in_rule__TriggeredTransition__Group__1336403);
             rule__TriggeredTransition__Group__14();
 
             state._fsp--;
@@ -49328,17 +49339,17 @@
             {
              before(grammarAccess.getTriggeredTransitionAccess().getGroup_13()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17952:1: ( rule__TriggeredTransition__Group_13__0 )?
-            int alt173=2;
-            int LA173_0 = input.LA(1);
+            int alt174=2;
+            int LA174_0 = input.LA(1);
 
-            if ( (LA173_0==105) ) {
-                alt173=1;
+            if ( (LA174_0==105) ) {
+                alt174=1;
             }
-            switch (alt173) {
+            switch (alt174) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17952:2: rule__TriggeredTransition__Group_13__0
                     {
-                    pushFollow(FOLLOW_rule__TriggeredTransition__Group_13__0_in_rule__TriggeredTransition__Group__13__Impl36429);
+                    pushFollow(FOLLOW_rule__TriggeredTransition__Group_13__0_in_rule__TriggeredTransition__Group__13__Impl36430);
                     rule__TriggeredTransition__Group_13__0();
 
                     state._fsp--;
@@ -49381,7 +49392,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17966:1: ( rule__TriggeredTransition__Group__14__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17967:2: rule__TriggeredTransition__Group__14__Impl
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group__14__Impl_in_rule__TriggeredTransition__Group__1436460);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group__14__Impl_in_rule__TriggeredTransition__Group__1436461);
             rule__TriggeredTransition__Group__14__Impl();
 
             state._fsp--;
@@ -49418,7 +49429,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:17979:1: '}'
             {
              before(grammarAccess.getTriggeredTransitionAccess().getRightCurlyBracketKeyword_14()); 
-            match(input,41,FOLLOW_41_in_rule__TriggeredTransition__Group__14__Impl36488); 
+            match(input,41,FOLLOW_41_in_rule__TriggeredTransition__Group__14__Impl36489); 
              after(grammarAccess.getTriggeredTransitionAccess().getRightCurlyBracketKeyword_14()); 
 
             }
@@ -49451,12 +49462,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18026:1: ( rule__TriggeredTransition__Group_11__0__Impl rule__TriggeredTransition__Group_11__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18027:2: rule__TriggeredTransition__Group_11__0__Impl rule__TriggeredTransition__Group_11__1
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group_11__0__Impl_in_rule__TriggeredTransition__Group_11__036549);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group_11__0__Impl_in_rule__TriggeredTransition__Group_11__036550);
             rule__TriggeredTransition__Group_11__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group_11__1_in_rule__TriggeredTransition__Group_11__036552);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group_11__1_in_rule__TriggeredTransition__Group_11__036553);
             rule__TriggeredTransition__Group_11__1();
 
             state._fsp--;
@@ -49493,7 +49504,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18040:1: 'or'
             {
              before(grammarAccess.getTriggeredTransitionAccess().getOrKeyword_11_0()); 
-            match(input,107,FOLLOW_107_in_rule__TriggeredTransition__Group_11__0__Impl36580); 
+            match(input,107,FOLLOW_107_in_rule__TriggeredTransition__Group_11__0__Impl36581); 
              after(grammarAccess.getTriggeredTransitionAccess().getOrKeyword_11_0()); 
 
             }
@@ -49526,7 +49537,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18057:1: ( rule__TriggeredTransition__Group_11__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18058:2: rule__TriggeredTransition__Group_11__1__Impl
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group_11__1__Impl_in_rule__TriggeredTransition__Group_11__136611);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group_11__1__Impl_in_rule__TriggeredTransition__Group_11__136612);
             rule__TriggeredTransition__Group_11__1__Impl();
 
             state._fsp--;
@@ -49566,7 +49577,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18071:1: ( rule__TriggeredTransition__TriggersAssignment_11_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18071:2: rule__TriggeredTransition__TriggersAssignment_11_1
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__TriggersAssignment_11_1_in_rule__TriggeredTransition__Group_11__1__Impl36638);
+            pushFollow(FOLLOW_rule__TriggeredTransition__TriggersAssignment_11_1_in_rule__TriggeredTransition__Group_11__1__Impl36639);
             rule__TriggeredTransition__TriggersAssignment_11_1();
 
             state._fsp--;
@@ -49606,12 +49617,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18089:1: ( rule__TriggeredTransition__Group_13__0__Impl rule__TriggeredTransition__Group_13__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18090:2: rule__TriggeredTransition__Group_13__0__Impl rule__TriggeredTransition__Group_13__1
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group_13__0__Impl_in_rule__TriggeredTransition__Group_13__036672);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group_13__0__Impl_in_rule__TriggeredTransition__Group_13__036673);
             rule__TriggeredTransition__Group_13__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group_13__1_in_rule__TriggeredTransition__Group_13__036675);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group_13__1_in_rule__TriggeredTransition__Group_13__036676);
             rule__TriggeredTransition__Group_13__1();
 
             state._fsp--;
@@ -49648,7 +49659,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18103:1: 'action'
             {
              before(grammarAccess.getTriggeredTransitionAccess().getActionKeyword_13_0()); 
-            match(input,105,FOLLOW_105_in_rule__TriggeredTransition__Group_13__0__Impl36703); 
+            match(input,105,FOLLOW_105_in_rule__TriggeredTransition__Group_13__0__Impl36704); 
              after(grammarAccess.getTriggeredTransitionAccess().getActionKeyword_13_0()); 
 
             }
@@ -49681,7 +49692,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18120:1: ( rule__TriggeredTransition__Group_13__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18121:2: rule__TriggeredTransition__Group_13__1__Impl
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__Group_13__1__Impl_in_rule__TriggeredTransition__Group_13__136734);
+            pushFollow(FOLLOW_rule__TriggeredTransition__Group_13__1__Impl_in_rule__TriggeredTransition__Group_13__136735);
             rule__TriggeredTransition__Group_13__1__Impl();
 
             state._fsp--;
@@ -49721,7 +49732,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18134:1: ( rule__TriggeredTransition__ActionAssignment_13_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18134:2: rule__TriggeredTransition__ActionAssignment_13_1
             {
-            pushFollow(FOLLOW_rule__TriggeredTransition__ActionAssignment_13_1_in_rule__TriggeredTransition__Group_13__1__Impl36761);
+            pushFollow(FOLLOW_rule__TriggeredTransition__ActionAssignment_13_1_in_rule__TriggeredTransition__Group_13__1__Impl36762);
             rule__TriggeredTransition__ActionAssignment_13_1();
 
             state._fsp--;
@@ -49761,12 +49772,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18152:1: ( rule__GuardedTransition__Group__0__Impl rule__GuardedTransition__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18153:2: rule__GuardedTransition__Group__0__Impl rule__GuardedTransition__Group__1
             {
-            pushFollow(FOLLOW_rule__GuardedTransition__Group__0__Impl_in_rule__GuardedTransition__Group__036795);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group__0__Impl_in_rule__GuardedTransition__Group__036796);
             rule__GuardedTransition__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__GuardedTransition__Group__1_in_rule__GuardedTransition__Group__036798);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group__1_in_rule__GuardedTransition__Group__036799);
             rule__GuardedTransition__Group__1();
 
             state._fsp--;
@@ -49803,7 +49814,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18166:1: 'Transition'
             {
              before(grammarAccess.getGuardedTransitionAccess().getTransitionKeyword_0()); 
-            match(input,103,FOLLOW_103_in_rule__GuardedTransition__Group__0__Impl36826); 
+            match(input,103,FOLLOW_103_in_rule__GuardedTransition__Group__0__Impl36827); 
              after(grammarAccess.getGuardedTransitionAccess().getTransitionKeyword_0()); 
 
             }
@@ -49836,12 +49847,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18183:1: ( rule__GuardedTransition__Group__1__Impl rule__GuardedTransition__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18184:2: rule__GuardedTransition__Group__1__Impl rule__GuardedTransition__Group__2
             {
-            pushFollow(FOLLOW_rule__GuardedTransition__Group__1__Impl_in_rule__GuardedTransition__Group__136857);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group__1__Impl_in_rule__GuardedTransition__Group__136858);
             rule__GuardedTransition__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__GuardedTransition__Group__2_in_rule__GuardedTransition__Group__136860);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group__2_in_rule__GuardedTransition__Group__136861);
             rule__GuardedTransition__Group__2();
 
             state._fsp--;
@@ -49879,17 +49890,17 @@
             {
              before(grammarAccess.getGuardedTransitionAccess().getNameAssignment_1()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18198:1: ( rule__GuardedTransition__NameAssignment_1 )?
-            int alt174=2;
-            int LA174_0 = input.LA(1);
+            int alt175=2;
+            int LA175_0 = input.LA(1);
 
-            if ( (LA174_0==RULE_ID) ) {
-                alt174=1;
+            if ( (LA175_0==RULE_ID) ) {
+                alt175=1;
             }
-            switch (alt174) {
+            switch (alt175) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18198:2: rule__GuardedTransition__NameAssignment_1
                     {
-                    pushFollow(FOLLOW_rule__GuardedTransition__NameAssignment_1_in_rule__GuardedTransition__Group__1__Impl36887);
+                    pushFollow(FOLLOW_rule__GuardedTransition__NameAssignment_1_in_rule__GuardedTransition__Group__1__Impl36888);
                     rule__GuardedTransition__NameAssignment_1();
 
                     state._fsp--;
@@ -49932,12 +49943,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18212:1: ( rule__GuardedTransition__Group__2__Impl rule__GuardedTransition__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18213:2: rule__GuardedTransition__Group__2__Impl rule__GuardedTransition__Group__3
             {
-            pushFollow(FOLLOW_rule__GuardedTransition__Group__2__Impl_in_rule__GuardedTransition__Group__236918);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group__2__Impl_in_rule__GuardedTransition__Group__236919);
             rule__GuardedTransition__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__GuardedTransition__Group__3_in_rule__GuardedTransition__Group__236921);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group__3_in_rule__GuardedTransition__Group__236922);
             rule__GuardedTransition__Group__3();
 
             state._fsp--;
@@ -49974,7 +49985,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18226:1: ':'
             {
              before(grammarAccess.getGuardedTransitionAccess().getColonKeyword_2()); 
-            match(input,42,FOLLOW_42_in_rule__GuardedTransition__Group__2__Impl36949); 
+            match(input,42,FOLLOW_42_in_rule__GuardedTransition__Group__2__Impl36950); 
              after(grammarAccess.getGuardedTransitionAccess().getColonKeyword_2()); 
 
             }
@@ -50007,12 +50018,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18243:1: ( rule__GuardedTransition__Group__3__Impl rule__GuardedTransition__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18244:2: rule__GuardedTransition__Group__3__Impl rule__GuardedTransition__Group__4
             {
-            pushFollow(FOLLOW_rule__GuardedTransition__Group__3__Impl_in_rule__GuardedTransition__Group__336980);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group__3__Impl_in_rule__GuardedTransition__Group__336981);
             rule__GuardedTransition__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__GuardedTransition__Group__4_in_rule__GuardedTransition__Group__336983);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group__4_in_rule__GuardedTransition__Group__336984);
             rule__GuardedTransition__Group__4();
 
             state._fsp--;
@@ -50052,7 +50063,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18258:1: ( rule__GuardedTransition__FromAssignment_3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18258:2: rule__GuardedTransition__FromAssignment_3
             {
-            pushFollow(FOLLOW_rule__GuardedTransition__FromAssignment_3_in_rule__GuardedTransition__Group__3__Impl37010);
+            pushFollow(FOLLOW_rule__GuardedTransition__FromAssignment_3_in_rule__GuardedTransition__Group__3__Impl37011);
             rule__GuardedTransition__FromAssignment_3();
 
             state._fsp--;
@@ -50092,12 +50103,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18272:1: ( rule__GuardedTransition__Group__4__Impl rule__GuardedTransition__Group__5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18273:2: rule__GuardedTransition__Group__4__Impl rule__GuardedTransition__Group__5
             {
-            pushFollow(FOLLOW_rule__GuardedTransition__Group__4__Impl_in_rule__GuardedTransition__Group__437040);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group__4__Impl_in_rule__GuardedTransition__Group__437041);
             rule__GuardedTransition__Group__4__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__GuardedTransition__Group__5_in_rule__GuardedTransition__Group__437043);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group__5_in_rule__GuardedTransition__Group__437044);
             rule__GuardedTransition__Group__5();
 
             state._fsp--;
@@ -50134,7 +50145,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18286:1: '->'
             {
              before(grammarAccess.getGuardedTransitionAccess().getHyphenMinusGreaterThanSignKeyword_4()); 
-            match(input,44,FOLLOW_44_in_rule__GuardedTransition__Group__4__Impl37071); 
+            match(input,44,FOLLOW_44_in_rule__GuardedTransition__Group__4__Impl37072); 
              after(grammarAccess.getGuardedTransitionAccess().getHyphenMinusGreaterThanSignKeyword_4()); 
 
             }
@@ -50167,12 +50178,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18303:1: ( rule__GuardedTransition__Group__5__Impl rule__GuardedTransition__Group__6 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18304:2: rule__GuardedTransition__Group__5__Impl rule__GuardedTransition__Group__6
             {
-            pushFollow(FOLLOW_rule__GuardedTransition__Group__5__Impl_in_rule__GuardedTransition__Group__537102);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group__5__Impl_in_rule__GuardedTransition__Group__537103);
             rule__GuardedTransition__Group__5__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__GuardedTransition__Group__6_in_rule__GuardedTransition__Group__537105);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group__6_in_rule__GuardedTransition__Group__537106);
             rule__GuardedTransition__Group__6();
 
             state._fsp--;
@@ -50212,7 +50223,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18318:1: ( rule__GuardedTransition__ToAssignment_5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18318:2: rule__GuardedTransition__ToAssignment_5
             {
-            pushFollow(FOLLOW_rule__GuardedTransition__ToAssignment_5_in_rule__GuardedTransition__Group__5__Impl37132);
+            pushFollow(FOLLOW_rule__GuardedTransition__ToAssignment_5_in_rule__GuardedTransition__Group__5__Impl37133);
             rule__GuardedTransition__ToAssignment_5();
 
             state._fsp--;
@@ -50252,12 +50263,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18332:1: ( rule__GuardedTransition__Group__6__Impl rule__GuardedTransition__Group__7 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18333:2: rule__GuardedTransition__Group__6__Impl rule__GuardedTransition__Group__7
             {
-            pushFollow(FOLLOW_rule__GuardedTransition__Group__6__Impl_in_rule__GuardedTransition__Group__637162);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group__6__Impl_in_rule__GuardedTransition__Group__637163);
             rule__GuardedTransition__Group__6__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__GuardedTransition__Group__7_in_rule__GuardedTransition__Group__637165);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group__7_in_rule__GuardedTransition__Group__637166);
             rule__GuardedTransition__Group__7();
 
             state._fsp--;
@@ -50295,17 +50306,17 @@
             {
              before(grammarAccess.getGuardedTransitionAccess().getDocuAssignment_6()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18347:1: ( rule__GuardedTransition__DocuAssignment_6 )?
-            int alt175=2;
-            int LA175_0 = input.LA(1);
+            int alt176=2;
+            int LA176_0 = input.LA(1);
 
-            if ( (LA175_0==58) ) {
-                alt175=1;
+            if ( (LA176_0==58) ) {
+                alt176=1;
             }
-            switch (alt175) {
+            switch (alt176) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18347:2: rule__GuardedTransition__DocuAssignment_6
                     {
-                    pushFollow(FOLLOW_rule__GuardedTransition__DocuAssignment_6_in_rule__GuardedTransition__Group__6__Impl37192);
+                    pushFollow(FOLLOW_rule__GuardedTransition__DocuAssignment_6_in_rule__GuardedTransition__Group__6__Impl37193);
                     rule__GuardedTransition__DocuAssignment_6();
 
                     state._fsp--;
@@ -50348,12 +50359,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18361:1: ( rule__GuardedTransition__Group__7__Impl rule__GuardedTransition__Group__8 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18362:2: rule__GuardedTransition__Group__7__Impl rule__GuardedTransition__Group__8
             {
-            pushFollow(FOLLOW_rule__GuardedTransition__Group__7__Impl_in_rule__GuardedTransition__Group__737223);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group__7__Impl_in_rule__GuardedTransition__Group__737224);
             rule__GuardedTransition__Group__7__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__GuardedTransition__Group__8_in_rule__GuardedTransition__Group__737226);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group__8_in_rule__GuardedTransition__Group__737227);
             rule__GuardedTransition__Group__8();
 
             state._fsp--;
@@ -50390,7 +50401,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18375:1: '{'
             {
              before(grammarAccess.getGuardedTransitionAccess().getLeftCurlyBracketKeyword_7()); 
-            match(input,40,FOLLOW_40_in_rule__GuardedTransition__Group__7__Impl37254); 
+            match(input,40,FOLLOW_40_in_rule__GuardedTransition__Group__7__Impl37255); 
              after(grammarAccess.getGuardedTransitionAccess().getLeftCurlyBracketKeyword_7()); 
 
             }
@@ -50423,12 +50434,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18392:1: ( rule__GuardedTransition__Group__8__Impl rule__GuardedTransition__Group__9 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18393:2: rule__GuardedTransition__Group__8__Impl rule__GuardedTransition__Group__9
             {
-            pushFollow(FOLLOW_rule__GuardedTransition__Group__8__Impl_in_rule__GuardedTransition__Group__837285);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group__8__Impl_in_rule__GuardedTransition__Group__837286);
             rule__GuardedTransition__Group__8__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__GuardedTransition__Group__9_in_rule__GuardedTransition__Group__837288);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group__9_in_rule__GuardedTransition__Group__837289);
             rule__GuardedTransition__Group__9();
 
             state._fsp--;
@@ -50465,7 +50476,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18406:1: 'guard'
             {
              before(grammarAccess.getGuardedTransitionAccess().getGuardKeyword_8()); 
-            match(input,108,FOLLOW_108_in_rule__GuardedTransition__Group__8__Impl37316); 
+            match(input,108,FOLLOW_108_in_rule__GuardedTransition__Group__8__Impl37317); 
              after(grammarAccess.getGuardedTransitionAccess().getGuardKeyword_8()); 
 
             }
@@ -50498,12 +50509,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18423:1: ( rule__GuardedTransition__Group__9__Impl rule__GuardedTransition__Group__10 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18424:2: rule__GuardedTransition__Group__9__Impl rule__GuardedTransition__Group__10
             {
-            pushFollow(FOLLOW_rule__GuardedTransition__Group__9__Impl_in_rule__GuardedTransition__Group__937347);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group__9__Impl_in_rule__GuardedTransition__Group__937348);
             rule__GuardedTransition__Group__9__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__GuardedTransition__Group__10_in_rule__GuardedTransition__Group__937350);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group__10_in_rule__GuardedTransition__Group__937351);
             rule__GuardedTransition__Group__10();
 
             state._fsp--;
@@ -50543,7 +50554,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18438:1: ( rule__GuardedTransition__GuardAssignment_9 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18438:2: rule__GuardedTransition__GuardAssignment_9
             {
-            pushFollow(FOLLOW_rule__GuardedTransition__GuardAssignment_9_in_rule__GuardedTransition__Group__9__Impl37377);
+            pushFollow(FOLLOW_rule__GuardedTransition__GuardAssignment_9_in_rule__GuardedTransition__Group__9__Impl37378);
             rule__GuardedTransition__GuardAssignment_9();
 
             state._fsp--;
@@ -50583,12 +50594,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18452:1: ( rule__GuardedTransition__Group__10__Impl rule__GuardedTransition__Group__11 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18453:2: rule__GuardedTransition__Group__10__Impl rule__GuardedTransition__Group__11
             {
-            pushFollow(FOLLOW_rule__GuardedTransition__Group__10__Impl_in_rule__GuardedTransition__Group__1037407);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group__10__Impl_in_rule__GuardedTransition__Group__1037408);
             rule__GuardedTransition__Group__10__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__GuardedTransition__Group__11_in_rule__GuardedTransition__Group__1037410);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group__11_in_rule__GuardedTransition__Group__1037411);
             rule__GuardedTransition__Group__11();
 
             state._fsp--;
@@ -50626,17 +50637,17 @@
             {
              before(grammarAccess.getGuardedTransitionAccess().getGroup_10()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18467:1: ( rule__GuardedTransition__Group_10__0 )?
-            int alt176=2;
-            int LA176_0 = input.LA(1);
+            int alt177=2;
+            int LA177_0 = input.LA(1);
 
-            if ( (LA176_0==105) ) {
-                alt176=1;
+            if ( (LA177_0==105) ) {
+                alt177=1;
             }
-            switch (alt176) {
+            switch (alt177) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18467:2: rule__GuardedTransition__Group_10__0
                     {
-                    pushFollow(FOLLOW_rule__GuardedTransition__Group_10__0_in_rule__GuardedTransition__Group__10__Impl37437);
+                    pushFollow(FOLLOW_rule__GuardedTransition__Group_10__0_in_rule__GuardedTransition__Group__10__Impl37438);
                     rule__GuardedTransition__Group_10__0();
 
                     state._fsp--;
@@ -50679,7 +50690,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18481:1: ( rule__GuardedTransition__Group__11__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18482:2: rule__GuardedTransition__Group__11__Impl
             {
-            pushFollow(FOLLOW_rule__GuardedTransition__Group__11__Impl_in_rule__GuardedTransition__Group__1137468);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group__11__Impl_in_rule__GuardedTransition__Group__1137469);
             rule__GuardedTransition__Group__11__Impl();
 
             state._fsp--;
@@ -50716,7 +50727,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18494:1: '}'
             {
              before(grammarAccess.getGuardedTransitionAccess().getRightCurlyBracketKeyword_11()); 
-            match(input,41,FOLLOW_41_in_rule__GuardedTransition__Group__11__Impl37496); 
+            match(input,41,FOLLOW_41_in_rule__GuardedTransition__Group__11__Impl37497); 
              after(grammarAccess.getGuardedTransitionAccess().getRightCurlyBracketKeyword_11()); 
 
             }
@@ -50749,12 +50760,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18535:1: ( rule__GuardedTransition__Group_10__0__Impl rule__GuardedTransition__Group_10__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18536:2: rule__GuardedTransition__Group_10__0__Impl rule__GuardedTransition__Group_10__1
             {
-            pushFollow(FOLLOW_rule__GuardedTransition__Group_10__0__Impl_in_rule__GuardedTransition__Group_10__037551);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group_10__0__Impl_in_rule__GuardedTransition__Group_10__037552);
             rule__GuardedTransition__Group_10__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__GuardedTransition__Group_10__1_in_rule__GuardedTransition__Group_10__037554);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group_10__1_in_rule__GuardedTransition__Group_10__037555);
             rule__GuardedTransition__Group_10__1();
 
             state._fsp--;
@@ -50791,7 +50802,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18549:1: 'action'
             {
              before(grammarAccess.getGuardedTransitionAccess().getActionKeyword_10_0()); 
-            match(input,105,FOLLOW_105_in_rule__GuardedTransition__Group_10__0__Impl37582); 
+            match(input,105,FOLLOW_105_in_rule__GuardedTransition__Group_10__0__Impl37583); 
              after(grammarAccess.getGuardedTransitionAccess().getActionKeyword_10_0()); 
 
             }
@@ -50824,7 +50835,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18566:1: ( rule__GuardedTransition__Group_10__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18567:2: rule__GuardedTransition__Group_10__1__Impl
             {
-            pushFollow(FOLLOW_rule__GuardedTransition__Group_10__1__Impl_in_rule__GuardedTransition__Group_10__137613);
+            pushFollow(FOLLOW_rule__GuardedTransition__Group_10__1__Impl_in_rule__GuardedTransition__Group_10__137614);
             rule__GuardedTransition__Group_10__1__Impl();
 
             state._fsp--;
@@ -50864,7 +50875,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18580:1: ( rule__GuardedTransition__ActionAssignment_10_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18580:2: rule__GuardedTransition__ActionAssignment_10_1
             {
-            pushFollow(FOLLOW_rule__GuardedTransition__ActionAssignment_10_1_in_rule__GuardedTransition__Group_10__1__Impl37640);
+            pushFollow(FOLLOW_rule__GuardedTransition__ActionAssignment_10_1_in_rule__GuardedTransition__Group_10__1__Impl37641);
             rule__GuardedTransition__ActionAssignment_10_1();
 
             state._fsp--;
@@ -50904,12 +50915,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18598:1: ( rule__CPBranchTransition__Group__0__Impl rule__CPBranchTransition__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18599:2: rule__CPBranchTransition__Group__0__Impl rule__CPBranchTransition__Group__1
             {
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group__0__Impl_in_rule__CPBranchTransition__Group__037674);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group__0__Impl_in_rule__CPBranchTransition__Group__037675);
             rule__CPBranchTransition__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group__1_in_rule__CPBranchTransition__Group__037677);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group__1_in_rule__CPBranchTransition__Group__037678);
             rule__CPBranchTransition__Group__1();
 
             state._fsp--;
@@ -50946,7 +50957,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18612:1: 'Transition'
             {
              before(grammarAccess.getCPBranchTransitionAccess().getTransitionKeyword_0()); 
-            match(input,103,FOLLOW_103_in_rule__CPBranchTransition__Group__0__Impl37705); 
+            match(input,103,FOLLOW_103_in_rule__CPBranchTransition__Group__0__Impl37706); 
              after(grammarAccess.getCPBranchTransitionAccess().getTransitionKeyword_0()); 
 
             }
@@ -50979,12 +50990,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18629:1: ( rule__CPBranchTransition__Group__1__Impl rule__CPBranchTransition__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18630:2: rule__CPBranchTransition__Group__1__Impl rule__CPBranchTransition__Group__2
             {
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group__1__Impl_in_rule__CPBranchTransition__Group__137736);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group__1__Impl_in_rule__CPBranchTransition__Group__137737);
             rule__CPBranchTransition__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group__2_in_rule__CPBranchTransition__Group__137739);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group__2_in_rule__CPBranchTransition__Group__137740);
             rule__CPBranchTransition__Group__2();
 
             state._fsp--;
@@ -51022,17 +51033,17 @@
             {
              before(grammarAccess.getCPBranchTransitionAccess().getNameAssignment_1()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18644:1: ( rule__CPBranchTransition__NameAssignment_1 )?
-            int alt177=2;
-            int LA177_0 = input.LA(1);
+            int alt178=2;
+            int LA178_0 = input.LA(1);
 
-            if ( (LA177_0==RULE_ID) ) {
-                alt177=1;
+            if ( (LA178_0==RULE_ID) ) {
+                alt178=1;
             }
-            switch (alt177) {
+            switch (alt178) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18644:2: rule__CPBranchTransition__NameAssignment_1
                     {
-                    pushFollow(FOLLOW_rule__CPBranchTransition__NameAssignment_1_in_rule__CPBranchTransition__Group__1__Impl37766);
+                    pushFollow(FOLLOW_rule__CPBranchTransition__NameAssignment_1_in_rule__CPBranchTransition__Group__1__Impl37767);
                     rule__CPBranchTransition__NameAssignment_1();
 
                     state._fsp--;
@@ -51075,12 +51086,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18658:1: ( rule__CPBranchTransition__Group__2__Impl rule__CPBranchTransition__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18659:2: rule__CPBranchTransition__Group__2__Impl rule__CPBranchTransition__Group__3
             {
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group__2__Impl_in_rule__CPBranchTransition__Group__237797);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group__2__Impl_in_rule__CPBranchTransition__Group__237798);
             rule__CPBranchTransition__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group__3_in_rule__CPBranchTransition__Group__237800);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group__3_in_rule__CPBranchTransition__Group__237801);
             rule__CPBranchTransition__Group__3();
 
             state._fsp--;
@@ -51117,7 +51128,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18672:1: ':'
             {
              before(grammarAccess.getCPBranchTransitionAccess().getColonKeyword_2()); 
-            match(input,42,FOLLOW_42_in_rule__CPBranchTransition__Group__2__Impl37828); 
+            match(input,42,FOLLOW_42_in_rule__CPBranchTransition__Group__2__Impl37829); 
              after(grammarAccess.getCPBranchTransitionAccess().getColonKeyword_2()); 
 
             }
@@ -51150,12 +51161,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18689:1: ( rule__CPBranchTransition__Group__3__Impl rule__CPBranchTransition__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18690:2: rule__CPBranchTransition__Group__3__Impl rule__CPBranchTransition__Group__4
             {
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group__3__Impl_in_rule__CPBranchTransition__Group__337859);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group__3__Impl_in_rule__CPBranchTransition__Group__337860);
             rule__CPBranchTransition__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group__4_in_rule__CPBranchTransition__Group__337862);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group__4_in_rule__CPBranchTransition__Group__337863);
             rule__CPBranchTransition__Group__4();
 
             state._fsp--;
@@ -51195,7 +51206,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18704:1: ( rule__CPBranchTransition__FromAssignment_3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18704:2: rule__CPBranchTransition__FromAssignment_3
             {
-            pushFollow(FOLLOW_rule__CPBranchTransition__FromAssignment_3_in_rule__CPBranchTransition__Group__3__Impl37889);
+            pushFollow(FOLLOW_rule__CPBranchTransition__FromAssignment_3_in_rule__CPBranchTransition__Group__3__Impl37890);
             rule__CPBranchTransition__FromAssignment_3();
 
             state._fsp--;
@@ -51235,12 +51246,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18718:1: ( rule__CPBranchTransition__Group__4__Impl rule__CPBranchTransition__Group__5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18719:2: rule__CPBranchTransition__Group__4__Impl rule__CPBranchTransition__Group__5
             {
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group__4__Impl_in_rule__CPBranchTransition__Group__437919);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group__4__Impl_in_rule__CPBranchTransition__Group__437920);
             rule__CPBranchTransition__Group__4__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group__5_in_rule__CPBranchTransition__Group__437922);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group__5_in_rule__CPBranchTransition__Group__437923);
             rule__CPBranchTransition__Group__5();
 
             state._fsp--;
@@ -51277,7 +51288,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18732:1: '->'
             {
              before(grammarAccess.getCPBranchTransitionAccess().getHyphenMinusGreaterThanSignKeyword_4()); 
-            match(input,44,FOLLOW_44_in_rule__CPBranchTransition__Group__4__Impl37950); 
+            match(input,44,FOLLOW_44_in_rule__CPBranchTransition__Group__4__Impl37951); 
              after(grammarAccess.getCPBranchTransitionAccess().getHyphenMinusGreaterThanSignKeyword_4()); 
 
             }
@@ -51310,12 +51321,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18749:1: ( rule__CPBranchTransition__Group__5__Impl rule__CPBranchTransition__Group__6 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18750:2: rule__CPBranchTransition__Group__5__Impl rule__CPBranchTransition__Group__6
             {
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group__5__Impl_in_rule__CPBranchTransition__Group__537981);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group__5__Impl_in_rule__CPBranchTransition__Group__537982);
             rule__CPBranchTransition__Group__5__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group__6_in_rule__CPBranchTransition__Group__537984);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group__6_in_rule__CPBranchTransition__Group__537985);
             rule__CPBranchTransition__Group__6();
 
             state._fsp--;
@@ -51355,7 +51366,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18764:1: ( rule__CPBranchTransition__ToAssignment_5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18764:2: rule__CPBranchTransition__ToAssignment_5
             {
-            pushFollow(FOLLOW_rule__CPBranchTransition__ToAssignment_5_in_rule__CPBranchTransition__Group__5__Impl38011);
+            pushFollow(FOLLOW_rule__CPBranchTransition__ToAssignment_5_in_rule__CPBranchTransition__Group__5__Impl38012);
             rule__CPBranchTransition__ToAssignment_5();
 
             state._fsp--;
@@ -51395,12 +51406,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18778:1: ( rule__CPBranchTransition__Group__6__Impl rule__CPBranchTransition__Group__7 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18779:2: rule__CPBranchTransition__Group__6__Impl rule__CPBranchTransition__Group__7
             {
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group__6__Impl_in_rule__CPBranchTransition__Group__638041);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group__6__Impl_in_rule__CPBranchTransition__Group__638042);
             rule__CPBranchTransition__Group__6__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group__7_in_rule__CPBranchTransition__Group__638044);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group__7_in_rule__CPBranchTransition__Group__638045);
             rule__CPBranchTransition__Group__7();
 
             state._fsp--;
@@ -51438,17 +51449,17 @@
             {
              before(grammarAccess.getCPBranchTransitionAccess().getDocuAssignment_6()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18793:1: ( rule__CPBranchTransition__DocuAssignment_6 )?
-            int alt178=2;
-            int LA178_0 = input.LA(1);
+            int alt179=2;
+            int LA179_0 = input.LA(1);
 
-            if ( (LA178_0==58) ) {
-                alt178=1;
+            if ( (LA179_0==58) ) {
+                alt179=1;
             }
-            switch (alt178) {
+            switch (alt179) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18793:2: rule__CPBranchTransition__DocuAssignment_6
                     {
-                    pushFollow(FOLLOW_rule__CPBranchTransition__DocuAssignment_6_in_rule__CPBranchTransition__Group__6__Impl38071);
+                    pushFollow(FOLLOW_rule__CPBranchTransition__DocuAssignment_6_in_rule__CPBranchTransition__Group__6__Impl38072);
                     rule__CPBranchTransition__DocuAssignment_6();
 
                     state._fsp--;
@@ -51491,12 +51502,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18807:1: ( rule__CPBranchTransition__Group__7__Impl rule__CPBranchTransition__Group__8 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18808:2: rule__CPBranchTransition__Group__7__Impl rule__CPBranchTransition__Group__8
             {
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group__7__Impl_in_rule__CPBranchTransition__Group__738102);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group__7__Impl_in_rule__CPBranchTransition__Group__738103);
             rule__CPBranchTransition__Group__7__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group__8_in_rule__CPBranchTransition__Group__738105);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group__8_in_rule__CPBranchTransition__Group__738106);
             rule__CPBranchTransition__Group__8();
 
             state._fsp--;
@@ -51533,7 +51544,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18821:1: '{'
             {
              before(grammarAccess.getCPBranchTransitionAccess().getLeftCurlyBracketKeyword_7()); 
-            match(input,40,FOLLOW_40_in_rule__CPBranchTransition__Group__7__Impl38133); 
+            match(input,40,FOLLOW_40_in_rule__CPBranchTransition__Group__7__Impl38134); 
              after(grammarAccess.getCPBranchTransitionAccess().getLeftCurlyBracketKeyword_7()); 
 
             }
@@ -51566,12 +51577,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18838:1: ( rule__CPBranchTransition__Group__8__Impl rule__CPBranchTransition__Group__9 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18839:2: rule__CPBranchTransition__Group__8__Impl rule__CPBranchTransition__Group__9
             {
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group__8__Impl_in_rule__CPBranchTransition__Group__838164);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group__8__Impl_in_rule__CPBranchTransition__Group__838165);
             rule__CPBranchTransition__Group__8__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group__9_in_rule__CPBranchTransition__Group__838167);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group__9_in_rule__CPBranchTransition__Group__838168);
             rule__CPBranchTransition__Group__9();
 
             state._fsp--;
@@ -51608,7 +51619,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18852:1: 'cond'
             {
              before(grammarAccess.getCPBranchTransitionAccess().getCondKeyword_8()); 
-            match(input,109,FOLLOW_109_in_rule__CPBranchTransition__Group__8__Impl38195); 
+            match(input,109,FOLLOW_109_in_rule__CPBranchTransition__Group__8__Impl38196); 
              after(grammarAccess.getCPBranchTransitionAccess().getCondKeyword_8()); 
 
             }
@@ -51641,12 +51652,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18869:1: ( rule__CPBranchTransition__Group__9__Impl rule__CPBranchTransition__Group__10 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18870:2: rule__CPBranchTransition__Group__9__Impl rule__CPBranchTransition__Group__10
             {
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group__9__Impl_in_rule__CPBranchTransition__Group__938226);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group__9__Impl_in_rule__CPBranchTransition__Group__938227);
             rule__CPBranchTransition__Group__9__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group__10_in_rule__CPBranchTransition__Group__938229);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group__10_in_rule__CPBranchTransition__Group__938230);
             rule__CPBranchTransition__Group__10();
 
             state._fsp--;
@@ -51686,7 +51697,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18884:1: ( rule__CPBranchTransition__ConditionAssignment_9 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18884:2: rule__CPBranchTransition__ConditionAssignment_9
             {
-            pushFollow(FOLLOW_rule__CPBranchTransition__ConditionAssignment_9_in_rule__CPBranchTransition__Group__9__Impl38256);
+            pushFollow(FOLLOW_rule__CPBranchTransition__ConditionAssignment_9_in_rule__CPBranchTransition__Group__9__Impl38257);
             rule__CPBranchTransition__ConditionAssignment_9();
 
             state._fsp--;
@@ -51726,12 +51737,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18898:1: ( rule__CPBranchTransition__Group__10__Impl rule__CPBranchTransition__Group__11 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18899:2: rule__CPBranchTransition__Group__10__Impl rule__CPBranchTransition__Group__11
             {
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group__10__Impl_in_rule__CPBranchTransition__Group__1038286);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group__10__Impl_in_rule__CPBranchTransition__Group__1038287);
             rule__CPBranchTransition__Group__10__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group__11_in_rule__CPBranchTransition__Group__1038289);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group__11_in_rule__CPBranchTransition__Group__1038290);
             rule__CPBranchTransition__Group__11();
 
             state._fsp--;
@@ -51769,17 +51780,17 @@
             {
              before(grammarAccess.getCPBranchTransitionAccess().getGroup_10()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18913:1: ( rule__CPBranchTransition__Group_10__0 )?
-            int alt179=2;
-            int LA179_0 = input.LA(1);
+            int alt180=2;
+            int LA180_0 = input.LA(1);
 
-            if ( (LA179_0==105) ) {
-                alt179=1;
+            if ( (LA180_0==105) ) {
+                alt180=1;
             }
-            switch (alt179) {
+            switch (alt180) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18913:2: rule__CPBranchTransition__Group_10__0
                     {
-                    pushFollow(FOLLOW_rule__CPBranchTransition__Group_10__0_in_rule__CPBranchTransition__Group__10__Impl38316);
+                    pushFollow(FOLLOW_rule__CPBranchTransition__Group_10__0_in_rule__CPBranchTransition__Group__10__Impl38317);
                     rule__CPBranchTransition__Group_10__0();
 
                     state._fsp--;
@@ -51822,7 +51833,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18927:1: ( rule__CPBranchTransition__Group__11__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18928:2: rule__CPBranchTransition__Group__11__Impl
             {
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group__11__Impl_in_rule__CPBranchTransition__Group__1138347);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group__11__Impl_in_rule__CPBranchTransition__Group__1138348);
             rule__CPBranchTransition__Group__11__Impl();
 
             state._fsp--;
@@ -51859,7 +51870,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18940:1: '}'
             {
              before(grammarAccess.getCPBranchTransitionAccess().getRightCurlyBracketKeyword_11()); 
-            match(input,41,FOLLOW_41_in_rule__CPBranchTransition__Group__11__Impl38375); 
+            match(input,41,FOLLOW_41_in_rule__CPBranchTransition__Group__11__Impl38376); 
              after(grammarAccess.getCPBranchTransitionAccess().getRightCurlyBracketKeyword_11()); 
 
             }
@@ -51892,12 +51903,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18981:1: ( rule__CPBranchTransition__Group_10__0__Impl rule__CPBranchTransition__Group_10__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18982:2: rule__CPBranchTransition__Group_10__0__Impl rule__CPBranchTransition__Group_10__1
             {
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group_10__0__Impl_in_rule__CPBranchTransition__Group_10__038430);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group_10__0__Impl_in_rule__CPBranchTransition__Group_10__038431);
             rule__CPBranchTransition__Group_10__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group_10__1_in_rule__CPBranchTransition__Group_10__038433);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group_10__1_in_rule__CPBranchTransition__Group_10__038434);
             rule__CPBranchTransition__Group_10__1();
 
             state._fsp--;
@@ -51934,7 +51945,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:18995:1: 'action'
             {
              before(grammarAccess.getCPBranchTransitionAccess().getActionKeyword_10_0()); 
-            match(input,105,FOLLOW_105_in_rule__CPBranchTransition__Group_10__0__Impl38461); 
+            match(input,105,FOLLOW_105_in_rule__CPBranchTransition__Group_10__0__Impl38462); 
              after(grammarAccess.getCPBranchTransitionAccess().getActionKeyword_10_0()); 
 
             }
@@ -51967,7 +51978,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19012:1: ( rule__CPBranchTransition__Group_10__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19013:2: rule__CPBranchTransition__Group_10__1__Impl
             {
-            pushFollow(FOLLOW_rule__CPBranchTransition__Group_10__1__Impl_in_rule__CPBranchTransition__Group_10__138492);
+            pushFollow(FOLLOW_rule__CPBranchTransition__Group_10__1__Impl_in_rule__CPBranchTransition__Group_10__138493);
             rule__CPBranchTransition__Group_10__1__Impl();
 
             state._fsp--;
@@ -52007,7 +52018,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19026:1: ( rule__CPBranchTransition__ActionAssignment_10_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19026:2: rule__CPBranchTransition__ActionAssignment_10_1
             {
-            pushFollow(FOLLOW_rule__CPBranchTransition__ActionAssignment_10_1_in_rule__CPBranchTransition__Group_10__1__Impl38519);
+            pushFollow(FOLLOW_rule__CPBranchTransition__ActionAssignment_10_1_in_rule__CPBranchTransition__Group_10__1__Impl38520);
             rule__CPBranchTransition__ActionAssignment_10_1();
 
             state._fsp--;
@@ -52047,12 +52058,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19044:1: ( rule__RefinedTransition__Group__0__Impl rule__RefinedTransition__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19045:2: rule__RefinedTransition__Group__0__Impl rule__RefinedTransition__Group__1
             {
-            pushFollow(FOLLOW_rule__RefinedTransition__Group__0__Impl_in_rule__RefinedTransition__Group__038553);
+            pushFollow(FOLLOW_rule__RefinedTransition__Group__0__Impl_in_rule__RefinedTransition__Group__038554);
             rule__RefinedTransition__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RefinedTransition__Group__1_in_rule__RefinedTransition__Group__038556);
+            pushFollow(FOLLOW_rule__RefinedTransition__Group__1_in_rule__RefinedTransition__Group__038557);
             rule__RefinedTransition__Group__1();
 
             state._fsp--;
@@ -52089,7 +52100,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19058:1: 'RefinedTransition'
             {
              before(grammarAccess.getRefinedTransitionAccess().getRefinedTransitionKeyword_0()); 
-            match(input,110,FOLLOW_110_in_rule__RefinedTransition__Group__0__Impl38584); 
+            match(input,110,FOLLOW_110_in_rule__RefinedTransition__Group__0__Impl38585); 
              after(grammarAccess.getRefinedTransitionAccess().getRefinedTransitionKeyword_0()); 
 
             }
@@ -52122,12 +52133,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19075:1: ( rule__RefinedTransition__Group__1__Impl rule__RefinedTransition__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19076:2: rule__RefinedTransition__Group__1__Impl rule__RefinedTransition__Group__2
             {
-            pushFollow(FOLLOW_rule__RefinedTransition__Group__1__Impl_in_rule__RefinedTransition__Group__138615);
+            pushFollow(FOLLOW_rule__RefinedTransition__Group__1__Impl_in_rule__RefinedTransition__Group__138616);
             rule__RefinedTransition__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RefinedTransition__Group__2_in_rule__RefinedTransition__Group__138618);
+            pushFollow(FOLLOW_rule__RefinedTransition__Group__2_in_rule__RefinedTransition__Group__138619);
             rule__RefinedTransition__Group__2();
 
             state._fsp--;
@@ -52167,7 +52178,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19090:1: ( rule__RefinedTransition__TargetAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19090:2: rule__RefinedTransition__TargetAssignment_1
             {
-            pushFollow(FOLLOW_rule__RefinedTransition__TargetAssignment_1_in_rule__RefinedTransition__Group__1__Impl38645);
+            pushFollow(FOLLOW_rule__RefinedTransition__TargetAssignment_1_in_rule__RefinedTransition__Group__1__Impl38646);
             rule__RefinedTransition__TargetAssignment_1();
 
             state._fsp--;
@@ -52207,12 +52218,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19104:1: ( rule__RefinedTransition__Group__2__Impl rule__RefinedTransition__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19105:2: rule__RefinedTransition__Group__2__Impl rule__RefinedTransition__Group__3
             {
-            pushFollow(FOLLOW_rule__RefinedTransition__Group__2__Impl_in_rule__RefinedTransition__Group__238675);
+            pushFollow(FOLLOW_rule__RefinedTransition__Group__2__Impl_in_rule__RefinedTransition__Group__238676);
             rule__RefinedTransition__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RefinedTransition__Group__3_in_rule__RefinedTransition__Group__238678);
+            pushFollow(FOLLOW_rule__RefinedTransition__Group__3_in_rule__RefinedTransition__Group__238679);
             rule__RefinedTransition__Group__3();
 
             state._fsp--;
@@ -52250,17 +52261,17 @@
             {
              before(grammarAccess.getRefinedTransitionAccess().getDocuAssignment_2()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19119:1: ( rule__RefinedTransition__DocuAssignment_2 )?
-            int alt180=2;
-            int LA180_0 = input.LA(1);
+            int alt181=2;
+            int LA181_0 = input.LA(1);
 
-            if ( (LA180_0==58) ) {
-                alt180=1;
+            if ( (LA181_0==58) ) {
+                alt181=1;
             }
-            switch (alt180) {
+            switch (alt181) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19119:2: rule__RefinedTransition__DocuAssignment_2
                     {
-                    pushFollow(FOLLOW_rule__RefinedTransition__DocuAssignment_2_in_rule__RefinedTransition__Group__2__Impl38705);
+                    pushFollow(FOLLOW_rule__RefinedTransition__DocuAssignment_2_in_rule__RefinedTransition__Group__2__Impl38706);
                     rule__RefinedTransition__DocuAssignment_2();
 
                     state._fsp--;
@@ -52303,12 +52314,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19133:1: ( rule__RefinedTransition__Group__3__Impl rule__RefinedTransition__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19134:2: rule__RefinedTransition__Group__3__Impl rule__RefinedTransition__Group__4
             {
-            pushFollow(FOLLOW_rule__RefinedTransition__Group__3__Impl_in_rule__RefinedTransition__Group__338736);
+            pushFollow(FOLLOW_rule__RefinedTransition__Group__3__Impl_in_rule__RefinedTransition__Group__338737);
             rule__RefinedTransition__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RefinedTransition__Group__4_in_rule__RefinedTransition__Group__338739);
+            pushFollow(FOLLOW_rule__RefinedTransition__Group__4_in_rule__RefinedTransition__Group__338740);
             rule__RefinedTransition__Group__4();
 
             state._fsp--;
@@ -52345,7 +52356,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19147:1: '{'
             {
              before(grammarAccess.getRefinedTransitionAccess().getLeftCurlyBracketKeyword_3()); 
-            match(input,40,FOLLOW_40_in_rule__RefinedTransition__Group__3__Impl38767); 
+            match(input,40,FOLLOW_40_in_rule__RefinedTransition__Group__3__Impl38768); 
              after(grammarAccess.getRefinedTransitionAccess().getLeftCurlyBracketKeyword_3()); 
 
             }
@@ -52378,12 +52389,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19164:1: ( rule__RefinedTransition__Group__4__Impl rule__RefinedTransition__Group__5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19165:2: rule__RefinedTransition__Group__4__Impl rule__RefinedTransition__Group__5
             {
-            pushFollow(FOLLOW_rule__RefinedTransition__Group__4__Impl_in_rule__RefinedTransition__Group__438798);
+            pushFollow(FOLLOW_rule__RefinedTransition__Group__4__Impl_in_rule__RefinedTransition__Group__438799);
             rule__RefinedTransition__Group__4__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RefinedTransition__Group__5_in_rule__RefinedTransition__Group__438801);
+            pushFollow(FOLLOW_rule__RefinedTransition__Group__5_in_rule__RefinedTransition__Group__438802);
             rule__RefinedTransition__Group__5();
 
             state._fsp--;
@@ -52420,7 +52431,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19178:1: 'action'
             {
              before(grammarAccess.getRefinedTransitionAccess().getActionKeyword_4()); 
-            match(input,105,FOLLOW_105_in_rule__RefinedTransition__Group__4__Impl38829); 
+            match(input,105,FOLLOW_105_in_rule__RefinedTransition__Group__4__Impl38830); 
              after(grammarAccess.getRefinedTransitionAccess().getActionKeyword_4()); 
 
             }
@@ -52453,12 +52464,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19195:1: ( rule__RefinedTransition__Group__5__Impl rule__RefinedTransition__Group__6 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19196:2: rule__RefinedTransition__Group__5__Impl rule__RefinedTransition__Group__6
             {
-            pushFollow(FOLLOW_rule__RefinedTransition__Group__5__Impl_in_rule__RefinedTransition__Group__538860);
+            pushFollow(FOLLOW_rule__RefinedTransition__Group__5__Impl_in_rule__RefinedTransition__Group__538861);
             rule__RefinedTransition__Group__5__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RefinedTransition__Group__6_in_rule__RefinedTransition__Group__538863);
+            pushFollow(FOLLOW_rule__RefinedTransition__Group__6_in_rule__RefinedTransition__Group__538864);
             rule__RefinedTransition__Group__6();
 
             state._fsp--;
@@ -52498,7 +52509,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19210:1: ( rule__RefinedTransition__ActionAssignment_5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19210:2: rule__RefinedTransition__ActionAssignment_5
             {
-            pushFollow(FOLLOW_rule__RefinedTransition__ActionAssignment_5_in_rule__RefinedTransition__Group__5__Impl38890);
+            pushFollow(FOLLOW_rule__RefinedTransition__ActionAssignment_5_in_rule__RefinedTransition__Group__5__Impl38891);
             rule__RefinedTransition__ActionAssignment_5();
 
             state._fsp--;
@@ -52538,7 +52549,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19224:1: ( rule__RefinedTransition__Group__6__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19225:2: rule__RefinedTransition__Group__6__Impl
             {
-            pushFollow(FOLLOW_rule__RefinedTransition__Group__6__Impl_in_rule__RefinedTransition__Group__638920);
+            pushFollow(FOLLOW_rule__RefinedTransition__Group__6__Impl_in_rule__RefinedTransition__Group__638921);
             rule__RefinedTransition__Group__6__Impl();
 
             state._fsp--;
@@ -52575,7 +52586,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19237:1: '}'
             {
              before(grammarAccess.getRefinedTransitionAccess().getRightCurlyBracketKeyword_6()); 
-            match(input,41,FOLLOW_41_in_rule__RefinedTransition__Group__6__Impl38948); 
+            match(input,41,FOLLOW_41_in_rule__RefinedTransition__Group__6__Impl38949); 
              after(grammarAccess.getRefinedTransitionAccess().getRightCurlyBracketKeyword_6()); 
 
             }
@@ -52608,12 +52619,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19268:1: ( rule__TrPointTerminal__Group__0__Impl rule__TrPointTerminal__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19269:2: rule__TrPointTerminal__Group__0__Impl rule__TrPointTerminal__Group__1
             {
-            pushFollow(FOLLOW_rule__TrPointTerminal__Group__0__Impl_in_rule__TrPointTerminal__Group__038993);
+            pushFollow(FOLLOW_rule__TrPointTerminal__Group__0__Impl_in_rule__TrPointTerminal__Group__038994);
             rule__TrPointTerminal__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__TrPointTerminal__Group__1_in_rule__TrPointTerminal__Group__038996);
+            pushFollow(FOLLOW_rule__TrPointTerminal__Group__1_in_rule__TrPointTerminal__Group__038997);
             rule__TrPointTerminal__Group__1();
 
             state._fsp--;
@@ -52650,7 +52661,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19282:1: 'my'
             {
              before(grammarAccess.getTrPointTerminalAccess().getMyKeyword_0()); 
-            match(input,111,FOLLOW_111_in_rule__TrPointTerminal__Group__0__Impl39024); 
+            match(input,111,FOLLOW_111_in_rule__TrPointTerminal__Group__0__Impl39025); 
              after(grammarAccess.getTrPointTerminalAccess().getMyKeyword_0()); 
 
             }
@@ -52683,7 +52694,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19299:1: ( rule__TrPointTerminal__Group__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19300:2: rule__TrPointTerminal__Group__1__Impl
             {
-            pushFollow(FOLLOW_rule__TrPointTerminal__Group__1__Impl_in_rule__TrPointTerminal__Group__139055);
+            pushFollow(FOLLOW_rule__TrPointTerminal__Group__1__Impl_in_rule__TrPointTerminal__Group__139056);
             rule__TrPointTerminal__Group__1__Impl();
 
             state._fsp--;
@@ -52723,7 +52734,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19313:1: ( rule__TrPointTerminal__TrPointAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19313:2: rule__TrPointTerminal__TrPointAssignment_1
             {
-            pushFollow(FOLLOW_rule__TrPointTerminal__TrPointAssignment_1_in_rule__TrPointTerminal__Group__1__Impl39082);
+            pushFollow(FOLLOW_rule__TrPointTerminal__TrPointAssignment_1_in_rule__TrPointTerminal__Group__1__Impl39083);
             rule__TrPointTerminal__TrPointAssignment_1();
 
             state._fsp--;
@@ -52763,12 +52774,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19331:1: ( rule__SubStateTrPointTerminal__Group__0__Impl rule__SubStateTrPointTerminal__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19332:2: rule__SubStateTrPointTerminal__Group__0__Impl rule__SubStateTrPointTerminal__Group__1
             {
-            pushFollow(FOLLOW_rule__SubStateTrPointTerminal__Group__0__Impl_in_rule__SubStateTrPointTerminal__Group__039116);
+            pushFollow(FOLLOW_rule__SubStateTrPointTerminal__Group__0__Impl_in_rule__SubStateTrPointTerminal__Group__039117);
             rule__SubStateTrPointTerminal__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SubStateTrPointTerminal__Group__1_in_rule__SubStateTrPointTerminal__Group__039119);
+            pushFollow(FOLLOW_rule__SubStateTrPointTerminal__Group__1_in_rule__SubStateTrPointTerminal__Group__039120);
             rule__SubStateTrPointTerminal__Group__1();
 
             state._fsp--;
@@ -52808,7 +52819,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19346:1: ( rule__SubStateTrPointTerminal__TrPointAssignment_0 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19346:2: rule__SubStateTrPointTerminal__TrPointAssignment_0
             {
-            pushFollow(FOLLOW_rule__SubStateTrPointTerminal__TrPointAssignment_0_in_rule__SubStateTrPointTerminal__Group__0__Impl39146);
+            pushFollow(FOLLOW_rule__SubStateTrPointTerminal__TrPointAssignment_0_in_rule__SubStateTrPointTerminal__Group__0__Impl39147);
             rule__SubStateTrPointTerminal__TrPointAssignment_0();
 
             state._fsp--;
@@ -52848,12 +52859,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19360:1: ( rule__SubStateTrPointTerminal__Group__1__Impl rule__SubStateTrPointTerminal__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19361:2: rule__SubStateTrPointTerminal__Group__1__Impl rule__SubStateTrPointTerminal__Group__2
             {
-            pushFollow(FOLLOW_rule__SubStateTrPointTerminal__Group__1__Impl_in_rule__SubStateTrPointTerminal__Group__139176);
+            pushFollow(FOLLOW_rule__SubStateTrPointTerminal__Group__1__Impl_in_rule__SubStateTrPointTerminal__Group__139177);
             rule__SubStateTrPointTerminal__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SubStateTrPointTerminal__Group__2_in_rule__SubStateTrPointTerminal__Group__139179);
+            pushFollow(FOLLOW_rule__SubStateTrPointTerminal__Group__2_in_rule__SubStateTrPointTerminal__Group__139180);
             rule__SubStateTrPointTerminal__Group__2();
 
             state._fsp--;
@@ -52890,7 +52901,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19374:1: 'of'
             {
              before(grammarAccess.getSubStateTrPointTerminalAccess().getOfKeyword_1()); 
-            match(input,49,FOLLOW_49_in_rule__SubStateTrPointTerminal__Group__1__Impl39207); 
+            match(input,49,FOLLOW_49_in_rule__SubStateTrPointTerminal__Group__1__Impl39208); 
              after(grammarAccess.getSubStateTrPointTerminalAccess().getOfKeyword_1()); 
 
             }
@@ -52923,7 +52934,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19391:1: ( rule__SubStateTrPointTerminal__Group__2__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19392:2: rule__SubStateTrPointTerminal__Group__2__Impl
             {
-            pushFollow(FOLLOW_rule__SubStateTrPointTerminal__Group__2__Impl_in_rule__SubStateTrPointTerminal__Group__239238);
+            pushFollow(FOLLOW_rule__SubStateTrPointTerminal__Group__2__Impl_in_rule__SubStateTrPointTerminal__Group__239239);
             rule__SubStateTrPointTerminal__Group__2__Impl();
 
             state._fsp--;
@@ -52963,7 +52974,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19405:1: ( rule__SubStateTrPointTerminal__StateAssignment_2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19405:2: rule__SubStateTrPointTerminal__StateAssignment_2
             {
-            pushFollow(FOLLOW_rule__SubStateTrPointTerminal__StateAssignment_2_in_rule__SubStateTrPointTerminal__Group__2__Impl39265);
+            pushFollow(FOLLOW_rule__SubStateTrPointTerminal__StateAssignment_2_in_rule__SubStateTrPointTerminal__Group__2__Impl39266);
             rule__SubStateTrPointTerminal__StateAssignment_2();
 
             state._fsp--;
@@ -53003,12 +53014,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19425:1: ( rule__ChoicepointTerminal__Group__0__Impl rule__ChoicepointTerminal__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19426:2: rule__ChoicepointTerminal__Group__0__Impl rule__ChoicepointTerminal__Group__1
             {
-            pushFollow(FOLLOW_rule__ChoicepointTerminal__Group__0__Impl_in_rule__ChoicepointTerminal__Group__039301);
+            pushFollow(FOLLOW_rule__ChoicepointTerminal__Group__0__Impl_in_rule__ChoicepointTerminal__Group__039302);
             rule__ChoicepointTerminal__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ChoicepointTerminal__Group__1_in_rule__ChoicepointTerminal__Group__039304);
+            pushFollow(FOLLOW_rule__ChoicepointTerminal__Group__1_in_rule__ChoicepointTerminal__Group__039305);
             rule__ChoicepointTerminal__Group__1();
 
             state._fsp--;
@@ -53045,7 +53056,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19439:1: 'cp'
             {
              before(grammarAccess.getChoicepointTerminalAccess().getCpKeyword_0()); 
-            match(input,112,FOLLOW_112_in_rule__ChoicepointTerminal__Group__0__Impl39332); 
+            match(input,112,FOLLOW_112_in_rule__ChoicepointTerminal__Group__0__Impl39333); 
              after(grammarAccess.getChoicepointTerminalAccess().getCpKeyword_0()); 
 
             }
@@ -53078,7 +53089,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19456:1: ( rule__ChoicepointTerminal__Group__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19457:2: rule__ChoicepointTerminal__Group__1__Impl
             {
-            pushFollow(FOLLOW_rule__ChoicepointTerminal__Group__1__Impl_in_rule__ChoicepointTerminal__Group__139363);
+            pushFollow(FOLLOW_rule__ChoicepointTerminal__Group__1__Impl_in_rule__ChoicepointTerminal__Group__139364);
             rule__ChoicepointTerminal__Group__1__Impl();
 
             state._fsp--;
@@ -53118,7 +53129,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19470:1: ( rule__ChoicepointTerminal__CpAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19470:2: rule__ChoicepointTerminal__CpAssignment_1
             {
-            pushFollow(FOLLOW_rule__ChoicepointTerminal__CpAssignment_1_in_rule__ChoicepointTerminal__Group__1__Impl39390);
+            pushFollow(FOLLOW_rule__ChoicepointTerminal__CpAssignment_1_in_rule__ChoicepointTerminal__Group__1__Impl39391);
             rule__ChoicepointTerminal__CpAssignment_1();
 
             state._fsp--;
@@ -53158,12 +53169,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19488:1: ( rule__Trigger__Group__0__Impl rule__Trigger__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19489:2: rule__Trigger__Group__0__Impl rule__Trigger__Group__1
             {
-            pushFollow(FOLLOW_rule__Trigger__Group__0__Impl_in_rule__Trigger__Group__039424);
+            pushFollow(FOLLOW_rule__Trigger__Group__0__Impl_in_rule__Trigger__Group__039425);
             rule__Trigger__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Trigger__Group__1_in_rule__Trigger__Group__039427);
+            pushFollow(FOLLOW_rule__Trigger__Group__1_in_rule__Trigger__Group__039428);
             rule__Trigger__Group__1();
 
             state._fsp--;
@@ -53200,7 +53211,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19502:1: '<'
             {
              before(grammarAccess.getTriggerAccess().getLessThanSignKeyword_0()); 
-            match(input,113,FOLLOW_113_in_rule__Trigger__Group__0__Impl39455); 
+            match(input,113,FOLLOW_113_in_rule__Trigger__Group__0__Impl39456); 
              after(grammarAccess.getTriggerAccess().getLessThanSignKeyword_0()); 
 
             }
@@ -53233,12 +53244,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19519:1: ( rule__Trigger__Group__1__Impl rule__Trigger__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19520:2: rule__Trigger__Group__1__Impl rule__Trigger__Group__2
             {
-            pushFollow(FOLLOW_rule__Trigger__Group__1__Impl_in_rule__Trigger__Group__139486);
+            pushFollow(FOLLOW_rule__Trigger__Group__1__Impl_in_rule__Trigger__Group__139487);
             rule__Trigger__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Trigger__Group__2_in_rule__Trigger__Group__139489);
+            pushFollow(FOLLOW_rule__Trigger__Group__2_in_rule__Trigger__Group__139490);
             rule__Trigger__Group__2();
 
             state._fsp--;
@@ -53278,7 +53289,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19534:1: ( rule__Trigger__MsgFromIfPairsAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19534:2: rule__Trigger__MsgFromIfPairsAssignment_1
             {
-            pushFollow(FOLLOW_rule__Trigger__MsgFromIfPairsAssignment_1_in_rule__Trigger__Group__1__Impl39516);
+            pushFollow(FOLLOW_rule__Trigger__MsgFromIfPairsAssignment_1_in_rule__Trigger__Group__1__Impl39517);
             rule__Trigger__MsgFromIfPairsAssignment_1();
 
             state._fsp--;
@@ -53318,12 +53329,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19548:1: ( rule__Trigger__Group__2__Impl rule__Trigger__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19549:2: rule__Trigger__Group__2__Impl rule__Trigger__Group__3
             {
-            pushFollow(FOLLOW_rule__Trigger__Group__2__Impl_in_rule__Trigger__Group__239546);
+            pushFollow(FOLLOW_rule__Trigger__Group__2__Impl_in_rule__Trigger__Group__239547);
             rule__Trigger__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Trigger__Group__3_in_rule__Trigger__Group__239549);
+            pushFollow(FOLLOW_rule__Trigger__Group__3_in_rule__Trigger__Group__239550);
             rule__Trigger__Group__3();
 
             state._fsp--;
@@ -53361,21 +53372,21 @@
             {
              before(grammarAccess.getTriggerAccess().getGroup_2()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19563:1: ( rule__Trigger__Group_2__0 )*
-            loop181:
+            loop182:
             do {
-                int alt181=2;
-                int LA181_0 = input.LA(1);
+                int alt182=2;
+                int LA182_0 = input.LA(1);
 
-                if ( (LA181_0==115) ) {
-                    alt181=1;
+                if ( (LA182_0==115) ) {
+                    alt182=1;
                 }
 
 
-                switch (alt181) {
+                switch (alt182) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19563:2: rule__Trigger__Group_2__0
             	    {
-            	    pushFollow(FOLLOW_rule__Trigger__Group_2__0_in_rule__Trigger__Group__2__Impl39576);
+            	    pushFollow(FOLLOW_rule__Trigger__Group_2__0_in_rule__Trigger__Group__2__Impl39577);
             	    rule__Trigger__Group_2__0();
 
             	    state._fsp--;
@@ -53385,7 +53396,7 @@
             	    break;
 
             	default :
-            	    break loop181;
+            	    break loop182;
                 }
             } while (true);
 
@@ -53421,12 +53432,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19577:1: ( rule__Trigger__Group__3__Impl rule__Trigger__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19578:2: rule__Trigger__Group__3__Impl rule__Trigger__Group__4
             {
-            pushFollow(FOLLOW_rule__Trigger__Group__3__Impl_in_rule__Trigger__Group__339607);
+            pushFollow(FOLLOW_rule__Trigger__Group__3__Impl_in_rule__Trigger__Group__339608);
             rule__Trigger__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Trigger__Group__4_in_rule__Trigger__Group__339610);
+            pushFollow(FOLLOW_rule__Trigger__Group__4_in_rule__Trigger__Group__339611);
             rule__Trigger__Group__4();
 
             state._fsp--;
@@ -53464,17 +53475,17 @@
             {
              before(grammarAccess.getTriggerAccess().getGuardAssignment_3()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19592:1: ( rule__Trigger__GuardAssignment_3 )?
-            int alt182=2;
-            int LA182_0 = input.LA(1);
+            int alt183=2;
+            int LA183_0 = input.LA(1);
 
-            if ( (LA182_0==108) ) {
-                alt182=1;
+            if ( (LA183_0==108) ) {
+                alt183=1;
             }
-            switch (alt182) {
+            switch (alt183) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19592:2: rule__Trigger__GuardAssignment_3
                     {
-                    pushFollow(FOLLOW_rule__Trigger__GuardAssignment_3_in_rule__Trigger__Group__3__Impl39637);
+                    pushFollow(FOLLOW_rule__Trigger__GuardAssignment_3_in_rule__Trigger__Group__3__Impl39638);
                     rule__Trigger__GuardAssignment_3();
 
                     state._fsp--;
@@ -53517,7 +53528,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19606:1: ( rule__Trigger__Group__4__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19607:2: rule__Trigger__Group__4__Impl
             {
-            pushFollow(FOLLOW_rule__Trigger__Group__4__Impl_in_rule__Trigger__Group__439668);
+            pushFollow(FOLLOW_rule__Trigger__Group__4__Impl_in_rule__Trigger__Group__439669);
             rule__Trigger__Group__4__Impl();
 
             state._fsp--;
@@ -53554,7 +53565,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19619:1: '>'
             {
              before(grammarAccess.getTriggerAccess().getGreaterThanSignKeyword_4()); 
-            match(input,114,FOLLOW_114_in_rule__Trigger__Group__4__Impl39696); 
+            match(input,114,FOLLOW_114_in_rule__Trigger__Group__4__Impl39697); 
              after(grammarAccess.getTriggerAccess().getGreaterThanSignKeyword_4()); 
 
             }
@@ -53587,12 +53598,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19646:1: ( rule__Trigger__Group_2__0__Impl rule__Trigger__Group_2__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19647:2: rule__Trigger__Group_2__0__Impl rule__Trigger__Group_2__1
             {
-            pushFollow(FOLLOW_rule__Trigger__Group_2__0__Impl_in_rule__Trigger__Group_2__039737);
+            pushFollow(FOLLOW_rule__Trigger__Group_2__0__Impl_in_rule__Trigger__Group_2__039738);
             rule__Trigger__Group_2__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Trigger__Group_2__1_in_rule__Trigger__Group_2__039740);
+            pushFollow(FOLLOW_rule__Trigger__Group_2__1_in_rule__Trigger__Group_2__039741);
             rule__Trigger__Group_2__1();
 
             state._fsp--;
@@ -53629,7 +53640,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19660:1: '|'
             {
              before(grammarAccess.getTriggerAccess().getVerticalLineKeyword_2_0()); 
-            match(input,115,FOLLOW_115_in_rule__Trigger__Group_2__0__Impl39768); 
+            match(input,115,FOLLOW_115_in_rule__Trigger__Group_2__0__Impl39769); 
              after(grammarAccess.getTriggerAccess().getVerticalLineKeyword_2_0()); 
 
             }
@@ -53662,7 +53673,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19677:1: ( rule__Trigger__Group_2__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19678:2: rule__Trigger__Group_2__1__Impl
             {
-            pushFollow(FOLLOW_rule__Trigger__Group_2__1__Impl_in_rule__Trigger__Group_2__139799);
+            pushFollow(FOLLOW_rule__Trigger__Group_2__1__Impl_in_rule__Trigger__Group_2__139800);
             rule__Trigger__Group_2__1__Impl();
 
             state._fsp--;
@@ -53702,7 +53713,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19691:1: ( rule__Trigger__MsgFromIfPairsAssignment_2_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19691:2: rule__Trigger__MsgFromIfPairsAssignment_2_1
             {
-            pushFollow(FOLLOW_rule__Trigger__MsgFromIfPairsAssignment_2_1_in_rule__Trigger__Group_2__1__Impl39826);
+            pushFollow(FOLLOW_rule__Trigger__MsgFromIfPairsAssignment_2_1_in_rule__Trigger__Group_2__1__Impl39827);
             rule__Trigger__MsgFromIfPairsAssignment_2_1();
 
             state._fsp--;
@@ -53742,12 +53753,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19709:1: ( rule__MessageFromIf__Group__0__Impl rule__MessageFromIf__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19710:2: rule__MessageFromIf__Group__0__Impl rule__MessageFromIf__Group__1
             {
-            pushFollow(FOLLOW_rule__MessageFromIf__Group__0__Impl_in_rule__MessageFromIf__Group__039860);
+            pushFollow(FOLLOW_rule__MessageFromIf__Group__0__Impl_in_rule__MessageFromIf__Group__039861);
             rule__MessageFromIf__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__MessageFromIf__Group__1_in_rule__MessageFromIf__Group__039863);
+            pushFollow(FOLLOW_rule__MessageFromIf__Group__1_in_rule__MessageFromIf__Group__039864);
             rule__MessageFromIf__Group__1();
 
             state._fsp--;
@@ -53787,7 +53798,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19724:1: ( rule__MessageFromIf__MessageAssignment_0 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19724:2: rule__MessageFromIf__MessageAssignment_0
             {
-            pushFollow(FOLLOW_rule__MessageFromIf__MessageAssignment_0_in_rule__MessageFromIf__Group__0__Impl39890);
+            pushFollow(FOLLOW_rule__MessageFromIf__MessageAssignment_0_in_rule__MessageFromIf__Group__0__Impl39891);
             rule__MessageFromIf__MessageAssignment_0();
 
             state._fsp--;
@@ -53827,12 +53838,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19738:1: ( rule__MessageFromIf__Group__1__Impl rule__MessageFromIf__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19739:2: rule__MessageFromIf__Group__1__Impl rule__MessageFromIf__Group__2
             {
-            pushFollow(FOLLOW_rule__MessageFromIf__Group__1__Impl_in_rule__MessageFromIf__Group__139920);
+            pushFollow(FOLLOW_rule__MessageFromIf__Group__1__Impl_in_rule__MessageFromIf__Group__139921);
             rule__MessageFromIf__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__MessageFromIf__Group__2_in_rule__MessageFromIf__Group__139923);
+            pushFollow(FOLLOW_rule__MessageFromIf__Group__2_in_rule__MessageFromIf__Group__139924);
             rule__MessageFromIf__Group__2();
 
             state._fsp--;
@@ -53869,7 +53880,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19752:1: ':'
             {
              before(grammarAccess.getMessageFromIfAccess().getColonKeyword_1()); 
-            match(input,42,FOLLOW_42_in_rule__MessageFromIf__Group__1__Impl39951); 
+            match(input,42,FOLLOW_42_in_rule__MessageFromIf__Group__1__Impl39952); 
              after(grammarAccess.getMessageFromIfAccess().getColonKeyword_1()); 
 
             }
@@ -53902,7 +53913,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19769:1: ( rule__MessageFromIf__Group__2__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19770:2: rule__MessageFromIf__Group__2__Impl
             {
-            pushFollow(FOLLOW_rule__MessageFromIf__Group__2__Impl_in_rule__MessageFromIf__Group__239982);
+            pushFollow(FOLLOW_rule__MessageFromIf__Group__2__Impl_in_rule__MessageFromIf__Group__239983);
             rule__MessageFromIf__Group__2__Impl();
 
             state._fsp--;
@@ -53942,7 +53953,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19783:1: ( rule__MessageFromIf__FromAssignment_2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19783:2: rule__MessageFromIf__FromAssignment_2
             {
-            pushFollow(FOLLOW_rule__MessageFromIf__FromAssignment_2_in_rule__MessageFromIf__Group__2__Impl40009);
+            pushFollow(FOLLOW_rule__MessageFromIf__FromAssignment_2_in_rule__MessageFromIf__Group__2__Impl40010);
             rule__MessageFromIf__FromAssignment_2();
 
             state._fsp--;
@@ -53982,12 +53993,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19803:1: ( rule__Guard__Group__0__Impl rule__Guard__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19804:2: rule__Guard__Group__0__Impl rule__Guard__Group__1
             {
-            pushFollow(FOLLOW_rule__Guard__Group__0__Impl_in_rule__Guard__Group__040045);
+            pushFollow(FOLLOW_rule__Guard__Group__0__Impl_in_rule__Guard__Group__040046);
             rule__Guard__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Guard__Group__1_in_rule__Guard__Group__040048);
+            pushFollow(FOLLOW_rule__Guard__Group__1_in_rule__Guard__Group__040049);
             rule__Guard__Group__1();
 
             state._fsp--;
@@ -54024,7 +54035,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19817:1: 'guard'
             {
              before(grammarAccess.getGuardAccess().getGuardKeyword_0()); 
-            match(input,108,FOLLOW_108_in_rule__Guard__Group__0__Impl40076); 
+            match(input,108,FOLLOW_108_in_rule__Guard__Group__0__Impl40077); 
              after(grammarAccess.getGuardAccess().getGuardKeyword_0()); 
 
             }
@@ -54057,7 +54068,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19834:1: ( rule__Guard__Group__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19835:2: rule__Guard__Group__1__Impl
             {
-            pushFollow(FOLLOW_rule__Guard__Group__1__Impl_in_rule__Guard__Group__140107);
+            pushFollow(FOLLOW_rule__Guard__Group__1__Impl_in_rule__Guard__Group__140108);
             rule__Guard__Group__1__Impl();
 
             state._fsp--;
@@ -54097,7 +54108,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19848:1: ( rule__Guard__GuardAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19848:2: rule__Guard__GuardAssignment_1
             {
-            pushFollow(FOLLOW_rule__Guard__GuardAssignment_1_in_rule__Guard__Group__1__Impl40134);
+            pushFollow(FOLLOW_rule__Guard__GuardAssignment_1_in_rule__Guard__Group__1__Impl40135);
             rule__Guard__GuardAssignment_1();
 
             state._fsp--;
@@ -54137,12 +54148,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19866:1: ( rule__ProtocolSemantics__Group__0__Impl rule__ProtocolSemantics__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19867:2: rule__ProtocolSemantics__Group__0__Impl rule__ProtocolSemantics__Group__1
             {
-            pushFollow(FOLLOW_rule__ProtocolSemantics__Group__0__Impl_in_rule__ProtocolSemantics__Group__040168);
+            pushFollow(FOLLOW_rule__ProtocolSemantics__Group__0__Impl_in_rule__ProtocolSemantics__Group__040169);
             rule__ProtocolSemantics__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolSemantics__Group__1_in_rule__ProtocolSemantics__Group__040171);
+            pushFollow(FOLLOW_rule__ProtocolSemantics__Group__1_in_rule__ProtocolSemantics__Group__040172);
             rule__ProtocolSemantics__Group__1();
 
             state._fsp--;
@@ -54212,12 +54223,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19897:1: ( rule__ProtocolSemantics__Group__1__Impl rule__ProtocolSemantics__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19898:2: rule__ProtocolSemantics__Group__1__Impl rule__ProtocolSemantics__Group__2
             {
-            pushFollow(FOLLOW_rule__ProtocolSemantics__Group__1__Impl_in_rule__ProtocolSemantics__Group__140229);
+            pushFollow(FOLLOW_rule__ProtocolSemantics__Group__1__Impl_in_rule__ProtocolSemantics__Group__140230);
             rule__ProtocolSemantics__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolSemantics__Group__2_in_rule__ProtocolSemantics__Group__140232);
+            pushFollow(FOLLOW_rule__ProtocolSemantics__Group__2_in_rule__ProtocolSemantics__Group__140233);
             rule__ProtocolSemantics__Group__2();
 
             state._fsp--;
@@ -54254,7 +54265,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19911:1: 'semantics'
             {
              before(grammarAccess.getProtocolSemanticsAccess().getSemanticsKeyword_1()); 
-            match(input,116,FOLLOW_116_in_rule__ProtocolSemantics__Group__1__Impl40260); 
+            match(input,116,FOLLOW_116_in_rule__ProtocolSemantics__Group__1__Impl40261); 
              after(grammarAccess.getProtocolSemanticsAccess().getSemanticsKeyword_1()); 
 
             }
@@ -54287,12 +54298,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19928:1: ( rule__ProtocolSemantics__Group__2__Impl rule__ProtocolSemantics__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19929:2: rule__ProtocolSemantics__Group__2__Impl rule__ProtocolSemantics__Group__3
             {
-            pushFollow(FOLLOW_rule__ProtocolSemantics__Group__2__Impl_in_rule__ProtocolSemantics__Group__240291);
+            pushFollow(FOLLOW_rule__ProtocolSemantics__Group__2__Impl_in_rule__ProtocolSemantics__Group__240292);
             rule__ProtocolSemantics__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolSemantics__Group__3_in_rule__ProtocolSemantics__Group__240294);
+            pushFollow(FOLLOW_rule__ProtocolSemantics__Group__3_in_rule__ProtocolSemantics__Group__240295);
             rule__ProtocolSemantics__Group__3();
 
             state._fsp--;
@@ -54329,7 +54340,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19942:1: '{'
             {
              before(grammarAccess.getProtocolSemanticsAccess().getLeftCurlyBracketKeyword_2()); 
-            match(input,40,FOLLOW_40_in_rule__ProtocolSemantics__Group__2__Impl40322); 
+            match(input,40,FOLLOW_40_in_rule__ProtocolSemantics__Group__2__Impl40323); 
              after(grammarAccess.getProtocolSemanticsAccess().getLeftCurlyBracketKeyword_2()); 
 
             }
@@ -54362,12 +54373,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19959:1: ( rule__ProtocolSemantics__Group__3__Impl rule__ProtocolSemantics__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19960:2: rule__ProtocolSemantics__Group__3__Impl rule__ProtocolSemantics__Group__4
             {
-            pushFollow(FOLLOW_rule__ProtocolSemantics__Group__3__Impl_in_rule__ProtocolSemantics__Group__340353);
+            pushFollow(FOLLOW_rule__ProtocolSemantics__Group__3__Impl_in_rule__ProtocolSemantics__Group__340354);
             rule__ProtocolSemantics__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ProtocolSemantics__Group__4_in_rule__ProtocolSemantics__Group__340356);
+            pushFollow(FOLLOW_rule__ProtocolSemantics__Group__4_in_rule__ProtocolSemantics__Group__340357);
             rule__ProtocolSemantics__Group__4();
 
             state._fsp--;
@@ -54405,21 +54416,21 @@
             {
              before(grammarAccess.getProtocolSemanticsAccess().getRulesAssignment_3()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19974:1: ( rule__ProtocolSemantics__RulesAssignment_3 )*
-            loop183:
+            loop184:
             do {
-                int alt183=2;
-                int LA183_0 = input.LA(1);
+                int alt184=2;
+                int LA184_0 = input.LA(1);
 
-                if ( ((LA183_0>=117 && LA183_0<=118)) ) {
-                    alt183=1;
+                if ( ((LA184_0>=117 && LA184_0<=118)) ) {
+                    alt184=1;
                 }
 
 
-                switch (alt183) {
+                switch (alt184) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19974:2: rule__ProtocolSemantics__RulesAssignment_3
             	    {
-            	    pushFollow(FOLLOW_rule__ProtocolSemantics__RulesAssignment_3_in_rule__ProtocolSemantics__Group__3__Impl40383);
+            	    pushFollow(FOLLOW_rule__ProtocolSemantics__RulesAssignment_3_in_rule__ProtocolSemantics__Group__3__Impl40384);
             	    rule__ProtocolSemantics__RulesAssignment_3();
 
             	    state._fsp--;
@@ -54429,7 +54440,7 @@
             	    break;
 
             	default :
-            	    break loop183;
+            	    break loop184;
                 }
             } while (true);
 
@@ -54465,7 +54476,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19988:1: ( rule__ProtocolSemantics__Group__4__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:19989:2: rule__ProtocolSemantics__Group__4__Impl
             {
-            pushFollow(FOLLOW_rule__ProtocolSemantics__Group__4__Impl_in_rule__ProtocolSemantics__Group__440414);
+            pushFollow(FOLLOW_rule__ProtocolSemantics__Group__4__Impl_in_rule__ProtocolSemantics__Group__440415);
             rule__ProtocolSemantics__Group__4__Impl();
 
             state._fsp--;
@@ -54502,7 +54513,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20001:1: '}'
             {
              before(grammarAccess.getProtocolSemanticsAccess().getRightCurlyBracketKeyword_4()); 
-            match(input,41,FOLLOW_41_in_rule__ProtocolSemantics__Group__4__Impl40442); 
+            match(input,41,FOLLOW_41_in_rule__ProtocolSemantics__Group__4__Impl40443); 
              after(grammarAccess.getProtocolSemanticsAccess().getRightCurlyBracketKeyword_4()); 
 
             }
@@ -54535,12 +54546,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20028:1: ( rule__InSemanticsRule__Group__0__Impl rule__InSemanticsRule__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20029:2: rule__InSemanticsRule__Group__0__Impl rule__InSemanticsRule__Group__1
             {
-            pushFollow(FOLLOW_rule__InSemanticsRule__Group__0__Impl_in_rule__InSemanticsRule__Group__040483);
+            pushFollow(FOLLOW_rule__InSemanticsRule__Group__0__Impl_in_rule__InSemanticsRule__Group__040484);
             rule__InSemanticsRule__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__InSemanticsRule__Group__1_in_rule__InSemanticsRule__Group__040486);
+            pushFollow(FOLLOW_rule__InSemanticsRule__Group__1_in_rule__InSemanticsRule__Group__040487);
             rule__InSemanticsRule__Group__1();
 
             state._fsp--;
@@ -54577,7 +54588,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20042:1: 'in'
             {
              before(grammarAccess.getInSemanticsRuleAccess().getInKeyword_0()); 
-            match(input,117,FOLLOW_117_in_rule__InSemanticsRule__Group__0__Impl40514); 
+            match(input,117,FOLLOW_117_in_rule__InSemanticsRule__Group__0__Impl40515); 
              after(grammarAccess.getInSemanticsRuleAccess().getInKeyword_0()); 
 
             }
@@ -54610,12 +54621,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20059:1: ( rule__InSemanticsRule__Group__1__Impl rule__InSemanticsRule__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20060:2: rule__InSemanticsRule__Group__1__Impl rule__InSemanticsRule__Group__2
             {
-            pushFollow(FOLLOW_rule__InSemanticsRule__Group__1__Impl_in_rule__InSemanticsRule__Group__140545);
+            pushFollow(FOLLOW_rule__InSemanticsRule__Group__1__Impl_in_rule__InSemanticsRule__Group__140546);
             rule__InSemanticsRule__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__InSemanticsRule__Group__2_in_rule__InSemanticsRule__Group__140548);
+            pushFollow(FOLLOW_rule__InSemanticsRule__Group__2_in_rule__InSemanticsRule__Group__140549);
             rule__InSemanticsRule__Group__2();
 
             state._fsp--;
@@ -54652,7 +54663,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20073:1: ':'
             {
              before(grammarAccess.getInSemanticsRuleAccess().getColonKeyword_1()); 
-            match(input,42,FOLLOW_42_in_rule__InSemanticsRule__Group__1__Impl40576); 
+            match(input,42,FOLLOW_42_in_rule__InSemanticsRule__Group__1__Impl40577); 
              after(grammarAccess.getInSemanticsRuleAccess().getColonKeyword_1()); 
 
             }
@@ -54685,12 +54696,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20090:1: ( rule__InSemanticsRule__Group__2__Impl rule__InSemanticsRule__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20091:2: rule__InSemanticsRule__Group__2__Impl rule__InSemanticsRule__Group__3
             {
-            pushFollow(FOLLOW_rule__InSemanticsRule__Group__2__Impl_in_rule__InSemanticsRule__Group__240607);
+            pushFollow(FOLLOW_rule__InSemanticsRule__Group__2__Impl_in_rule__InSemanticsRule__Group__240608);
             rule__InSemanticsRule__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__InSemanticsRule__Group__3_in_rule__InSemanticsRule__Group__240610);
+            pushFollow(FOLLOW_rule__InSemanticsRule__Group__3_in_rule__InSemanticsRule__Group__240611);
             rule__InSemanticsRule__Group__3();
 
             state._fsp--;
@@ -54730,7 +54741,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20105:1: ( rule__InSemanticsRule__MsgAssignment_2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20105:2: rule__InSemanticsRule__MsgAssignment_2
             {
-            pushFollow(FOLLOW_rule__InSemanticsRule__MsgAssignment_2_in_rule__InSemanticsRule__Group__2__Impl40637);
+            pushFollow(FOLLOW_rule__InSemanticsRule__MsgAssignment_2_in_rule__InSemanticsRule__Group__2__Impl40638);
             rule__InSemanticsRule__MsgAssignment_2();
 
             state._fsp--;
@@ -54770,7 +54781,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20119:1: ( rule__InSemanticsRule__Group__3__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20120:2: rule__InSemanticsRule__Group__3__Impl
             {
-            pushFollow(FOLLOW_rule__InSemanticsRule__Group__3__Impl_in_rule__InSemanticsRule__Group__340667);
+            pushFollow(FOLLOW_rule__InSemanticsRule__Group__3__Impl_in_rule__InSemanticsRule__Group__340668);
             rule__InSemanticsRule__Group__3__Impl();
 
             state._fsp--;
@@ -54808,17 +54819,17 @@
             {
              before(grammarAccess.getInSemanticsRuleAccess().getGroup_3()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20133:1: ( rule__InSemanticsRule__Group_3__0 )?
-            int alt184=2;
-            int LA184_0 = input.LA(1);
+            int alt185=2;
+            int LA185_0 = input.LA(1);
 
-            if ( (LA184_0==44) ) {
-                alt184=1;
+            if ( (LA185_0==44) ) {
+                alt185=1;
             }
-            switch (alt184) {
+            switch (alt185) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20133:2: rule__InSemanticsRule__Group_3__0
                     {
-                    pushFollow(FOLLOW_rule__InSemanticsRule__Group_3__0_in_rule__InSemanticsRule__Group__3__Impl40694);
+                    pushFollow(FOLLOW_rule__InSemanticsRule__Group_3__0_in_rule__InSemanticsRule__Group__3__Impl40695);
                     rule__InSemanticsRule__Group_3__0();
 
                     state._fsp--;
@@ -54861,12 +54872,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20155:1: ( rule__InSemanticsRule__Group_3__0__Impl rule__InSemanticsRule__Group_3__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20156:2: rule__InSemanticsRule__Group_3__0__Impl rule__InSemanticsRule__Group_3__1
             {
-            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3__0__Impl_in_rule__InSemanticsRule__Group_3__040733);
+            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3__0__Impl_in_rule__InSemanticsRule__Group_3__040734);
             rule__InSemanticsRule__Group_3__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3__1_in_rule__InSemanticsRule__Group_3__040736);
+            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3__1_in_rule__InSemanticsRule__Group_3__040737);
             rule__InSemanticsRule__Group_3__1();
 
             state._fsp--;
@@ -54903,7 +54914,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20169:1: '->'
             {
              before(grammarAccess.getInSemanticsRuleAccess().getHyphenMinusGreaterThanSignKeyword_3_0()); 
-            match(input,44,FOLLOW_44_in_rule__InSemanticsRule__Group_3__0__Impl40764); 
+            match(input,44,FOLLOW_44_in_rule__InSemanticsRule__Group_3__0__Impl40765); 
              after(grammarAccess.getInSemanticsRuleAccess().getHyphenMinusGreaterThanSignKeyword_3_0()); 
 
             }
@@ -54936,7 +54947,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20186:1: ( rule__InSemanticsRule__Group_3__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20187:2: rule__InSemanticsRule__Group_3__1__Impl
             {
-            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3__1__Impl_in_rule__InSemanticsRule__Group_3__140795);
+            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3__1__Impl_in_rule__InSemanticsRule__Group_3__140796);
             rule__InSemanticsRule__Group_3__1__Impl();
 
             state._fsp--;
@@ -54976,7 +54987,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20200:1: ( rule__InSemanticsRule__Alternatives_3_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20200:2: rule__InSemanticsRule__Alternatives_3_1
             {
-            pushFollow(FOLLOW_rule__InSemanticsRule__Alternatives_3_1_in_rule__InSemanticsRule__Group_3__1__Impl40822);
+            pushFollow(FOLLOW_rule__InSemanticsRule__Alternatives_3_1_in_rule__InSemanticsRule__Group_3__1__Impl40823);
             rule__InSemanticsRule__Alternatives_3_1();
 
             state._fsp--;
@@ -55016,12 +55027,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20218:1: ( rule__InSemanticsRule__Group_3_1_1__0__Impl rule__InSemanticsRule__Group_3_1_1__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20219:2: rule__InSemanticsRule__Group_3_1_1__0__Impl rule__InSemanticsRule__Group_3_1_1__1
             {
-            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1__0__Impl_in_rule__InSemanticsRule__Group_3_1_1__040856);
+            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1__0__Impl_in_rule__InSemanticsRule__Group_3_1_1__040857);
             rule__InSemanticsRule__Group_3_1_1__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1__1_in_rule__InSemanticsRule__Group_3_1_1__040859);
+            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1__1_in_rule__InSemanticsRule__Group_3_1_1__040860);
             rule__InSemanticsRule__Group_3_1_1__1();
 
             state._fsp--;
@@ -55058,7 +55069,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20232:1: '('
             {
              before(grammarAccess.getInSemanticsRuleAccess().getLeftParenthesisKeyword_3_1_1_0()); 
-            match(input,46,FOLLOW_46_in_rule__InSemanticsRule__Group_3_1_1__0__Impl40887); 
+            match(input,46,FOLLOW_46_in_rule__InSemanticsRule__Group_3_1_1__0__Impl40888); 
              after(grammarAccess.getInSemanticsRuleAccess().getLeftParenthesisKeyword_3_1_1_0()); 
 
             }
@@ -55091,12 +55102,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20249:1: ( rule__InSemanticsRule__Group_3_1_1__1__Impl rule__InSemanticsRule__Group_3_1_1__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20250:2: rule__InSemanticsRule__Group_3_1_1__1__Impl rule__InSemanticsRule__Group_3_1_1__2
             {
-            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1__1__Impl_in_rule__InSemanticsRule__Group_3_1_1__140918);
+            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1__1__Impl_in_rule__InSemanticsRule__Group_3_1_1__140919);
             rule__InSemanticsRule__Group_3_1_1__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1__2_in_rule__InSemanticsRule__Group_3_1_1__140921);
+            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1__2_in_rule__InSemanticsRule__Group_3_1_1__140922);
             rule__InSemanticsRule__Group_3_1_1__2();
 
             state._fsp--;
@@ -55136,7 +55147,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20264:1: ( rule__InSemanticsRule__FollowUpsAssignment_3_1_1_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20264:2: rule__InSemanticsRule__FollowUpsAssignment_3_1_1_1
             {
-            pushFollow(FOLLOW_rule__InSemanticsRule__FollowUpsAssignment_3_1_1_1_in_rule__InSemanticsRule__Group_3_1_1__1__Impl40948);
+            pushFollow(FOLLOW_rule__InSemanticsRule__FollowUpsAssignment_3_1_1_1_in_rule__InSemanticsRule__Group_3_1_1__1__Impl40949);
             rule__InSemanticsRule__FollowUpsAssignment_3_1_1_1();
 
             state._fsp--;
@@ -55176,12 +55187,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20278:1: ( rule__InSemanticsRule__Group_3_1_1__2__Impl rule__InSemanticsRule__Group_3_1_1__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20279:2: rule__InSemanticsRule__Group_3_1_1__2__Impl rule__InSemanticsRule__Group_3_1_1__3
             {
-            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1__2__Impl_in_rule__InSemanticsRule__Group_3_1_1__240978);
+            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1__2__Impl_in_rule__InSemanticsRule__Group_3_1_1__240979);
             rule__InSemanticsRule__Group_3_1_1__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1__3_in_rule__InSemanticsRule__Group_3_1_1__240981);
+            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1__3_in_rule__InSemanticsRule__Group_3_1_1__240982);
             rule__InSemanticsRule__Group_3_1_1__3();
 
             state._fsp--;
@@ -55224,7 +55235,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20294:1: ( rule__InSemanticsRule__Group_3_1_1_2__0 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20294:2: rule__InSemanticsRule__Group_3_1_1_2__0
             {
-            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1_2__0_in_rule__InSemanticsRule__Group_3_1_1__2__Impl41010);
+            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1_2__0_in_rule__InSemanticsRule__Group_3_1_1__2__Impl41011);
             rule__InSemanticsRule__Group_3_1_1_2__0();
 
             state._fsp--;
@@ -55241,21 +55252,21 @@
             {
              before(grammarAccess.getInSemanticsRuleAccess().getGroup_3_1_1_2()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20299:1: ( rule__InSemanticsRule__Group_3_1_1_2__0 )*
-            loop185:
+            loop186:
             do {
-                int alt185=2;
-                int LA185_0 = input.LA(1);
+                int alt186=2;
+                int LA186_0 = input.LA(1);
 
-                if ( (LA185_0==50) ) {
-                    alt185=1;
+                if ( (LA186_0==50) ) {
+                    alt186=1;
                 }
 
 
-                switch (alt185) {
+                switch (alt186) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20299:2: rule__InSemanticsRule__Group_3_1_1_2__0
             	    {
-            	    pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1_2__0_in_rule__InSemanticsRule__Group_3_1_1__2__Impl41022);
+            	    pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1_2__0_in_rule__InSemanticsRule__Group_3_1_1__2__Impl41023);
             	    rule__InSemanticsRule__Group_3_1_1_2__0();
 
             	    state._fsp--;
@@ -55265,7 +55276,7 @@
             	    break;
 
             	default :
-            	    break loop185;
+            	    break loop186;
                 }
             } while (true);
 
@@ -55304,7 +55315,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20314:1: ( rule__InSemanticsRule__Group_3_1_1__3__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20315:2: rule__InSemanticsRule__Group_3_1_1__3__Impl
             {
-            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1__3__Impl_in_rule__InSemanticsRule__Group_3_1_1__341055);
+            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1__3__Impl_in_rule__InSemanticsRule__Group_3_1_1__341056);
             rule__InSemanticsRule__Group_3_1_1__3__Impl();
 
             state._fsp--;
@@ -55341,7 +55352,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20327:1: ')'
             {
              before(grammarAccess.getInSemanticsRuleAccess().getRightParenthesisKeyword_3_1_1_3()); 
-            match(input,47,FOLLOW_47_in_rule__InSemanticsRule__Group_3_1_1__3__Impl41083); 
+            match(input,47,FOLLOW_47_in_rule__InSemanticsRule__Group_3_1_1__3__Impl41084); 
              after(grammarAccess.getInSemanticsRuleAccess().getRightParenthesisKeyword_3_1_1_3()); 
 
             }
@@ -55374,12 +55385,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20352:1: ( rule__InSemanticsRule__Group_3_1_1_2__0__Impl rule__InSemanticsRule__Group_3_1_1_2__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20353:2: rule__InSemanticsRule__Group_3_1_1_2__0__Impl rule__InSemanticsRule__Group_3_1_1_2__1
             {
-            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1_2__0__Impl_in_rule__InSemanticsRule__Group_3_1_1_2__041122);
+            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1_2__0__Impl_in_rule__InSemanticsRule__Group_3_1_1_2__041123);
             rule__InSemanticsRule__Group_3_1_1_2__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1_2__1_in_rule__InSemanticsRule__Group_3_1_1_2__041125);
+            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1_2__1_in_rule__InSemanticsRule__Group_3_1_1_2__041126);
             rule__InSemanticsRule__Group_3_1_1_2__1();
 
             state._fsp--;
@@ -55416,7 +55427,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20366:1: ','
             {
              before(grammarAccess.getInSemanticsRuleAccess().getCommaKeyword_3_1_1_2_0()); 
-            match(input,50,FOLLOW_50_in_rule__InSemanticsRule__Group_3_1_1_2__0__Impl41153); 
+            match(input,50,FOLLOW_50_in_rule__InSemanticsRule__Group_3_1_1_2__0__Impl41154); 
              after(grammarAccess.getInSemanticsRuleAccess().getCommaKeyword_3_1_1_2_0()); 
 
             }
@@ -55449,7 +55460,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20383:1: ( rule__InSemanticsRule__Group_3_1_1_2__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20384:2: rule__InSemanticsRule__Group_3_1_1_2__1__Impl
             {
-            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1_2__1__Impl_in_rule__InSemanticsRule__Group_3_1_1_2__141184);
+            pushFollow(FOLLOW_rule__InSemanticsRule__Group_3_1_1_2__1__Impl_in_rule__InSemanticsRule__Group_3_1_1_2__141185);
             rule__InSemanticsRule__Group_3_1_1_2__1__Impl();
 
             state._fsp--;
@@ -55489,7 +55500,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20397:1: ( rule__InSemanticsRule__FollowUpsAssignment_3_1_1_2_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20397:2: rule__InSemanticsRule__FollowUpsAssignment_3_1_1_2_1
             {
-            pushFollow(FOLLOW_rule__InSemanticsRule__FollowUpsAssignment_3_1_1_2_1_in_rule__InSemanticsRule__Group_3_1_1_2__1__Impl41211);
+            pushFollow(FOLLOW_rule__InSemanticsRule__FollowUpsAssignment_3_1_1_2_1_in_rule__InSemanticsRule__Group_3_1_1_2__1__Impl41212);
             rule__InSemanticsRule__FollowUpsAssignment_3_1_1_2_1();
 
             state._fsp--;
@@ -55529,12 +55540,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20415:1: ( rule__OutSemanticsRule__Group__0__Impl rule__OutSemanticsRule__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20416:2: rule__OutSemanticsRule__Group__0__Impl rule__OutSemanticsRule__Group__1
             {
-            pushFollow(FOLLOW_rule__OutSemanticsRule__Group__0__Impl_in_rule__OutSemanticsRule__Group__041245);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__Group__0__Impl_in_rule__OutSemanticsRule__Group__041246);
             rule__OutSemanticsRule__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__OutSemanticsRule__Group__1_in_rule__OutSemanticsRule__Group__041248);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__Group__1_in_rule__OutSemanticsRule__Group__041249);
             rule__OutSemanticsRule__Group__1();
 
             state._fsp--;
@@ -55571,7 +55582,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20429:1: 'out'
             {
              before(grammarAccess.getOutSemanticsRuleAccess().getOutKeyword_0()); 
-            match(input,118,FOLLOW_118_in_rule__OutSemanticsRule__Group__0__Impl41276); 
+            match(input,118,FOLLOW_118_in_rule__OutSemanticsRule__Group__0__Impl41277); 
              after(grammarAccess.getOutSemanticsRuleAccess().getOutKeyword_0()); 
 
             }
@@ -55604,12 +55615,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20446:1: ( rule__OutSemanticsRule__Group__1__Impl rule__OutSemanticsRule__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20447:2: rule__OutSemanticsRule__Group__1__Impl rule__OutSemanticsRule__Group__2
             {
-            pushFollow(FOLLOW_rule__OutSemanticsRule__Group__1__Impl_in_rule__OutSemanticsRule__Group__141307);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__Group__1__Impl_in_rule__OutSemanticsRule__Group__141308);
             rule__OutSemanticsRule__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__OutSemanticsRule__Group__2_in_rule__OutSemanticsRule__Group__141310);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__Group__2_in_rule__OutSemanticsRule__Group__141311);
             rule__OutSemanticsRule__Group__2();
 
             state._fsp--;
@@ -55646,7 +55657,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20460:1: ':'
             {
              before(grammarAccess.getOutSemanticsRuleAccess().getColonKeyword_1()); 
-            match(input,42,FOLLOW_42_in_rule__OutSemanticsRule__Group__1__Impl41338); 
+            match(input,42,FOLLOW_42_in_rule__OutSemanticsRule__Group__1__Impl41339); 
              after(grammarAccess.getOutSemanticsRuleAccess().getColonKeyword_1()); 
 
             }
@@ -55679,12 +55690,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20477:1: ( rule__OutSemanticsRule__Group__2__Impl rule__OutSemanticsRule__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20478:2: rule__OutSemanticsRule__Group__2__Impl rule__OutSemanticsRule__Group__3
             {
-            pushFollow(FOLLOW_rule__OutSemanticsRule__Group__2__Impl_in_rule__OutSemanticsRule__Group__241369);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__Group__2__Impl_in_rule__OutSemanticsRule__Group__241370);
             rule__OutSemanticsRule__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__OutSemanticsRule__Group__3_in_rule__OutSemanticsRule__Group__241372);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__Group__3_in_rule__OutSemanticsRule__Group__241373);
             rule__OutSemanticsRule__Group__3();
 
             state._fsp--;
@@ -55724,7 +55735,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20492:1: ( rule__OutSemanticsRule__MsgAssignment_2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20492:2: rule__OutSemanticsRule__MsgAssignment_2
             {
-            pushFollow(FOLLOW_rule__OutSemanticsRule__MsgAssignment_2_in_rule__OutSemanticsRule__Group__2__Impl41399);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__MsgAssignment_2_in_rule__OutSemanticsRule__Group__2__Impl41400);
             rule__OutSemanticsRule__MsgAssignment_2();
 
             state._fsp--;
@@ -55764,7 +55775,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20506:1: ( rule__OutSemanticsRule__Group__3__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20507:2: rule__OutSemanticsRule__Group__3__Impl
             {
-            pushFollow(FOLLOW_rule__OutSemanticsRule__Group__3__Impl_in_rule__OutSemanticsRule__Group__341429);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__Group__3__Impl_in_rule__OutSemanticsRule__Group__341430);
             rule__OutSemanticsRule__Group__3__Impl();
 
             state._fsp--;
@@ -55802,17 +55813,17 @@
             {
              before(grammarAccess.getOutSemanticsRuleAccess().getGroup_3()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20520:1: ( rule__OutSemanticsRule__Group_3__0 )?
-            int alt186=2;
-            int LA186_0 = input.LA(1);
+            int alt187=2;
+            int LA187_0 = input.LA(1);
 
-            if ( (LA186_0==44) ) {
-                alt186=1;
+            if ( (LA187_0==44) ) {
+                alt187=1;
             }
-            switch (alt186) {
+            switch (alt187) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20520:2: rule__OutSemanticsRule__Group_3__0
                     {
-                    pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3__0_in_rule__OutSemanticsRule__Group__3__Impl41456);
+                    pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3__0_in_rule__OutSemanticsRule__Group__3__Impl41457);
                     rule__OutSemanticsRule__Group_3__0();
 
                     state._fsp--;
@@ -55855,12 +55866,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20542:1: ( rule__OutSemanticsRule__Group_3__0__Impl rule__OutSemanticsRule__Group_3__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20543:2: rule__OutSemanticsRule__Group_3__0__Impl rule__OutSemanticsRule__Group_3__1
             {
-            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3__0__Impl_in_rule__OutSemanticsRule__Group_3__041495);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3__0__Impl_in_rule__OutSemanticsRule__Group_3__041496);
             rule__OutSemanticsRule__Group_3__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3__1_in_rule__OutSemanticsRule__Group_3__041498);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3__1_in_rule__OutSemanticsRule__Group_3__041499);
             rule__OutSemanticsRule__Group_3__1();
 
             state._fsp--;
@@ -55897,7 +55908,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20556:1: '->'
             {
              before(grammarAccess.getOutSemanticsRuleAccess().getHyphenMinusGreaterThanSignKeyword_3_0()); 
-            match(input,44,FOLLOW_44_in_rule__OutSemanticsRule__Group_3__0__Impl41526); 
+            match(input,44,FOLLOW_44_in_rule__OutSemanticsRule__Group_3__0__Impl41527); 
              after(grammarAccess.getOutSemanticsRuleAccess().getHyphenMinusGreaterThanSignKeyword_3_0()); 
 
             }
@@ -55930,7 +55941,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20573:1: ( rule__OutSemanticsRule__Group_3__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20574:2: rule__OutSemanticsRule__Group_3__1__Impl
             {
-            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3__1__Impl_in_rule__OutSemanticsRule__Group_3__141557);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3__1__Impl_in_rule__OutSemanticsRule__Group_3__141558);
             rule__OutSemanticsRule__Group_3__1__Impl();
 
             state._fsp--;
@@ -55970,7 +55981,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20587:1: ( rule__OutSemanticsRule__Alternatives_3_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20587:2: rule__OutSemanticsRule__Alternatives_3_1
             {
-            pushFollow(FOLLOW_rule__OutSemanticsRule__Alternatives_3_1_in_rule__OutSemanticsRule__Group_3__1__Impl41584);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__Alternatives_3_1_in_rule__OutSemanticsRule__Group_3__1__Impl41585);
             rule__OutSemanticsRule__Alternatives_3_1();
 
             state._fsp--;
@@ -56010,12 +56021,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20605:1: ( rule__OutSemanticsRule__Group_3_1_1__0__Impl rule__OutSemanticsRule__Group_3_1_1__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20606:2: rule__OutSemanticsRule__Group_3_1_1__0__Impl rule__OutSemanticsRule__Group_3_1_1__1
             {
-            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1__0__Impl_in_rule__OutSemanticsRule__Group_3_1_1__041618);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1__0__Impl_in_rule__OutSemanticsRule__Group_3_1_1__041619);
             rule__OutSemanticsRule__Group_3_1_1__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1__1_in_rule__OutSemanticsRule__Group_3_1_1__041621);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1__1_in_rule__OutSemanticsRule__Group_3_1_1__041622);
             rule__OutSemanticsRule__Group_3_1_1__1();
 
             state._fsp--;
@@ -56052,7 +56063,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20619:1: '('
             {
              before(grammarAccess.getOutSemanticsRuleAccess().getLeftParenthesisKeyword_3_1_1_0()); 
-            match(input,46,FOLLOW_46_in_rule__OutSemanticsRule__Group_3_1_1__0__Impl41649); 
+            match(input,46,FOLLOW_46_in_rule__OutSemanticsRule__Group_3_1_1__0__Impl41650); 
              after(grammarAccess.getOutSemanticsRuleAccess().getLeftParenthesisKeyword_3_1_1_0()); 
 
             }
@@ -56085,12 +56096,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20636:1: ( rule__OutSemanticsRule__Group_3_1_1__1__Impl rule__OutSemanticsRule__Group_3_1_1__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20637:2: rule__OutSemanticsRule__Group_3_1_1__1__Impl rule__OutSemanticsRule__Group_3_1_1__2
             {
-            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1__1__Impl_in_rule__OutSemanticsRule__Group_3_1_1__141680);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1__1__Impl_in_rule__OutSemanticsRule__Group_3_1_1__141681);
             rule__OutSemanticsRule__Group_3_1_1__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1__2_in_rule__OutSemanticsRule__Group_3_1_1__141683);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1__2_in_rule__OutSemanticsRule__Group_3_1_1__141684);
             rule__OutSemanticsRule__Group_3_1_1__2();
 
             state._fsp--;
@@ -56130,7 +56141,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20651:1: ( rule__OutSemanticsRule__FollowUpsAssignment_3_1_1_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20651:2: rule__OutSemanticsRule__FollowUpsAssignment_3_1_1_1
             {
-            pushFollow(FOLLOW_rule__OutSemanticsRule__FollowUpsAssignment_3_1_1_1_in_rule__OutSemanticsRule__Group_3_1_1__1__Impl41710);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__FollowUpsAssignment_3_1_1_1_in_rule__OutSemanticsRule__Group_3_1_1__1__Impl41711);
             rule__OutSemanticsRule__FollowUpsAssignment_3_1_1_1();
 
             state._fsp--;
@@ -56170,12 +56181,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20665:1: ( rule__OutSemanticsRule__Group_3_1_1__2__Impl rule__OutSemanticsRule__Group_3_1_1__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20666:2: rule__OutSemanticsRule__Group_3_1_1__2__Impl rule__OutSemanticsRule__Group_3_1_1__3
             {
-            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1__2__Impl_in_rule__OutSemanticsRule__Group_3_1_1__241740);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1__2__Impl_in_rule__OutSemanticsRule__Group_3_1_1__241741);
             rule__OutSemanticsRule__Group_3_1_1__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1__3_in_rule__OutSemanticsRule__Group_3_1_1__241743);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1__3_in_rule__OutSemanticsRule__Group_3_1_1__241744);
             rule__OutSemanticsRule__Group_3_1_1__3();
 
             state._fsp--;
@@ -56218,7 +56229,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20681:1: ( rule__OutSemanticsRule__Group_3_1_1_2__0 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20681:2: rule__OutSemanticsRule__Group_3_1_1_2__0
             {
-            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1_2__0_in_rule__OutSemanticsRule__Group_3_1_1__2__Impl41772);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1_2__0_in_rule__OutSemanticsRule__Group_3_1_1__2__Impl41773);
             rule__OutSemanticsRule__Group_3_1_1_2__0();
 
             state._fsp--;
@@ -56235,21 +56246,21 @@
             {
              before(grammarAccess.getOutSemanticsRuleAccess().getGroup_3_1_1_2()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20686:1: ( rule__OutSemanticsRule__Group_3_1_1_2__0 )*
-            loop187:
+            loop188:
             do {
-                int alt187=2;
-                int LA187_0 = input.LA(1);
+                int alt188=2;
+                int LA188_0 = input.LA(1);
 
-                if ( (LA187_0==50) ) {
-                    alt187=1;
+                if ( (LA188_0==50) ) {
+                    alt188=1;
                 }
 
 
-                switch (alt187) {
+                switch (alt188) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20686:2: rule__OutSemanticsRule__Group_3_1_1_2__0
             	    {
-            	    pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1_2__0_in_rule__OutSemanticsRule__Group_3_1_1__2__Impl41784);
+            	    pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1_2__0_in_rule__OutSemanticsRule__Group_3_1_1__2__Impl41785);
             	    rule__OutSemanticsRule__Group_3_1_1_2__0();
 
             	    state._fsp--;
@@ -56259,7 +56270,7 @@
             	    break;
 
             	default :
-            	    break loop187;
+            	    break loop188;
                 }
             } while (true);
 
@@ -56298,7 +56309,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20701:1: ( rule__OutSemanticsRule__Group_3_1_1__3__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20702:2: rule__OutSemanticsRule__Group_3_1_1__3__Impl
             {
-            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1__3__Impl_in_rule__OutSemanticsRule__Group_3_1_1__341817);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1__3__Impl_in_rule__OutSemanticsRule__Group_3_1_1__341818);
             rule__OutSemanticsRule__Group_3_1_1__3__Impl();
 
             state._fsp--;
@@ -56335,7 +56346,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20714:1: ')'
             {
              before(grammarAccess.getOutSemanticsRuleAccess().getRightParenthesisKeyword_3_1_1_3()); 
-            match(input,47,FOLLOW_47_in_rule__OutSemanticsRule__Group_3_1_1__3__Impl41845); 
+            match(input,47,FOLLOW_47_in_rule__OutSemanticsRule__Group_3_1_1__3__Impl41846); 
              after(grammarAccess.getOutSemanticsRuleAccess().getRightParenthesisKeyword_3_1_1_3()); 
 
             }
@@ -56368,12 +56379,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20739:1: ( rule__OutSemanticsRule__Group_3_1_1_2__0__Impl rule__OutSemanticsRule__Group_3_1_1_2__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20740:2: rule__OutSemanticsRule__Group_3_1_1_2__0__Impl rule__OutSemanticsRule__Group_3_1_1_2__1
             {
-            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1_2__0__Impl_in_rule__OutSemanticsRule__Group_3_1_1_2__041884);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1_2__0__Impl_in_rule__OutSemanticsRule__Group_3_1_1_2__041885);
             rule__OutSemanticsRule__Group_3_1_1_2__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1_2__1_in_rule__OutSemanticsRule__Group_3_1_1_2__041887);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1_2__1_in_rule__OutSemanticsRule__Group_3_1_1_2__041888);
             rule__OutSemanticsRule__Group_3_1_1_2__1();
 
             state._fsp--;
@@ -56410,7 +56421,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20753:1: ','
             {
              before(grammarAccess.getOutSemanticsRuleAccess().getCommaKeyword_3_1_1_2_0()); 
-            match(input,50,FOLLOW_50_in_rule__OutSemanticsRule__Group_3_1_1_2__0__Impl41915); 
+            match(input,50,FOLLOW_50_in_rule__OutSemanticsRule__Group_3_1_1_2__0__Impl41916); 
              after(grammarAccess.getOutSemanticsRuleAccess().getCommaKeyword_3_1_1_2_0()); 
 
             }
@@ -56443,7 +56454,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20770:1: ( rule__OutSemanticsRule__Group_3_1_1_2__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20771:2: rule__OutSemanticsRule__Group_3_1_1_2__1__Impl
             {
-            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1_2__1__Impl_in_rule__OutSemanticsRule__Group_3_1_1_2__141946);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__Group_3_1_1_2__1__Impl_in_rule__OutSemanticsRule__Group_3_1_1_2__141947);
             rule__OutSemanticsRule__Group_3_1_1_2__1__Impl();
 
             state._fsp--;
@@ -56483,7 +56494,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20784:1: ( rule__OutSemanticsRule__FollowUpsAssignment_3_1_1_2_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20784:2: rule__OutSemanticsRule__FollowUpsAssignment_3_1_1_2_1
             {
-            pushFollow(FOLLOW_rule__OutSemanticsRule__FollowUpsAssignment_3_1_1_2_1_in_rule__OutSemanticsRule__Group_3_1_1_2__1__Impl41973);
+            pushFollow(FOLLOW_rule__OutSemanticsRule__FollowUpsAssignment_3_1_1_2_1_in_rule__OutSemanticsRule__Group_3_1_1_2__1__Impl41974);
             rule__OutSemanticsRule__FollowUpsAssignment_3_1_1_2_1();
 
             state._fsp--;
@@ -56523,12 +56534,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20802:1: ( rule__Annotation__Group__0__Impl rule__Annotation__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20803:2: rule__Annotation__Group__0__Impl rule__Annotation__Group__1
             {
-            pushFollow(FOLLOW_rule__Annotation__Group__0__Impl_in_rule__Annotation__Group__042007);
+            pushFollow(FOLLOW_rule__Annotation__Group__0__Impl_in_rule__Annotation__Group__042008);
             rule__Annotation__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Annotation__Group__1_in_rule__Annotation__Group__042010);
+            pushFollow(FOLLOW_rule__Annotation__Group__1_in_rule__Annotation__Group__042011);
             rule__Annotation__Group__1();
 
             state._fsp--;
@@ -56565,7 +56576,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20816:1: '@'
             {
              before(grammarAccess.getAnnotationAccess().getCommercialAtKeyword_0()); 
-            match(input,119,FOLLOW_119_in_rule__Annotation__Group__0__Impl42038); 
+            match(input,119,FOLLOW_119_in_rule__Annotation__Group__0__Impl42039); 
              after(grammarAccess.getAnnotationAccess().getCommercialAtKeyword_0()); 
 
             }
@@ -56598,12 +56609,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20833:1: ( rule__Annotation__Group__1__Impl rule__Annotation__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20834:2: rule__Annotation__Group__1__Impl rule__Annotation__Group__2
             {
-            pushFollow(FOLLOW_rule__Annotation__Group__1__Impl_in_rule__Annotation__Group__142069);
+            pushFollow(FOLLOW_rule__Annotation__Group__1__Impl_in_rule__Annotation__Group__142070);
             rule__Annotation__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Annotation__Group__2_in_rule__Annotation__Group__142072);
+            pushFollow(FOLLOW_rule__Annotation__Group__2_in_rule__Annotation__Group__142073);
             rule__Annotation__Group__2();
 
             state._fsp--;
@@ -56643,7 +56654,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20848:1: ( rule__Annotation__TypeAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20848:2: rule__Annotation__TypeAssignment_1
             {
-            pushFollow(FOLLOW_rule__Annotation__TypeAssignment_1_in_rule__Annotation__Group__1__Impl42099);
+            pushFollow(FOLLOW_rule__Annotation__TypeAssignment_1_in_rule__Annotation__Group__1__Impl42100);
             rule__Annotation__TypeAssignment_1();
 
             state._fsp--;
@@ -56683,7 +56694,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20862:1: ( rule__Annotation__Group__2__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20863:2: rule__Annotation__Group__2__Impl
             {
-            pushFollow(FOLLOW_rule__Annotation__Group__2__Impl_in_rule__Annotation__Group__242129);
+            pushFollow(FOLLOW_rule__Annotation__Group__2__Impl_in_rule__Annotation__Group__242130);
             rule__Annotation__Group__2__Impl();
 
             state._fsp--;
@@ -56721,17 +56732,17 @@
             {
              before(grammarAccess.getAnnotationAccess().getGroup_2()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20876:1: ( rule__Annotation__Group_2__0 )?
-            int alt188=2;
-            int LA188_0 = input.LA(1);
+            int alt189=2;
+            int LA189_0 = input.LA(1);
 
-            if ( (LA188_0==46) ) {
-                alt188=1;
+            if ( (LA189_0==46) ) {
+                alt189=1;
             }
-            switch (alt188) {
+            switch (alt189) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20876:2: rule__Annotation__Group_2__0
                     {
-                    pushFollow(FOLLOW_rule__Annotation__Group_2__0_in_rule__Annotation__Group__2__Impl42156);
+                    pushFollow(FOLLOW_rule__Annotation__Group_2__0_in_rule__Annotation__Group__2__Impl42157);
                     rule__Annotation__Group_2__0();
 
                     state._fsp--;
@@ -56774,12 +56785,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20896:1: ( rule__Annotation__Group_2__0__Impl rule__Annotation__Group_2__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20897:2: rule__Annotation__Group_2__0__Impl rule__Annotation__Group_2__1
             {
-            pushFollow(FOLLOW_rule__Annotation__Group_2__0__Impl_in_rule__Annotation__Group_2__042193);
+            pushFollow(FOLLOW_rule__Annotation__Group_2__0__Impl_in_rule__Annotation__Group_2__042194);
             rule__Annotation__Group_2__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Annotation__Group_2__1_in_rule__Annotation__Group_2__042196);
+            pushFollow(FOLLOW_rule__Annotation__Group_2__1_in_rule__Annotation__Group_2__042197);
             rule__Annotation__Group_2__1();
 
             state._fsp--;
@@ -56816,7 +56827,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20910:1: '('
             {
              before(grammarAccess.getAnnotationAccess().getLeftParenthesisKeyword_2_0()); 
-            match(input,46,FOLLOW_46_in_rule__Annotation__Group_2__0__Impl42224); 
+            match(input,46,FOLLOW_46_in_rule__Annotation__Group_2__0__Impl42225); 
              after(grammarAccess.getAnnotationAccess().getLeftParenthesisKeyword_2_0()); 
 
             }
@@ -56849,12 +56860,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20927:1: ( rule__Annotation__Group_2__1__Impl rule__Annotation__Group_2__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20928:2: rule__Annotation__Group_2__1__Impl rule__Annotation__Group_2__2
             {
-            pushFollow(FOLLOW_rule__Annotation__Group_2__1__Impl_in_rule__Annotation__Group_2__142255);
+            pushFollow(FOLLOW_rule__Annotation__Group_2__1__Impl_in_rule__Annotation__Group_2__142256);
             rule__Annotation__Group_2__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Annotation__Group_2__2_in_rule__Annotation__Group_2__142258);
+            pushFollow(FOLLOW_rule__Annotation__Group_2__2_in_rule__Annotation__Group_2__142259);
             rule__Annotation__Group_2__2();
 
             state._fsp--;
@@ -56894,7 +56905,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20942:1: ( rule__Annotation__AttributesAssignment_2_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20942:2: rule__Annotation__AttributesAssignment_2_1
             {
-            pushFollow(FOLLOW_rule__Annotation__AttributesAssignment_2_1_in_rule__Annotation__Group_2__1__Impl42285);
+            pushFollow(FOLLOW_rule__Annotation__AttributesAssignment_2_1_in_rule__Annotation__Group_2__1__Impl42286);
             rule__Annotation__AttributesAssignment_2_1();
 
             state._fsp--;
@@ -56934,12 +56945,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20956:1: ( rule__Annotation__Group_2__2__Impl rule__Annotation__Group_2__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20957:2: rule__Annotation__Group_2__2__Impl rule__Annotation__Group_2__3
             {
-            pushFollow(FOLLOW_rule__Annotation__Group_2__2__Impl_in_rule__Annotation__Group_2__242315);
+            pushFollow(FOLLOW_rule__Annotation__Group_2__2__Impl_in_rule__Annotation__Group_2__242316);
             rule__Annotation__Group_2__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Annotation__Group_2__3_in_rule__Annotation__Group_2__242318);
+            pushFollow(FOLLOW_rule__Annotation__Group_2__3_in_rule__Annotation__Group_2__242319);
             rule__Annotation__Group_2__3();
 
             state._fsp--;
@@ -56977,21 +56988,21 @@
             {
              before(grammarAccess.getAnnotationAccess().getGroup_2_2()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20971:1: ( rule__Annotation__Group_2_2__0 )*
-            loop189:
+            loop190:
             do {
-                int alt189=2;
-                int LA189_0 = input.LA(1);
+                int alt190=2;
+                int LA190_0 = input.LA(1);
 
-                if ( (LA189_0==50) ) {
-                    alt189=1;
+                if ( (LA190_0==50) ) {
+                    alt190=1;
                 }
 
 
-                switch (alt189) {
+                switch (alt190) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20971:2: rule__Annotation__Group_2_2__0
             	    {
-            	    pushFollow(FOLLOW_rule__Annotation__Group_2_2__0_in_rule__Annotation__Group_2__2__Impl42345);
+            	    pushFollow(FOLLOW_rule__Annotation__Group_2_2__0_in_rule__Annotation__Group_2__2__Impl42346);
             	    rule__Annotation__Group_2_2__0();
 
             	    state._fsp--;
@@ -57001,7 +57012,7 @@
             	    break;
 
             	default :
-            	    break loop189;
+            	    break loop190;
                 }
             } while (true);
 
@@ -57037,7 +57048,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20985:1: ( rule__Annotation__Group_2__3__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20986:2: rule__Annotation__Group_2__3__Impl
             {
-            pushFollow(FOLLOW_rule__Annotation__Group_2__3__Impl_in_rule__Annotation__Group_2__342376);
+            pushFollow(FOLLOW_rule__Annotation__Group_2__3__Impl_in_rule__Annotation__Group_2__342377);
             rule__Annotation__Group_2__3__Impl();
 
             state._fsp--;
@@ -57074,7 +57085,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:20998:1: ')'
             {
              before(grammarAccess.getAnnotationAccess().getRightParenthesisKeyword_2_3()); 
-            match(input,47,FOLLOW_47_in_rule__Annotation__Group_2__3__Impl42404); 
+            match(input,47,FOLLOW_47_in_rule__Annotation__Group_2__3__Impl42405); 
              after(grammarAccess.getAnnotationAccess().getRightParenthesisKeyword_2_3()); 
 
             }
@@ -57107,12 +57118,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21023:1: ( rule__Annotation__Group_2_2__0__Impl rule__Annotation__Group_2_2__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21024:2: rule__Annotation__Group_2_2__0__Impl rule__Annotation__Group_2_2__1
             {
-            pushFollow(FOLLOW_rule__Annotation__Group_2_2__0__Impl_in_rule__Annotation__Group_2_2__042443);
+            pushFollow(FOLLOW_rule__Annotation__Group_2_2__0__Impl_in_rule__Annotation__Group_2_2__042444);
             rule__Annotation__Group_2_2__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Annotation__Group_2_2__1_in_rule__Annotation__Group_2_2__042446);
+            pushFollow(FOLLOW_rule__Annotation__Group_2_2__1_in_rule__Annotation__Group_2_2__042447);
             rule__Annotation__Group_2_2__1();
 
             state._fsp--;
@@ -57149,7 +57160,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21037:1: ','
             {
              before(grammarAccess.getAnnotationAccess().getCommaKeyword_2_2_0()); 
-            match(input,50,FOLLOW_50_in_rule__Annotation__Group_2_2__0__Impl42474); 
+            match(input,50,FOLLOW_50_in_rule__Annotation__Group_2_2__0__Impl42475); 
              after(grammarAccess.getAnnotationAccess().getCommaKeyword_2_2_0()); 
 
             }
@@ -57182,7 +57193,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21054:1: ( rule__Annotation__Group_2_2__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21055:2: rule__Annotation__Group_2_2__1__Impl
             {
-            pushFollow(FOLLOW_rule__Annotation__Group_2_2__1__Impl_in_rule__Annotation__Group_2_2__142505);
+            pushFollow(FOLLOW_rule__Annotation__Group_2_2__1__Impl_in_rule__Annotation__Group_2_2__142506);
             rule__Annotation__Group_2_2__1__Impl();
 
             state._fsp--;
@@ -57222,7 +57233,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21068:1: ( rule__Annotation__AttributesAssignment_2_2_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21068:2: rule__Annotation__AttributesAssignment_2_2_1
             {
-            pushFollow(FOLLOW_rule__Annotation__AttributesAssignment_2_2_1_in_rule__Annotation__Group_2_2__1__Impl42532);
+            pushFollow(FOLLOW_rule__Annotation__AttributesAssignment_2_2_1_in_rule__Annotation__Group_2_2__1__Impl42533);
             rule__Annotation__AttributesAssignment_2_2_1();
 
             state._fsp--;
@@ -57262,12 +57273,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21086:1: ( rule__KeyValue__Group__0__Impl rule__KeyValue__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21087:2: rule__KeyValue__Group__0__Impl rule__KeyValue__Group__1
             {
-            pushFollow(FOLLOW_rule__KeyValue__Group__0__Impl_in_rule__KeyValue__Group__042566);
+            pushFollow(FOLLOW_rule__KeyValue__Group__0__Impl_in_rule__KeyValue__Group__042567);
             rule__KeyValue__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__KeyValue__Group__1_in_rule__KeyValue__Group__042569);
+            pushFollow(FOLLOW_rule__KeyValue__Group__1_in_rule__KeyValue__Group__042570);
             rule__KeyValue__Group__1();
 
             state._fsp--;
@@ -57307,7 +57318,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21101:1: ( rule__KeyValue__KeyAssignment_0 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21101:2: rule__KeyValue__KeyAssignment_0
             {
-            pushFollow(FOLLOW_rule__KeyValue__KeyAssignment_0_in_rule__KeyValue__Group__0__Impl42596);
+            pushFollow(FOLLOW_rule__KeyValue__KeyAssignment_0_in_rule__KeyValue__Group__0__Impl42597);
             rule__KeyValue__KeyAssignment_0();
 
             state._fsp--;
@@ -57347,12 +57358,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21115:1: ( rule__KeyValue__Group__1__Impl rule__KeyValue__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21116:2: rule__KeyValue__Group__1__Impl rule__KeyValue__Group__2
             {
-            pushFollow(FOLLOW_rule__KeyValue__Group__1__Impl_in_rule__KeyValue__Group__142626);
+            pushFollow(FOLLOW_rule__KeyValue__Group__1__Impl_in_rule__KeyValue__Group__142627);
             rule__KeyValue__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__KeyValue__Group__2_in_rule__KeyValue__Group__142629);
+            pushFollow(FOLLOW_rule__KeyValue__Group__2_in_rule__KeyValue__Group__142630);
             rule__KeyValue__Group__2();
 
             state._fsp--;
@@ -57389,7 +57400,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21129:1: '='
             {
              before(grammarAccess.getKeyValueAccess().getEqualsSignKeyword_1()); 
-            match(input,51,FOLLOW_51_in_rule__KeyValue__Group__1__Impl42657); 
+            match(input,51,FOLLOW_51_in_rule__KeyValue__Group__1__Impl42658); 
              after(grammarAccess.getKeyValueAccess().getEqualsSignKeyword_1()); 
 
             }
@@ -57422,7 +57433,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21146:1: ( rule__KeyValue__Group__2__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21147:2: rule__KeyValue__Group__2__Impl
             {
-            pushFollow(FOLLOW_rule__KeyValue__Group__2__Impl_in_rule__KeyValue__Group__242688);
+            pushFollow(FOLLOW_rule__KeyValue__Group__2__Impl_in_rule__KeyValue__Group__242689);
             rule__KeyValue__Group__2__Impl();
 
             state._fsp--;
@@ -57462,7 +57473,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21160:1: ( rule__KeyValue__ValueAssignment_2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21160:2: rule__KeyValue__ValueAssignment_2
             {
-            pushFollow(FOLLOW_rule__KeyValue__ValueAssignment_2_in_rule__KeyValue__Group__2__Impl42715);
+            pushFollow(FOLLOW_rule__KeyValue__ValueAssignment_2_in_rule__KeyValue__Group__2__Impl42716);
             rule__KeyValue__ValueAssignment_2();
 
             state._fsp--;
@@ -57502,12 +57513,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21180:1: ( rule__AnnotationType__Group__0__Impl rule__AnnotationType__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21181:2: rule__AnnotationType__Group__0__Impl rule__AnnotationType__Group__1
             {
-            pushFollow(FOLLOW_rule__AnnotationType__Group__0__Impl_in_rule__AnnotationType__Group__042751);
+            pushFollow(FOLLOW_rule__AnnotationType__Group__0__Impl_in_rule__AnnotationType__Group__042752);
             rule__AnnotationType__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__AnnotationType__Group__1_in_rule__AnnotationType__Group__042754);
+            pushFollow(FOLLOW_rule__AnnotationType__Group__1_in_rule__AnnotationType__Group__042755);
             rule__AnnotationType__Group__1();
 
             state._fsp--;
@@ -57544,7 +57555,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21194:1: 'AnnotationType'
             {
              before(grammarAccess.getAnnotationTypeAccess().getAnnotationTypeKeyword_0()); 
-            match(input,120,FOLLOW_120_in_rule__AnnotationType__Group__0__Impl42782); 
+            match(input,120,FOLLOW_120_in_rule__AnnotationType__Group__0__Impl42783); 
              after(grammarAccess.getAnnotationTypeAccess().getAnnotationTypeKeyword_0()); 
 
             }
@@ -57577,12 +57588,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21211:1: ( rule__AnnotationType__Group__1__Impl rule__AnnotationType__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21212:2: rule__AnnotationType__Group__1__Impl rule__AnnotationType__Group__2
             {
-            pushFollow(FOLLOW_rule__AnnotationType__Group__1__Impl_in_rule__AnnotationType__Group__142813);
+            pushFollow(FOLLOW_rule__AnnotationType__Group__1__Impl_in_rule__AnnotationType__Group__142814);
             rule__AnnotationType__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__AnnotationType__Group__2_in_rule__AnnotationType__Group__142816);
+            pushFollow(FOLLOW_rule__AnnotationType__Group__2_in_rule__AnnotationType__Group__142817);
             rule__AnnotationType__Group__2();
 
             state._fsp--;
@@ -57622,7 +57633,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21226:1: ( rule__AnnotationType__NameAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21226:2: rule__AnnotationType__NameAssignment_1
             {
-            pushFollow(FOLLOW_rule__AnnotationType__NameAssignment_1_in_rule__AnnotationType__Group__1__Impl42843);
+            pushFollow(FOLLOW_rule__AnnotationType__NameAssignment_1_in_rule__AnnotationType__Group__1__Impl42844);
             rule__AnnotationType__NameAssignment_1();
 
             state._fsp--;
@@ -57662,12 +57673,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21240:1: ( rule__AnnotationType__Group__2__Impl rule__AnnotationType__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21241:2: rule__AnnotationType__Group__2__Impl rule__AnnotationType__Group__3
             {
-            pushFollow(FOLLOW_rule__AnnotationType__Group__2__Impl_in_rule__AnnotationType__Group__242873);
+            pushFollow(FOLLOW_rule__AnnotationType__Group__2__Impl_in_rule__AnnotationType__Group__242874);
             rule__AnnotationType__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__AnnotationType__Group__3_in_rule__AnnotationType__Group__242876);
+            pushFollow(FOLLOW_rule__AnnotationType__Group__3_in_rule__AnnotationType__Group__242877);
             rule__AnnotationType__Group__3();
 
             state._fsp--;
@@ -57705,17 +57716,17 @@
             {
              before(grammarAccess.getAnnotationTypeAccess().getDocuAssignment_2()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21255:1: ( rule__AnnotationType__DocuAssignment_2 )?
-            int alt190=2;
-            int LA190_0 = input.LA(1);
+            int alt191=2;
+            int LA191_0 = input.LA(1);
 
-            if ( (LA190_0==58) ) {
-                alt190=1;
+            if ( (LA191_0==58) ) {
+                alt191=1;
             }
-            switch (alt190) {
+            switch (alt191) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21255:2: rule__AnnotationType__DocuAssignment_2
                     {
-                    pushFollow(FOLLOW_rule__AnnotationType__DocuAssignment_2_in_rule__AnnotationType__Group__2__Impl42903);
+                    pushFollow(FOLLOW_rule__AnnotationType__DocuAssignment_2_in_rule__AnnotationType__Group__2__Impl42904);
                     rule__AnnotationType__DocuAssignment_2();
 
                     state._fsp--;
@@ -57758,12 +57769,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21269:1: ( rule__AnnotationType__Group__3__Impl rule__AnnotationType__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21270:2: rule__AnnotationType__Group__3__Impl rule__AnnotationType__Group__4
             {
-            pushFollow(FOLLOW_rule__AnnotationType__Group__3__Impl_in_rule__AnnotationType__Group__342934);
+            pushFollow(FOLLOW_rule__AnnotationType__Group__3__Impl_in_rule__AnnotationType__Group__342935);
             rule__AnnotationType__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__AnnotationType__Group__4_in_rule__AnnotationType__Group__342937);
+            pushFollow(FOLLOW_rule__AnnotationType__Group__4_in_rule__AnnotationType__Group__342938);
             rule__AnnotationType__Group__4();
 
             state._fsp--;
@@ -57800,7 +57811,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21283:1: '{'
             {
              before(grammarAccess.getAnnotationTypeAccess().getLeftCurlyBracketKeyword_3()); 
-            match(input,40,FOLLOW_40_in_rule__AnnotationType__Group__3__Impl42965); 
+            match(input,40,FOLLOW_40_in_rule__AnnotationType__Group__3__Impl42966); 
              after(grammarAccess.getAnnotationTypeAccess().getLeftCurlyBracketKeyword_3()); 
 
             }
@@ -57833,12 +57844,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21300:1: ( rule__AnnotationType__Group__4__Impl rule__AnnotationType__Group__5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21301:2: rule__AnnotationType__Group__4__Impl rule__AnnotationType__Group__5
             {
-            pushFollow(FOLLOW_rule__AnnotationType__Group__4__Impl_in_rule__AnnotationType__Group__442996);
+            pushFollow(FOLLOW_rule__AnnotationType__Group__4__Impl_in_rule__AnnotationType__Group__442997);
             rule__AnnotationType__Group__4__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__AnnotationType__Group__5_in_rule__AnnotationType__Group__442999);
+            pushFollow(FOLLOW_rule__AnnotationType__Group__5_in_rule__AnnotationType__Group__443000);
             rule__AnnotationType__Group__5();
 
             state._fsp--;
@@ -57875,7 +57886,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21314:1: 'target'
             {
              before(grammarAccess.getAnnotationTypeAccess().getTargetKeyword_4()); 
-            match(input,121,FOLLOW_121_in_rule__AnnotationType__Group__4__Impl43027); 
+            match(input,121,FOLLOW_121_in_rule__AnnotationType__Group__4__Impl43028); 
              after(grammarAccess.getAnnotationTypeAccess().getTargetKeyword_4()); 
 
             }
@@ -57908,12 +57919,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21331:1: ( rule__AnnotationType__Group__5__Impl rule__AnnotationType__Group__6 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21332:2: rule__AnnotationType__Group__5__Impl rule__AnnotationType__Group__6
             {
-            pushFollow(FOLLOW_rule__AnnotationType__Group__5__Impl_in_rule__AnnotationType__Group__543058);
+            pushFollow(FOLLOW_rule__AnnotationType__Group__5__Impl_in_rule__AnnotationType__Group__543059);
             rule__AnnotationType__Group__5__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__AnnotationType__Group__6_in_rule__AnnotationType__Group__543061);
+            pushFollow(FOLLOW_rule__AnnotationType__Group__6_in_rule__AnnotationType__Group__543062);
             rule__AnnotationType__Group__6();
 
             state._fsp--;
@@ -57950,7 +57961,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21345:1: '='
             {
              before(grammarAccess.getAnnotationTypeAccess().getEqualsSignKeyword_5()); 
-            match(input,51,FOLLOW_51_in_rule__AnnotationType__Group__5__Impl43089); 
+            match(input,51,FOLLOW_51_in_rule__AnnotationType__Group__5__Impl43090); 
              after(grammarAccess.getAnnotationTypeAccess().getEqualsSignKeyword_5()); 
 
             }
@@ -57983,12 +57994,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21362:1: ( rule__AnnotationType__Group__6__Impl rule__AnnotationType__Group__7 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21363:2: rule__AnnotationType__Group__6__Impl rule__AnnotationType__Group__7
             {
-            pushFollow(FOLLOW_rule__AnnotationType__Group__6__Impl_in_rule__AnnotationType__Group__643120);
+            pushFollow(FOLLOW_rule__AnnotationType__Group__6__Impl_in_rule__AnnotationType__Group__643121);
             rule__AnnotationType__Group__6__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__AnnotationType__Group__7_in_rule__AnnotationType__Group__643123);
+            pushFollow(FOLLOW_rule__AnnotationType__Group__7_in_rule__AnnotationType__Group__643124);
             rule__AnnotationType__Group__7();
 
             state._fsp--;
@@ -58028,7 +58039,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21377:1: ( rule__AnnotationType__Alternatives_6 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21377:2: rule__AnnotationType__Alternatives_6
             {
-            pushFollow(FOLLOW_rule__AnnotationType__Alternatives_6_in_rule__AnnotationType__Group__6__Impl43150);
+            pushFollow(FOLLOW_rule__AnnotationType__Alternatives_6_in_rule__AnnotationType__Group__6__Impl43151);
             rule__AnnotationType__Alternatives_6();
 
             state._fsp--;
@@ -58068,12 +58079,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21391:1: ( rule__AnnotationType__Group__7__Impl rule__AnnotationType__Group__8 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21392:2: rule__AnnotationType__Group__7__Impl rule__AnnotationType__Group__8
             {
-            pushFollow(FOLLOW_rule__AnnotationType__Group__7__Impl_in_rule__AnnotationType__Group__743180);
+            pushFollow(FOLLOW_rule__AnnotationType__Group__7__Impl_in_rule__AnnotationType__Group__743181);
             rule__AnnotationType__Group__7__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__AnnotationType__Group__8_in_rule__AnnotationType__Group__743183);
+            pushFollow(FOLLOW_rule__AnnotationType__Group__8_in_rule__AnnotationType__Group__743184);
             rule__AnnotationType__Group__8();
 
             state._fsp--;
@@ -58111,21 +58122,21 @@
             {
              before(grammarAccess.getAnnotationTypeAccess().getAttributesAssignment_7()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21406:1: ( rule__AnnotationType__AttributesAssignment_7 )*
-            loop191:
+            loop192:
             do {
-                int alt191=2;
-                int LA191_0 = input.LA(1);
+                int alt192=2;
+                int LA192_0 = input.LA(1);
 
-                if ( (LA191_0==24||LA191_0==33) ) {
-                    alt191=1;
+                if ( (LA192_0==24||LA192_0==33) ) {
+                    alt192=1;
                 }
 
 
-                switch (alt191) {
+                switch (alt192) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21406:2: rule__AnnotationType__AttributesAssignment_7
             	    {
-            	    pushFollow(FOLLOW_rule__AnnotationType__AttributesAssignment_7_in_rule__AnnotationType__Group__7__Impl43210);
+            	    pushFollow(FOLLOW_rule__AnnotationType__AttributesAssignment_7_in_rule__AnnotationType__Group__7__Impl43211);
             	    rule__AnnotationType__AttributesAssignment_7();
 
             	    state._fsp--;
@@ -58135,7 +58146,7 @@
             	    break;
 
             	default :
-            	    break loop191;
+            	    break loop192;
                 }
             } while (true);
 
@@ -58171,7 +58182,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21420:1: ( rule__AnnotationType__Group__8__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21421:2: rule__AnnotationType__Group__8__Impl
             {
-            pushFollow(FOLLOW_rule__AnnotationType__Group__8__Impl_in_rule__AnnotationType__Group__843241);
+            pushFollow(FOLLOW_rule__AnnotationType__Group__8__Impl_in_rule__AnnotationType__Group__843242);
             rule__AnnotationType__Group__8__Impl();
 
             state._fsp--;
@@ -58208,7 +58219,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21433:1: '}'
             {
              before(grammarAccess.getAnnotationTypeAccess().getRightCurlyBracketKeyword_8()); 
-            match(input,41,FOLLOW_41_in_rule__AnnotationType__Group__8__Impl43269); 
+            match(input,41,FOLLOW_41_in_rule__AnnotationType__Group__8__Impl43270); 
              after(grammarAccess.getAnnotationTypeAccess().getRightCurlyBracketKeyword_8()); 
 
             }
@@ -58241,12 +58252,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21468:1: ( rule__AnnotationType__Group_6_1__0__Impl rule__AnnotationType__Group_6_1__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21469:2: rule__AnnotationType__Group_6_1__0__Impl rule__AnnotationType__Group_6_1__1
             {
-            pushFollow(FOLLOW_rule__AnnotationType__Group_6_1__0__Impl_in_rule__AnnotationType__Group_6_1__043318);
+            pushFollow(FOLLOW_rule__AnnotationType__Group_6_1__0__Impl_in_rule__AnnotationType__Group_6_1__043319);
             rule__AnnotationType__Group_6_1__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__AnnotationType__Group_6_1__1_in_rule__AnnotationType__Group_6_1__043321);
+            pushFollow(FOLLOW_rule__AnnotationType__Group_6_1__1_in_rule__AnnotationType__Group_6_1__043322);
             rule__AnnotationType__Group_6_1__1();
 
             state._fsp--;
@@ -58283,7 +58294,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21482:1: '{'
             {
              before(grammarAccess.getAnnotationTypeAccess().getLeftCurlyBracketKeyword_6_1_0()); 
-            match(input,40,FOLLOW_40_in_rule__AnnotationType__Group_6_1__0__Impl43349); 
+            match(input,40,FOLLOW_40_in_rule__AnnotationType__Group_6_1__0__Impl43350); 
              after(grammarAccess.getAnnotationTypeAccess().getLeftCurlyBracketKeyword_6_1_0()); 
 
             }
@@ -58316,12 +58327,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21499:1: ( rule__AnnotationType__Group_6_1__1__Impl rule__AnnotationType__Group_6_1__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21500:2: rule__AnnotationType__Group_6_1__1__Impl rule__AnnotationType__Group_6_1__2
             {
-            pushFollow(FOLLOW_rule__AnnotationType__Group_6_1__1__Impl_in_rule__AnnotationType__Group_6_1__143380);
+            pushFollow(FOLLOW_rule__AnnotationType__Group_6_1__1__Impl_in_rule__AnnotationType__Group_6_1__143381);
             rule__AnnotationType__Group_6_1__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__AnnotationType__Group_6_1__2_in_rule__AnnotationType__Group_6_1__143383);
+            pushFollow(FOLLOW_rule__AnnotationType__Group_6_1__2_in_rule__AnnotationType__Group_6_1__143384);
             rule__AnnotationType__Group_6_1__2();
 
             state._fsp--;
@@ -58361,7 +58372,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21514:1: ( rule__AnnotationType__TargetsAssignment_6_1_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21514:2: rule__AnnotationType__TargetsAssignment_6_1_1
             {
-            pushFollow(FOLLOW_rule__AnnotationType__TargetsAssignment_6_1_1_in_rule__AnnotationType__Group_6_1__1__Impl43410);
+            pushFollow(FOLLOW_rule__AnnotationType__TargetsAssignment_6_1_1_in_rule__AnnotationType__Group_6_1__1__Impl43411);
             rule__AnnotationType__TargetsAssignment_6_1_1();
 
             state._fsp--;
@@ -58401,12 +58412,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21528:1: ( rule__AnnotationType__Group_6_1__2__Impl rule__AnnotationType__Group_6_1__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21529:2: rule__AnnotationType__Group_6_1__2__Impl rule__AnnotationType__Group_6_1__3
             {
-            pushFollow(FOLLOW_rule__AnnotationType__Group_6_1__2__Impl_in_rule__AnnotationType__Group_6_1__243440);
+            pushFollow(FOLLOW_rule__AnnotationType__Group_6_1__2__Impl_in_rule__AnnotationType__Group_6_1__243441);
             rule__AnnotationType__Group_6_1__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__AnnotationType__Group_6_1__3_in_rule__AnnotationType__Group_6_1__243443);
+            pushFollow(FOLLOW_rule__AnnotationType__Group_6_1__3_in_rule__AnnotationType__Group_6_1__243444);
             rule__AnnotationType__Group_6_1__3();
 
             state._fsp--;
@@ -58444,21 +58455,21 @@
             {
              before(grammarAccess.getAnnotationTypeAccess().getGroup_6_1_2()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21543:1: ( rule__AnnotationType__Group_6_1_2__0 )*
-            loop192:
+            loop193:
             do {
-                int alt192=2;
-                int LA192_0 = input.LA(1);
+                int alt193=2;
+                int LA193_0 = input.LA(1);
 
-                if ( (LA192_0==50) ) {
-                    alt192=1;
+                if ( (LA193_0==50) ) {
+                    alt193=1;
                 }
 
 
-                switch (alt192) {
+                switch (alt193) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21543:2: rule__AnnotationType__Group_6_1_2__0
             	    {
-            	    pushFollow(FOLLOW_rule__AnnotationType__Group_6_1_2__0_in_rule__AnnotationType__Group_6_1__2__Impl43470);
+            	    pushFollow(FOLLOW_rule__AnnotationType__Group_6_1_2__0_in_rule__AnnotationType__Group_6_1__2__Impl43471);
             	    rule__AnnotationType__Group_6_1_2__0();
 
             	    state._fsp--;
@@ -58468,7 +58479,7 @@
             	    break;
 
             	default :
-            	    break loop192;
+            	    break loop193;
                 }
             } while (true);
 
@@ -58504,7 +58515,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21557:1: ( rule__AnnotationType__Group_6_1__3__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21558:2: rule__AnnotationType__Group_6_1__3__Impl
             {
-            pushFollow(FOLLOW_rule__AnnotationType__Group_6_1__3__Impl_in_rule__AnnotationType__Group_6_1__343501);
+            pushFollow(FOLLOW_rule__AnnotationType__Group_6_1__3__Impl_in_rule__AnnotationType__Group_6_1__343502);
             rule__AnnotationType__Group_6_1__3__Impl();
 
             state._fsp--;
@@ -58541,7 +58552,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21570:1: '}'
             {
              before(grammarAccess.getAnnotationTypeAccess().getRightCurlyBracketKeyword_6_1_3()); 
-            match(input,41,FOLLOW_41_in_rule__AnnotationType__Group_6_1__3__Impl43529); 
+            match(input,41,FOLLOW_41_in_rule__AnnotationType__Group_6_1__3__Impl43530); 
              after(grammarAccess.getAnnotationTypeAccess().getRightCurlyBracketKeyword_6_1_3()); 
 
             }
@@ -58574,12 +58585,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21595:1: ( rule__AnnotationType__Group_6_1_2__0__Impl rule__AnnotationType__Group_6_1_2__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21596:2: rule__AnnotationType__Group_6_1_2__0__Impl rule__AnnotationType__Group_6_1_2__1
             {
-            pushFollow(FOLLOW_rule__AnnotationType__Group_6_1_2__0__Impl_in_rule__AnnotationType__Group_6_1_2__043568);
+            pushFollow(FOLLOW_rule__AnnotationType__Group_6_1_2__0__Impl_in_rule__AnnotationType__Group_6_1_2__043569);
             rule__AnnotationType__Group_6_1_2__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__AnnotationType__Group_6_1_2__1_in_rule__AnnotationType__Group_6_1_2__043571);
+            pushFollow(FOLLOW_rule__AnnotationType__Group_6_1_2__1_in_rule__AnnotationType__Group_6_1_2__043572);
             rule__AnnotationType__Group_6_1_2__1();
 
             state._fsp--;
@@ -58616,7 +58627,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21609:1: ','
             {
              before(grammarAccess.getAnnotationTypeAccess().getCommaKeyword_6_1_2_0()); 
-            match(input,50,FOLLOW_50_in_rule__AnnotationType__Group_6_1_2__0__Impl43599); 
+            match(input,50,FOLLOW_50_in_rule__AnnotationType__Group_6_1_2__0__Impl43600); 
              after(grammarAccess.getAnnotationTypeAccess().getCommaKeyword_6_1_2_0()); 
 
             }
@@ -58649,7 +58660,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21626:1: ( rule__AnnotationType__Group_6_1_2__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21627:2: rule__AnnotationType__Group_6_1_2__1__Impl
             {
-            pushFollow(FOLLOW_rule__AnnotationType__Group_6_1_2__1__Impl_in_rule__AnnotationType__Group_6_1_2__143630);
+            pushFollow(FOLLOW_rule__AnnotationType__Group_6_1_2__1__Impl_in_rule__AnnotationType__Group_6_1_2__143631);
             rule__AnnotationType__Group_6_1_2__1__Impl();
 
             state._fsp--;
@@ -58689,7 +58700,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21640:1: ( rule__AnnotationType__TargetsAssignment_6_1_2_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21640:2: rule__AnnotationType__TargetsAssignment_6_1_2_1
             {
-            pushFollow(FOLLOW_rule__AnnotationType__TargetsAssignment_6_1_2_1_in_rule__AnnotationType__Group_6_1_2__1__Impl43657);
+            pushFollow(FOLLOW_rule__AnnotationType__TargetsAssignment_6_1_2_1_in_rule__AnnotationType__Group_6_1_2__1__Impl43658);
             rule__AnnotationType__TargetsAssignment_6_1_2_1();
 
             state._fsp--;
@@ -58729,12 +58740,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21658:1: ( rule__SimpleAnnotationAttribute__Group__0__Impl rule__SimpleAnnotationAttribute__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21659:2: rule__SimpleAnnotationAttribute__Group__0__Impl rule__SimpleAnnotationAttribute__Group__1
             {
-            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__Group__0__Impl_in_rule__SimpleAnnotationAttribute__Group__043691);
+            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__Group__0__Impl_in_rule__SimpleAnnotationAttribute__Group__043692);
             rule__SimpleAnnotationAttribute__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__Group__1_in_rule__SimpleAnnotationAttribute__Group__043694);
+            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__Group__1_in_rule__SimpleAnnotationAttribute__Group__043695);
             rule__SimpleAnnotationAttribute__Group__1();
 
             state._fsp--;
@@ -58774,7 +58785,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21673:1: ( rule__SimpleAnnotationAttribute__Alternatives_0 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21673:2: rule__SimpleAnnotationAttribute__Alternatives_0
             {
-            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__Alternatives_0_in_rule__SimpleAnnotationAttribute__Group__0__Impl43721);
+            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__Alternatives_0_in_rule__SimpleAnnotationAttribute__Group__0__Impl43722);
             rule__SimpleAnnotationAttribute__Alternatives_0();
 
             state._fsp--;
@@ -58814,12 +58825,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21687:1: ( rule__SimpleAnnotationAttribute__Group__1__Impl rule__SimpleAnnotationAttribute__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21688:2: rule__SimpleAnnotationAttribute__Group__1__Impl rule__SimpleAnnotationAttribute__Group__2
             {
-            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__Group__1__Impl_in_rule__SimpleAnnotationAttribute__Group__143751);
+            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__Group__1__Impl_in_rule__SimpleAnnotationAttribute__Group__143752);
             rule__SimpleAnnotationAttribute__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__Group__2_in_rule__SimpleAnnotationAttribute__Group__143754);
+            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__Group__2_in_rule__SimpleAnnotationAttribute__Group__143755);
             rule__SimpleAnnotationAttribute__Group__2();
 
             state._fsp--;
@@ -58856,7 +58867,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21701:1: 'attribute'
             {
              before(grammarAccess.getSimpleAnnotationAttributeAccess().getAttributeKeyword_1()); 
-            match(input,122,FOLLOW_122_in_rule__SimpleAnnotationAttribute__Group__1__Impl43782); 
+            match(input,122,FOLLOW_122_in_rule__SimpleAnnotationAttribute__Group__1__Impl43783); 
              after(grammarAccess.getSimpleAnnotationAttributeAccess().getAttributeKeyword_1()); 
 
             }
@@ -58889,12 +58900,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21718:1: ( rule__SimpleAnnotationAttribute__Group__2__Impl rule__SimpleAnnotationAttribute__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21719:2: rule__SimpleAnnotationAttribute__Group__2__Impl rule__SimpleAnnotationAttribute__Group__3
             {
-            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__Group__2__Impl_in_rule__SimpleAnnotationAttribute__Group__243813);
+            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__Group__2__Impl_in_rule__SimpleAnnotationAttribute__Group__243814);
             rule__SimpleAnnotationAttribute__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__Group__3_in_rule__SimpleAnnotationAttribute__Group__243816);
+            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__Group__3_in_rule__SimpleAnnotationAttribute__Group__243817);
             rule__SimpleAnnotationAttribute__Group__3();
 
             state._fsp--;
@@ -58934,7 +58945,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21733:1: ( rule__SimpleAnnotationAttribute__NameAssignment_2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21733:2: rule__SimpleAnnotationAttribute__NameAssignment_2
             {
-            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__NameAssignment_2_in_rule__SimpleAnnotationAttribute__Group__2__Impl43843);
+            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__NameAssignment_2_in_rule__SimpleAnnotationAttribute__Group__2__Impl43844);
             rule__SimpleAnnotationAttribute__NameAssignment_2();
 
             state._fsp--;
@@ -58974,12 +58985,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21747:1: ( rule__SimpleAnnotationAttribute__Group__3__Impl rule__SimpleAnnotationAttribute__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21748:2: rule__SimpleAnnotationAttribute__Group__3__Impl rule__SimpleAnnotationAttribute__Group__4
             {
-            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__Group__3__Impl_in_rule__SimpleAnnotationAttribute__Group__343873);
+            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__Group__3__Impl_in_rule__SimpleAnnotationAttribute__Group__343874);
             rule__SimpleAnnotationAttribute__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__Group__4_in_rule__SimpleAnnotationAttribute__Group__343876);
+            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__Group__4_in_rule__SimpleAnnotationAttribute__Group__343877);
             rule__SimpleAnnotationAttribute__Group__4();
 
             state._fsp--;
@@ -59016,7 +59027,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21761:1: ':'
             {
              before(grammarAccess.getSimpleAnnotationAttributeAccess().getColonKeyword_3()); 
-            match(input,42,FOLLOW_42_in_rule__SimpleAnnotationAttribute__Group__3__Impl43904); 
+            match(input,42,FOLLOW_42_in_rule__SimpleAnnotationAttribute__Group__3__Impl43905); 
              after(grammarAccess.getSimpleAnnotationAttributeAccess().getColonKeyword_3()); 
 
             }
@@ -59049,7 +59060,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21778:1: ( rule__SimpleAnnotationAttribute__Group__4__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21779:2: rule__SimpleAnnotationAttribute__Group__4__Impl
             {
-            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__Group__4__Impl_in_rule__SimpleAnnotationAttribute__Group__443935);
+            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__Group__4__Impl_in_rule__SimpleAnnotationAttribute__Group__443936);
             rule__SimpleAnnotationAttribute__Group__4__Impl();
 
             state._fsp--;
@@ -59089,7 +59100,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21792:1: ( rule__SimpleAnnotationAttribute__TypeAssignment_4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21792:2: rule__SimpleAnnotationAttribute__TypeAssignment_4
             {
-            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__TypeAssignment_4_in_rule__SimpleAnnotationAttribute__Group__4__Impl43962);
+            pushFollow(FOLLOW_rule__SimpleAnnotationAttribute__TypeAssignment_4_in_rule__SimpleAnnotationAttribute__Group__4__Impl43963);
             rule__SimpleAnnotationAttribute__TypeAssignment_4();
 
             state._fsp--;
@@ -59129,12 +59140,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21816:1: ( rule__EnumAnnotationAttribute__Group__0__Impl rule__EnumAnnotationAttribute__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21817:2: rule__EnumAnnotationAttribute__Group__0__Impl rule__EnumAnnotationAttribute__Group__1
             {
-            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__0__Impl_in_rule__EnumAnnotationAttribute__Group__044002);
+            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__0__Impl_in_rule__EnumAnnotationAttribute__Group__044003);
             rule__EnumAnnotationAttribute__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__1_in_rule__EnumAnnotationAttribute__Group__044005);
+            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__1_in_rule__EnumAnnotationAttribute__Group__044006);
             rule__EnumAnnotationAttribute__Group__1();
 
             state._fsp--;
@@ -59174,7 +59185,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21831:1: ( rule__EnumAnnotationAttribute__Alternatives_0 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21831:2: rule__EnumAnnotationAttribute__Alternatives_0
             {
-            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Alternatives_0_in_rule__EnumAnnotationAttribute__Group__0__Impl44032);
+            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Alternatives_0_in_rule__EnumAnnotationAttribute__Group__0__Impl44033);
             rule__EnumAnnotationAttribute__Alternatives_0();
 
             state._fsp--;
@@ -59214,12 +59225,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21845:1: ( rule__EnumAnnotationAttribute__Group__1__Impl rule__EnumAnnotationAttribute__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21846:2: rule__EnumAnnotationAttribute__Group__1__Impl rule__EnumAnnotationAttribute__Group__2
             {
-            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__1__Impl_in_rule__EnumAnnotationAttribute__Group__144062);
+            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__1__Impl_in_rule__EnumAnnotationAttribute__Group__144063);
             rule__EnumAnnotationAttribute__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__2_in_rule__EnumAnnotationAttribute__Group__144065);
+            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__2_in_rule__EnumAnnotationAttribute__Group__144066);
             rule__EnumAnnotationAttribute__Group__2();
 
             state._fsp--;
@@ -59256,7 +59267,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21859:1: 'attribute'
             {
              before(grammarAccess.getEnumAnnotationAttributeAccess().getAttributeKeyword_1()); 
-            match(input,122,FOLLOW_122_in_rule__EnumAnnotationAttribute__Group__1__Impl44093); 
+            match(input,122,FOLLOW_122_in_rule__EnumAnnotationAttribute__Group__1__Impl44094); 
              after(grammarAccess.getEnumAnnotationAttributeAccess().getAttributeKeyword_1()); 
 
             }
@@ -59289,12 +59300,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21876:1: ( rule__EnumAnnotationAttribute__Group__2__Impl rule__EnumAnnotationAttribute__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21877:2: rule__EnumAnnotationAttribute__Group__2__Impl rule__EnumAnnotationAttribute__Group__3
             {
-            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__2__Impl_in_rule__EnumAnnotationAttribute__Group__244124);
+            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__2__Impl_in_rule__EnumAnnotationAttribute__Group__244125);
             rule__EnumAnnotationAttribute__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__3_in_rule__EnumAnnotationAttribute__Group__244127);
+            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__3_in_rule__EnumAnnotationAttribute__Group__244128);
             rule__EnumAnnotationAttribute__Group__3();
 
             state._fsp--;
@@ -59334,7 +59345,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21891:1: ( rule__EnumAnnotationAttribute__NameAssignment_2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21891:2: rule__EnumAnnotationAttribute__NameAssignment_2
             {
-            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__NameAssignment_2_in_rule__EnumAnnotationAttribute__Group__2__Impl44154);
+            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__NameAssignment_2_in_rule__EnumAnnotationAttribute__Group__2__Impl44155);
             rule__EnumAnnotationAttribute__NameAssignment_2();
 
             state._fsp--;
@@ -59374,12 +59385,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21905:1: ( rule__EnumAnnotationAttribute__Group__3__Impl rule__EnumAnnotationAttribute__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21906:2: rule__EnumAnnotationAttribute__Group__3__Impl rule__EnumAnnotationAttribute__Group__4
             {
-            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__3__Impl_in_rule__EnumAnnotationAttribute__Group__344184);
+            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__3__Impl_in_rule__EnumAnnotationAttribute__Group__344185);
             rule__EnumAnnotationAttribute__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__4_in_rule__EnumAnnotationAttribute__Group__344187);
+            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__4_in_rule__EnumAnnotationAttribute__Group__344188);
             rule__EnumAnnotationAttribute__Group__4();
 
             state._fsp--;
@@ -59416,7 +59427,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21919:1: ':'
             {
              before(grammarAccess.getEnumAnnotationAttributeAccess().getColonKeyword_3()); 
-            match(input,42,FOLLOW_42_in_rule__EnumAnnotationAttribute__Group__3__Impl44215); 
+            match(input,42,FOLLOW_42_in_rule__EnumAnnotationAttribute__Group__3__Impl44216); 
              after(grammarAccess.getEnumAnnotationAttributeAccess().getColonKeyword_3()); 
 
             }
@@ -59449,12 +59460,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21936:1: ( rule__EnumAnnotationAttribute__Group__4__Impl rule__EnumAnnotationAttribute__Group__5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21937:2: rule__EnumAnnotationAttribute__Group__4__Impl rule__EnumAnnotationAttribute__Group__5
             {
-            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__4__Impl_in_rule__EnumAnnotationAttribute__Group__444246);
+            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__4__Impl_in_rule__EnumAnnotationAttribute__Group__444247);
             rule__EnumAnnotationAttribute__Group__4__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__5_in_rule__EnumAnnotationAttribute__Group__444249);
+            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__5_in_rule__EnumAnnotationAttribute__Group__444250);
             rule__EnumAnnotationAttribute__Group__5();
 
             state._fsp--;
@@ -59491,7 +59502,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21950:1: '{'
             {
              before(grammarAccess.getEnumAnnotationAttributeAccess().getLeftCurlyBracketKeyword_4()); 
-            match(input,40,FOLLOW_40_in_rule__EnumAnnotationAttribute__Group__4__Impl44277); 
+            match(input,40,FOLLOW_40_in_rule__EnumAnnotationAttribute__Group__4__Impl44278); 
              after(grammarAccess.getEnumAnnotationAttributeAccess().getLeftCurlyBracketKeyword_4()); 
 
             }
@@ -59524,12 +59535,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21967:1: ( rule__EnumAnnotationAttribute__Group__5__Impl rule__EnumAnnotationAttribute__Group__6 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21968:2: rule__EnumAnnotationAttribute__Group__5__Impl rule__EnumAnnotationAttribute__Group__6
             {
-            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__5__Impl_in_rule__EnumAnnotationAttribute__Group__544308);
+            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__5__Impl_in_rule__EnumAnnotationAttribute__Group__544309);
             rule__EnumAnnotationAttribute__Group__5__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__6_in_rule__EnumAnnotationAttribute__Group__544311);
+            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__6_in_rule__EnumAnnotationAttribute__Group__544312);
             rule__EnumAnnotationAttribute__Group__6();
 
             state._fsp--;
@@ -59569,7 +59580,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21982:1: ( rule__EnumAnnotationAttribute__ValuesAssignment_5 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21982:2: rule__EnumAnnotationAttribute__ValuesAssignment_5
             {
-            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__ValuesAssignment_5_in_rule__EnumAnnotationAttribute__Group__5__Impl44338);
+            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__ValuesAssignment_5_in_rule__EnumAnnotationAttribute__Group__5__Impl44339);
             rule__EnumAnnotationAttribute__ValuesAssignment_5();
 
             state._fsp--;
@@ -59609,12 +59620,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21996:1: ( rule__EnumAnnotationAttribute__Group__6__Impl rule__EnumAnnotationAttribute__Group__7 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:21997:2: rule__EnumAnnotationAttribute__Group__6__Impl rule__EnumAnnotationAttribute__Group__7
             {
-            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__6__Impl_in_rule__EnumAnnotationAttribute__Group__644368);
+            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__6__Impl_in_rule__EnumAnnotationAttribute__Group__644369);
             rule__EnumAnnotationAttribute__Group__6__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__7_in_rule__EnumAnnotationAttribute__Group__644371);
+            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__7_in_rule__EnumAnnotationAttribute__Group__644372);
             rule__EnumAnnotationAttribute__Group__7();
 
             state._fsp--;
@@ -59652,21 +59663,21 @@
             {
              before(grammarAccess.getEnumAnnotationAttributeAccess().getGroup_6()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22011:1: ( rule__EnumAnnotationAttribute__Group_6__0 )*
-            loop193:
+            loop194:
             do {
-                int alt193=2;
-                int LA193_0 = input.LA(1);
+                int alt194=2;
+                int LA194_0 = input.LA(1);
 
-                if ( (LA193_0==50) ) {
-                    alt193=1;
+                if ( (LA194_0==50) ) {
+                    alt194=1;
                 }
 
 
-                switch (alt193) {
+                switch (alt194) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22011:2: rule__EnumAnnotationAttribute__Group_6__0
             	    {
-            	    pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group_6__0_in_rule__EnumAnnotationAttribute__Group__6__Impl44398);
+            	    pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group_6__0_in_rule__EnumAnnotationAttribute__Group__6__Impl44399);
             	    rule__EnumAnnotationAttribute__Group_6__0();
 
             	    state._fsp--;
@@ -59676,7 +59687,7 @@
             	    break;
 
             	default :
-            	    break loop193;
+            	    break loop194;
                 }
             } while (true);
 
@@ -59712,7 +59723,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22025:1: ( rule__EnumAnnotationAttribute__Group__7__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22026:2: rule__EnumAnnotationAttribute__Group__7__Impl
             {
-            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__7__Impl_in_rule__EnumAnnotationAttribute__Group__744429);
+            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group__7__Impl_in_rule__EnumAnnotationAttribute__Group__744430);
             rule__EnumAnnotationAttribute__Group__7__Impl();
 
             state._fsp--;
@@ -59749,7 +59760,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22038:1: '}'
             {
              before(grammarAccess.getEnumAnnotationAttributeAccess().getRightCurlyBracketKeyword_7()); 
-            match(input,41,FOLLOW_41_in_rule__EnumAnnotationAttribute__Group__7__Impl44457); 
+            match(input,41,FOLLOW_41_in_rule__EnumAnnotationAttribute__Group__7__Impl44458); 
              after(grammarAccess.getEnumAnnotationAttributeAccess().getRightCurlyBracketKeyword_7()); 
 
             }
@@ -59782,12 +59793,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22071:1: ( rule__EnumAnnotationAttribute__Group_6__0__Impl rule__EnumAnnotationAttribute__Group_6__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22072:2: rule__EnumAnnotationAttribute__Group_6__0__Impl rule__EnumAnnotationAttribute__Group_6__1
             {
-            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group_6__0__Impl_in_rule__EnumAnnotationAttribute__Group_6__044504);
+            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group_6__0__Impl_in_rule__EnumAnnotationAttribute__Group_6__044505);
             rule__EnumAnnotationAttribute__Group_6__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group_6__1_in_rule__EnumAnnotationAttribute__Group_6__044507);
+            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group_6__1_in_rule__EnumAnnotationAttribute__Group_6__044508);
             rule__EnumAnnotationAttribute__Group_6__1();
 
             state._fsp--;
@@ -59824,7 +59835,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22085:1: ','
             {
              before(grammarAccess.getEnumAnnotationAttributeAccess().getCommaKeyword_6_0()); 
-            match(input,50,FOLLOW_50_in_rule__EnumAnnotationAttribute__Group_6__0__Impl44535); 
+            match(input,50,FOLLOW_50_in_rule__EnumAnnotationAttribute__Group_6__0__Impl44536); 
              after(grammarAccess.getEnumAnnotationAttributeAccess().getCommaKeyword_6_0()); 
 
             }
@@ -59857,7 +59868,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22102:1: ( rule__EnumAnnotationAttribute__Group_6__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22103:2: rule__EnumAnnotationAttribute__Group_6__1__Impl
             {
-            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group_6__1__Impl_in_rule__EnumAnnotationAttribute__Group_6__144566);
+            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__Group_6__1__Impl_in_rule__EnumAnnotationAttribute__Group_6__144567);
             rule__EnumAnnotationAttribute__Group_6__1__Impl();
 
             state._fsp--;
@@ -59897,7 +59908,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22116:1: ( rule__EnumAnnotationAttribute__ValuesAssignment_6_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22116:2: rule__EnumAnnotationAttribute__ValuesAssignment_6_1
             {
-            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__ValuesAssignment_6_1_in_rule__EnumAnnotationAttribute__Group_6__1__Impl44593);
+            pushFollow(FOLLOW_rule__EnumAnnotationAttribute__ValuesAssignment_6_1_in_rule__EnumAnnotationAttribute__Group_6__1__Impl44594);
             rule__EnumAnnotationAttribute__ValuesAssignment_6_1();
 
             state._fsp--;
@@ -59937,12 +59948,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22134:1: ( rule__Import__Group__0__Impl rule__Import__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22135:2: rule__Import__Group__0__Impl rule__Import__Group__1
             {
-            pushFollow(FOLLOW_rule__Import__Group__0__Impl_in_rule__Import__Group__044627);
+            pushFollow(FOLLOW_rule__Import__Group__0__Impl_in_rule__Import__Group__044628);
             rule__Import__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Import__Group__1_in_rule__Import__Group__044630);
+            pushFollow(FOLLOW_rule__Import__Group__1_in_rule__Import__Group__044631);
             rule__Import__Group__1();
 
             state._fsp--;
@@ -59979,7 +59990,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22148:1: 'import'
             {
              before(grammarAccess.getImportAccess().getImportKeyword_0()); 
-            match(input,123,FOLLOW_123_in_rule__Import__Group__0__Impl44658); 
+            match(input,123,FOLLOW_123_in_rule__Import__Group__0__Impl44659); 
              after(grammarAccess.getImportAccess().getImportKeyword_0()); 
 
             }
@@ -60012,12 +60023,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22165:1: ( rule__Import__Group__1__Impl rule__Import__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22166:2: rule__Import__Group__1__Impl rule__Import__Group__2
             {
-            pushFollow(FOLLOW_rule__Import__Group__1__Impl_in_rule__Import__Group__144689);
+            pushFollow(FOLLOW_rule__Import__Group__1__Impl_in_rule__Import__Group__144690);
             rule__Import__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Import__Group__2_in_rule__Import__Group__144692);
+            pushFollow(FOLLOW_rule__Import__Group__2_in_rule__Import__Group__144693);
             rule__Import__Group__2();
 
             state._fsp--;
@@ -60057,7 +60068,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22180:1: ( rule__Import__Alternatives_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22180:2: rule__Import__Alternatives_1
             {
-            pushFollow(FOLLOW_rule__Import__Alternatives_1_in_rule__Import__Group__1__Impl44719);
+            pushFollow(FOLLOW_rule__Import__Alternatives_1_in_rule__Import__Group__1__Impl44720);
             rule__Import__Alternatives_1();
 
             state._fsp--;
@@ -60097,7 +60108,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22194:1: ( rule__Import__Group__2__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22195:2: rule__Import__Group__2__Impl
             {
-            pushFollow(FOLLOW_rule__Import__Group__2__Impl_in_rule__Import__Group__244749);
+            pushFollow(FOLLOW_rule__Import__Group__2__Impl_in_rule__Import__Group__244750);
             rule__Import__Group__2__Impl();
 
             state._fsp--;
@@ -60137,7 +60148,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22208:1: ( rule__Import__ImportURIAssignment_2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22208:2: rule__Import__ImportURIAssignment_2
             {
-            pushFollow(FOLLOW_rule__Import__ImportURIAssignment_2_in_rule__Import__Group__2__Impl44776);
+            pushFollow(FOLLOW_rule__Import__ImportURIAssignment_2_in_rule__Import__Group__2__Impl44777);
             rule__Import__ImportURIAssignment_2();
 
             state._fsp--;
@@ -60177,12 +60188,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22228:1: ( rule__Import__Group_1_0__0__Impl rule__Import__Group_1_0__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22229:2: rule__Import__Group_1_0__0__Impl rule__Import__Group_1_0__1
             {
-            pushFollow(FOLLOW_rule__Import__Group_1_0__0__Impl_in_rule__Import__Group_1_0__044812);
+            pushFollow(FOLLOW_rule__Import__Group_1_0__0__Impl_in_rule__Import__Group_1_0__044813);
             rule__Import__Group_1_0__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Import__Group_1_0__1_in_rule__Import__Group_1_0__044815);
+            pushFollow(FOLLOW_rule__Import__Group_1_0__1_in_rule__Import__Group_1_0__044816);
             rule__Import__Group_1_0__1();
 
             state._fsp--;
@@ -60222,7 +60233,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22243:1: ( rule__Import__ImportedNamespaceAssignment_1_0_0 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22243:2: rule__Import__ImportedNamespaceAssignment_1_0_0
             {
-            pushFollow(FOLLOW_rule__Import__ImportedNamespaceAssignment_1_0_0_in_rule__Import__Group_1_0__0__Impl44842);
+            pushFollow(FOLLOW_rule__Import__ImportedNamespaceAssignment_1_0_0_in_rule__Import__Group_1_0__0__Impl44843);
             rule__Import__ImportedNamespaceAssignment_1_0_0();
 
             state._fsp--;
@@ -60262,7 +60273,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22257:1: ( rule__Import__Group_1_0__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22258:2: rule__Import__Group_1_0__1__Impl
             {
-            pushFollow(FOLLOW_rule__Import__Group_1_0__1__Impl_in_rule__Import__Group_1_0__144872);
+            pushFollow(FOLLOW_rule__Import__Group_1_0__1__Impl_in_rule__Import__Group_1_0__144873);
             rule__Import__Group_1_0__1__Impl();
 
             state._fsp--;
@@ -60299,7 +60310,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22270:1: 'from'
             {
              before(grammarAccess.getImportAccess().getFromKeyword_1_0_1()); 
-            match(input,124,FOLLOW_124_in_rule__Import__Group_1_0__1__Impl44900); 
+            match(input,124,FOLLOW_124_in_rule__Import__Group_1_0__1__Impl44901); 
              after(grammarAccess.getImportAccess().getFromKeyword_1_0_1()); 
 
             }
@@ -60332,12 +60343,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22291:1: ( rule__ImportedFQN__Group__0__Impl rule__ImportedFQN__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22292:2: rule__ImportedFQN__Group__0__Impl rule__ImportedFQN__Group__1
             {
-            pushFollow(FOLLOW_rule__ImportedFQN__Group__0__Impl_in_rule__ImportedFQN__Group__044935);
+            pushFollow(FOLLOW_rule__ImportedFQN__Group__0__Impl_in_rule__ImportedFQN__Group__044936);
             rule__ImportedFQN__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__ImportedFQN__Group__1_in_rule__ImportedFQN__Group__044938);
+            pushFollow(FOLLOW_rule__ImportedFQN__Group__1_in_rule__ImportedFQN__Group__044939);
             rule__ImportedFQN__Group__1();
 
             state._fsp--;
@@ -60374,7 +60385,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22305:1: ruleFQN
             {
              before(grammarAccess.getImportedFQNAccess().getFQNParserRuleCall_0()); 
-            pushFollow(FOLLOW_ruleFQN_in_rule__ImportedFQN__Group__0__Impl44965);
+            pushFollow(FOLLOW_ruleFQN_in_rule__ImportedFQN__Group__0__Impl44966);
             ruleFQN();
 
             state._fsp--;
@@ -60411,7 +60422,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22320:1: ( rule__ImportedFQN__Group__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22321:2: rule__ImportedFQN__Group__1__Impl
             {
-            pushFollow(FOLLOW_rule__ImportedFQN__Group__1__Impl_in_rule__ImportedFQN__Group__144994);
+            pushFollow(FOLLOW_rule__ImportedFQN__Group__1__Impl_in_rule__ImportedFQN__Group__144995);
             rule__ImportedFQN__Group__1__Impl();
 
             state._fsp--;
@@ -60449,17 +60460,17 @@
             {
              before(grammarAccess.getImportedFQNAccess().getFullStopAsteriskKeyword_1()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22334:1: ( '.*' )?
-            int alt194=2;
-            int LA194_0 = input.LA(1);
+            int alt195=2;
+            int LA195_0 = input.LA(1);
 
-            if ( (LA194_0==125) ) {
-                alt194=1;
+            if ( (LA195_0==125) ) {
+                alt195=1;
             }
-            switch (alt194) {
+            switch (alt195) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22335:2: '.*'
                     {
-                    match(input,125,FOLLOW_125_in_rule__ImportedFQN__Group__1__Impl45023); 
+                    match(input,125,FOLLOW_125_in_rule__ImportedFQN__Group__1__Impl45024); 
 
                     }
                     break;
@@ -60498,12 +60509,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22354:1: ( rule__Documentation__Group__0__Impl rule__Documentation__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22355:2: rule__Documentation__Group__0__Impl rule__Documentation__Group__1
             {
-            pushFollow(FOLLOW_rule__Documentation__Group__0__Impl_in_rule__Documentation__Group__045060);
+            pushFollow(FOLLOW_rule__Documentation__Group__0__Impl_in_rule__Documentation__Group__045061);
             rule__Documentation__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Documentation__Group__1_in_rule__Documentation__Group__045063);
+            pushFollow(FOLLOW_rule__Documentation__Group__1_in_rule__Documentation__Group__045064);
             rule__Documentation__Group__1();
 
             state._fsp--;
@@ -60573,12 +60584,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22385:1: ( rule__Documentation__Group__1__Impl rule__Documentation__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22386:2: rule__Documentation__Group__1__Impl rule__Documentation__Group__2
             {
-            pushFollow(FOLLOW_rule__Documentation__Group__1__Impl_in_rule__Documentation__Group__145121);
+            pushFollow(FOLLOW_rule__Documentation__Group__1__Impl_in_rule__Documentation__Group__145122);
             rule__Documentation__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Documentation__Group__2_in_rule__Documentation__Group__145124);
+            pushFollow(FOLLOW_rule__Documentation__Group__2_in_rule__Documentation__Group__145125);
             rule__Documentation__Group__2();
 
             state._fsp--;
@@ -60615,7 +60626,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22399:1: '['
             {
              before(grammarAccess.getDocumentationAccess().getLeftSquareBracketKeyword_1()); 
-            match(input,58,FOLLOW_58_in_rule__Documentation__Group__1__Impl45152); 
+            match(input,58,FOLLOW_58_in_rule__Documentation__Group__1__Impl45153); 
              after(grammarAccess.getDocumentationAccess().getLeftSquareBracketKeyword_1()); 
 
             }
@@ -60648,12 +60659,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22416:1: ( rule__Documentation__Group__2__Impl rule__Documentation__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22417:2: rule__Documentation__Group__2__Impl rule__Documentation__Group__3
             {
-            pushFollow(FOLLOW_rule__Documentation__Group__2__Impl_in_rule__Documentation__Group__245183);
+            pushFollow(FOLLOW_rule__Documentation__Group__2__Impl_in_rule__Documentation__Group__245184);
             rule__Documentation__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Documentation__Group__3_in_rule__Documentation__Group__245186);
+            pushFollow(FOLLOW_rule__Documentation__Group__3_in_rule__Documentation__Group__245187);
             rule__Documentation__Group__3();
 
             state._fsp--;
@@ -60691,21 +60702,21 @@
             {
              before(grammarAccess.getDocumentationAccess().getLinesAssignment_2()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22431:1: ( rule__Documentation__LinesAssignment_2 )*
-            loop195:
+            loop196:
             do {
-                int alt195=2;
-                int LA195_0 = input.LA(1);
+                int alt196=2;
+                int LA196_0 = input.LA(1);
 
-                if ( (LA195_0==RULE_STRING) ) {
-                    alt195=1;
+                if ( (LA196_0==RULE_STRING) ) {
+                    alt196=1;
                 }
 
 
-                switch (alt195) {
+                switch (alt196) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22431:2: rule__Documentation__LinesAssignment_2
             	    {
-            	    pushFollow(FOLLOW_rule__Documentation__LinesAssignment_2_in_rule__Documentation__Group__2__Impl45213);
+            	    pushFollow(FOLLOW_rule__Documentation__LinesAssignment_2_in_rule__Documentation__Group__2__Impl45214);
             	    rule__Documentation__LinesAssignment_2();
 
             	    state._fsp--;
@@ -60715,7 +60726,7 @@
             	    break;
 
             	default :
-            	    break loop195;
+            	    break loop196;
                 }
             } while (true);
 
@@ -60751,7 +60762,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22445:1: ( rule__Documentation__Group__3__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22446:2: rule__Documentation__Group__3__Impl
             {
-            pushFollow(FOLLOW_rule__Documentation__Group__3__Impl_in_rule__Documentation__Group__345244);
+            pushFollow(FOLLOW_rule__Documentation__Group__3__Impl_in_rule__Documentation__Group__345245);
             rule__Documentation__Group__3__Impl();
 
             state._fsp--;
@@ -60788,7 +60799,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22458:1: ']'
             {
              before(grammarAccess.getDocumentationAccess().getRightSquareBracketKeyword_3()); 
-            match(input,59,FOLLOW_59_in_rule__Documentation__Group__3__Impl45272); 
+            match(input,59,FOLLOW_59_in_rule__Documentation__Group__3__Impl45273); 
              after(grammarAccess.getDocumentationAccess().getRightSquareBracketKeyword_3()); 
 
             }
@@ -60821,12 +60832,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22489:1: ( rule__BooleanLiteral__Group__0__Impl rule__BooleanLiteral__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22490:2: rule__BooleanLiteral__Group__0__Impl rule__BooleanLiteral__Group__1
             {
-            pushFollow(FOLLOW_rule__BooleanLiteral__Group__0__Impl_in_rule__BooleanLiteral__Group__045317);
+            pushFollow(FOLLOW_rule__BooleanLiteral__Group__0__Impl_in_rule__BooleanLiteral__Group__045318);
             rule__BooleanLiteral__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__BooleanLiteral__Group__1_in_rule__BooleanLiteral__Group__045320);
+            pushFollow(FOLLOW_rule__BooleanLiteral__Group__1_in_rule__BooleanLiteral__Group__045321);
             rule__BooleanLiteral__Group__1();
 
             state._fsp--;
@@ -60896,7 +60907,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22520:1: ( rule__BooleanLiteral__Group__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22521:2: rule__BooleanLiteral__Group__1__Impl
             {
-            pushFollow(FOLLOW_rule__BooleanLiteral__Group__1__Impl_in_rule__BooleanLiteral__Group__145378);
+            pushFollow(FOLLOW_rule__BooleanLiteral__Group__1__Impl_in_rule__BooleanLiteral__Group__145379);
             rule__BooleanLiteral__Group__1__Impl();
 
             state._fsp--;
@@ -60936,7 +60947,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22534:1: ( rule__BooleanLiteral__Alternatives_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22534:2: rule__BooleanLiteral__Alternatives_1
             {
-            pushFollow(FOLLOW_rule__BooleanLiteral__Alternatives_1_in_rule__BooleanLiteral__Group__1__Impl45405);
+            pushFollow(FOLLOW_rule__BooleanLiteral__Alternatives_1_in_rule__BooleanLiteral__Group__1__Impl45406);
             rule__BooleanLiteral__Alternatives_1();
 
             state._fsp--;
@@ -60976,12 +60987,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22552:1: ( rule__RealLiteral__Group__0__Impl rule__RealLiteral__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22553:2: rule__RealLiteral__Group__0__Impl rule__RealLiteral__Group__1
             {
-            pushFollow(FOLLOW_rule__RealLiteral__Group__0__Impl_in_rule__RealLiteral__Group__045439);
+            pushFollow(FOLLOW_rule__RealLiteral__Group__0__Impl_in_rule__RealLiteral__Group__045440);
             rule__RealLiteral__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__RealLiteral__Group__1_in_rule__RealLiteral__Group__045442);
+            pushFollow(FOLLOW_rule__RealLiteral__Group__1_in_rule__RealLiteral__Group__045443);
             rule__RealLiteral__Group__1();
 
             state._fsp--;
@@ -61051,7 +61062,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22583:1: ( rule__RealLiteral__Group__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22584:2: rule__RealLiteral__Group__1__Impl
             {
-            pushFollow(FOLLOW_rule__RealLiteral__Group__1__Impl_in_rule__RealLiteral__Group__145500);
+            pushFollow(FOLLOW_rule__RealLiteral__Group__1__Impl_in_rule__RealLiteral__Group__145501);
             rule__RealLiteral__Group__1__Impl();
 
             state._fsp--;
@@ -61091,7 +61102,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22597:1: ( rule__RealLiteral__ValueAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22597:2: rule__RealLiteral__ValueAssignment_1
             {
-            pushFollow(FOLLOW_rule__RealLiteral__ValueAssignment_1_in_rule__RealLiteral__Group__1__Impl45527);
+            pushFollow(FOLLOW_rule__RealLiteral__ValueAssignment_1_in_rule__RealLiteral__Group__1__Impl45528);
             rule__RealLiteral__ValueAssignment_1();
 
             state._fsp--;
@@ -61131,12 +61142,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22615:1: ( rule__IntLiteral__Group__0__Impl rule__IntLiteral__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22616:2: rule__IntLiteral__Group__0__Impl rule__IntLiteral__Group__1
             {
-            pushFollow(FOLLOW_rule__IntLiteral__Group__0__Impl_in_rule__IntLiteral__Group__045561);
+            pushFollow(FOLLOW_rule__IntLiteral__Group__0__Impl_in_rule__IntLiteral__Group__045562);
             rule__IntLiteral__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__IntLiteral__Group__1_in_rule__IntLiteral__Group__045564);
+            pushFollow(FOLLOW_rule__IntLiteral__Group__1_in_rule__IntLiteral__Group__045565);
             rule__IntLiteral__Group__1();
 
             state._fsp--;
@@ -61206,7 +61217,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22646:1: ( rule__IntLiteral__Group__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22647:2: rule__IntLiteral__Group__1__Impl
             {
-            pushFollow(FOLLOW_rule__IntLiteral__Group__1__Impl_in_rule__IntLiteral__Group__145622);
+            pushFollow(FOLLOW_rule__IntLiteral__Group__1__Impl_in_rule__IntLiteral__Group__145623);
             rule__IntLiteral__Group__1__Impl();
 
             state._fsp--;
@@ -61246,7 +61257,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22660:1: ( rule__IntLiteral__ValueAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22660:2: rule__IntLiteral__ValueAssignment_1
             {
-            pushFollow(FOLLOW_rule__IntLiteral__ValueAssignment_1_in_rule__IntLiteral__Group__1__Impl45649);
+            pushFollow(FOLLOW_rule__IntLiteral__ValueAssignment_1_in_rule__IntLiteral__Group__1__Impl45650);
             rule__IntLiteral__ValueAssignment_1();
 
             state._fsp--;
@@ -61286,12 +61297,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22678:1: ( rule__StringLiteral__Group__0__Impl rule__StringLiteral__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22679:2: rule__StringLiteral__Group__0__Impl rule__StringLiteral__Group__1
             {
-            pushFollow(FOLLOW_rule__StringLiteral__Group__0__Impl_in_rule__StringLiteral__Group__045683);
+            pushFollow(FOLLOW_rule__StringLiteral__Group__0__Impl_in_rule__StringLiteral__Group__045684);
             rule__StringLiteral__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__StringLiteral__Group__1_in_rule__StringLiteral__Group__045686);
+            pushFollow(FOLLOW_rule__StringLiteral__Group__1_in_rule__StringLiteral__Group__045687);
             rule__StringLiteral__Group__1();
 
             state._fsp--;
@@ -61361,7 +61372,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22709:1: ( rule__StringLiteral__Group__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22710:2: rule__StringLiteral__Group__1__Impl
             {
-            pushFollow(FOLLOW_rule__StringLiteral__Group__1__Impl_in_rule__StringLiteral__Group__145744);
+            pushFollow(FOLLOW_rule__StringLiteral__Group__1__Impl_in_rule__StringLiteral__Group__145745);
             rule__StringLiteral__Group__1__Impl();
 
             state._fsp--;
@@ -61401,7 +61412,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22723:1: ( rule__StringLiteral__ValueAssignment_1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22723:2: rule__StringLiteral__ValueAssignment_1
             {
-            pushFollow(FOLLOW_rule__StringLiteral__ValueAssignment_1_in_rule__StringLiteral__Group__1__Impl45771);
+            pushFollow(FOLLOW_rule__StringLiteral__ValueAssignment_1_in_rule__StringLiteral__Group__1__Impl45772);
             rule__StringLiteral__ValueAssignment_1();
 
             state._fsp--;
@@ -61441,12 +61452,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22741:1: ( rule__SignedInteger__Group__0__Impl rule__SignedInteger__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22742:2: rule__SignedInteger__Group__0__Impl rule__SignedInteger__Group__1
             {
-            pushFollow(FOLLOW_rule__SignedInteger__Group__0__Impl_in_rule__SignedInteger__Group__045805);
+            pushFollow(FOLLOW_rule__SignedInteger__Group__0__Impl_in_rule__SignedInteger__Group__045806);
             rule__SignedInteger__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__SignedInteger__Group__1_in_rule__SignedInteger__Group__045808);
+            pushFollow(FOLLOW_rule__SignedInteger__Group__1_in_rule__SignedInteger__Group__045809);
             rule__SignedInteger__Group__1();
 
             state._fsp--;
@@ -61484,17 +61495,17 @@
             {
              before(grammarAccess.getSignedIntegerAccess().getAlternatives_0()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22756:1: ( rule__SignedInteger__Alternatives_0 )?
-            int alt196=2;
-            int LA196_0 = input.LA(1);
+            int alt197=2;
+            int LA197_0 = input.LA(1);
 
-            if ( ((LA196_0>=27 && LA196_0<=28)) ) {
-                alt196=1;
+            if ( ((LA197_0>=27 && LA197_0<=28)) ) {
+                alt197=1;
             }
-            switch (alt196) {
+            switch (alt197) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22756:2: rule__SignedInteger__Alternatives_0
                     {
-                    pushFollow(FOLLOW_rule__SignedInteger__Alternatives_0_in_rule__SignedInteger__Group__0__Impl45835);
+                    pushFollow(FOLLOW_rule__SignedInteger__Alternatives_0_in_rule__SignedInteger__Group__0__Impl45836);
                     rule__SignedInteger__Alternatives_0();
 
                     state._fsp--;
@@ -61537,7 +61548,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22770:1: ( rule__SignedInteger__Group__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22771:2: rule__SignedInteger__Group__1__Impl
             {
-            pushFollow(FOLLOW_rule__SignedInteger__Group__1__Impl_in_rule__SignedInteger__Group__145866);
+            pushFollow(FOLLOW_rule__SignedInteger__Group__1__Impl_in_rule__SignedInteger__Group__145867);
             rule__SignedInteger__Group__1__Impl();
 
             state._fsp--;
@@ -61574,7 +61585,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22783:1: RULE_INT
             {
              before(grammarAccess.getSignedIntegerAccess().getINTTerminalRuleCall_1()); 
-            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__SignedInteger__Group__1__Impl45893); 
+            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__SignedInteger__Group__1__Impl45894); 
              after(grammarAccess.getSignedIntegerAccess().getINTTerminalRuleCall_1()); 
 
             }
@@ -61607,12 +61618,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22802:1: ( rule__Decimal__Group__0__Impl rule__Decimal__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22803:2: rule__Decimal__Group__0__Impl rule__Decimal__Group__1
             {
-            pushFollow(FOLLOW_rule__Decimal__Group__0__Impl_in_rule__Decimal__Group__045926);
+            pushFollow(FOLLOW_rule__Decimal__Group__0__Impl_in_rule__Decimal__Group__045927);
             rule__Decimal__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Decimal__Group__1_in_rule__Decimal__Group__045929);
+            pushFollow(FOLLOW_rule__Decimal__Group__1_in_rule__Decimal__Group__045930);
             rule__Decimal__Group__1();
 
             state._fsp--;
@@ -61650,17 +61661,17 @@
             {
              before(grammarAccess.getDecimalAccess().getAlternatives_0()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22817:1: ( rule__Decimal__Alternatives_0 )?
-            int alt197=2;
-            int LA197_0 = input.LA(1);
+            int alt198=2;
+            int LA198_0 = input.LA(1);
 
-            if ( ((LA197_0>=27 && LA197_0<=28)) ) {
-                alt197=1;
+            if ( ((LA198_0>=27 && LA198_0<=28)) ) {
+                alt198=1;
             }
-            switch (alt197) {
+            switch (alt198) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22817:2: rule__Decimal__Alternatives_0
                     {
-                    pushFollow(FOLLOW_rule__Decimal__Alternatives_0_in_rule__Decimal__Group__0__Impl45956);
+                    pushFollow(FOLLOW_rule__Decimal__Alternatives_0_in_rule__Decimal__Group__0__Impl45957);
                     rule__Decimal__Alternatives_0();
 
                     state._fsp--;
@@ -61703,12 +61714,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22831:1: ( rule__Decimal__Group__1__Impl rule__Decimal__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22832:2: rule__Decimal__Group__1__Impl rule__Decimal__Group__2
             {
-            pushFollow(FOLLOW_rule__Decimal__Group__1__Impl_in_rule__Decimal__Group__145987);
+            pushFollow(FOLLOW_rule__Decimal__Group__1__Impl_in_rule__Decimal__Group__145988);
             rule__Decimal__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Decimal__Group__2_in_rule__Decimal__Group__145990);
+            pushFollow(FOLLOW_rule__Decimal__Group__2_in_rule__Decimal__Group__145991);
             rule__Decimal__Group__2();
 
             state._fsp--;
@@ -61745,7 +61756,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22845:1: RULE_INT
             {
              before(grammarAccess.getDecimalAccess().getINTTerminalRuleCall_1()); 
-            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__Decimal__Group__1__Impl46017); 
+            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__Decimal__Group__1__Impl46018); 
              after(grammarAccess.getDecimalAccess().getINTTerminalRuleCall_1()); 
 
             }
@@ -61778,12 +61789,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22860:1: ( rule__Decimal__Group__2__Impl rule__Decimal__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22861:2: rule__Decimal__Group__2__Impl rule__Decimal__Group__3
             {
-            pushFollow(FOLLOW_rule__Decimal__Group__2__Impl_in_rule__Decimal__Group__246046);
+            pushFollow(FOLLOW_rule__Decimal__Group__2__Impl_in_rule__Decimal__Group__246047);
             rule__Decimal__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__Decimal__Group__3_in_rule__Decimal__Group__246049);
+            pushFollow(FOLLOW_rule__Decimal__Group__3_in_rule__Decimal__Group__246050);
             rule__Decimal__Group__3();
 
             state._fsp--;
@@ -61820,7 +61831,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22874:1: '.'
             {
              before(grammarAccess.getDecimalAccess().getFullStopKeyword_2()); 
-            match(input,85,FOLLOW_85_in_rule__Decimal__Group__2__Impl46077); 
+            match(input,85,FOLLOW_85_in_rule__Decimal__Group__2__Impl46078); 
              after(grammarAccess.getDecimalAccess().getFullStopKeyword_2()); 
 
             }
@@ -61853,7 +61864,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22891:1: ( rule__Decimal__Group__3__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22892:2: rule__Decimal__Group__3__Impl
             {
-            pushFollow(FOLLOW_rule__Decimal__Group__3__Impl_in_rule__Decimal__Group__346108);
+            pushFollow(FOLLOW_rule__Decimal__Group__3__Impl_in_rule__Decimal__Group__346109);
             rule__Decimal__Group__3__Impl();
 
             state._fsp--;
@@ -61890,7 +61901,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22904:1: RULE_INT
             {
              before(grammarAccess.getDecimalAccess().getINTTerminalRuleCall_3()); 
-            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__Decimal__Group__3__Impl46135); 
+            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__Decimal__Group__3__Impl46136); 
              after(grammarAccess.getDecimalAccess().getINTTerminalRuleCall_3()); 
 
             }
@@ -61923,12 +61934,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22927:1: ( rule__DotDecimal__Group__0__Impl rule__DotDecimal__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22928:2: rule__DotDecimal__Group__0__Impl rule__DotDecimal__Group__1
             {
-            pushFollow(FOLLOW_rule__DotDecimal__Group__0__Impl_in_rule__DotDecimal__Group__046172);
+            pushFollow(FOLLOW_rule__DotDecimal__Group__0__Impl_in_rule__DotDecimal__Group__046173);
             rule__DotDecimal__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__DotDecimal__Group__1_in_rule__DotDecimal__Group__046175);
+            pushFollow(FOLLOW_rule__DotDecimal__Group__1_in_rule__DotDecimal__Group__046176);
             rule__DotDecimal__Group__1();
 
             state._fsp--;
@@ -61966,17 +61977,17 @@
             {
              before(grammarAccess.getDotDecimalAccess().getAlternatives_0()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22942:1: ( rule__DotDecimal__Alternatives_0 )?
-            int alt198=2;
-            int LA198_0 = input.LA(1);
+            int alt199=2;
+            int LA199_0 = input.LA(1);
 
-            if ( ((LA198_0>=27 && LA198_0<=28)) ) {
-                alt198=1;
+            if ( ((LA199_0>=27 && LA199_0<=28)) ) {
+                alt199=1;
             }
-            switch (alt198) {
+            switch (alt199) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22942:2: rule__DotDecimal__Alternatives_0
                     {
-                    pushFollow(FOLLOW_rule__DotDecimal__Alternatives_0_in_rule__DotDecimal__Group__0__Impl46202);
+                    pushFollow(FOLLOW_rule__DotDecimal__Alternatives_0_in_rule__DotDecimal__Group__0__Impl46203);
                     rule__DotDecimal__Alternatives_0();
 
                     state._fsp--;
@@ -62019,12 +62030,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22956:1: ( rule__DotDecimal__Group__1__Impl rule__DotDecimal__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22957:2: rule__DotDecimal__Group__1__Impl rule__DotDecimal__Group__2
             {
-            pushFollow(FOLLOW_rule__DotDecimal__Group__1__Impl_in_rule__DotDecimal__Group__146233);
+            pushFollow(FOLLOW_rule__DotDecimal__Group__1__Impl_in_rule__DotDecimal__Group__146234);
             rule__DotDecimal__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__DotDecimal__Group__2_in_rule__DotDecimal__Group__146236);
+            pushFollow(FOLLOW_rule__DotDecimal__Group__2_in_rule__DotDecimal__Group__146237);
             rule__DotDecimal__Group__2();
 
             state._fsp--;
@@ -62061,7 +62072,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22970:1: '.'
             {
              before(grammarAccess.getDotDecimalAccess().getFullStopKeyword_1()); 
-            match(input,85,FOLLOW_85_in_rule__DotDecimal__Group__1__Impl46264); 
+            match(input,85,FOLLOW_85_in_rule__DotDecimal__Group__1__Impl46265); 
              after(grammarAccess.getDotDecimalAccess().getFullStopKeyword_1()); 
 
             }
@@ -62094,7 +62105,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22987:1: ( rule__DotDecimal__Group__2__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:22988:2: rule__DotDecimal__Group__2__Impl
             {
-            pushFollow(FOLLOW_rule__DotDecimal__Group__2__Impl_in_rule__DotDecimal__Group__246295);
+            pushFollow(FOLLOW_rule__DotDecimal__Group__2__Impl_in_rule__DotDecimal__Group__246296);
             rule__DotDecimal__Group__2__Impl();
 
             state._fsp--;
@@ -62131,7 +62142,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23000:1: RULE_INT
             {
              before(grammarAccess.getDotDecimalAccess().getINTTerminalRuleCall_2()); 
-            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__DotDecimal__Group__2__Impl46322); 
+            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__DotDecimal__Group__2__Impl46323); 
              after(grammarAccess.getDotDecimalAccess().getINTTerminalRuleCall_2()); 
 
             }
@@ -62164,12 +62175,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23021:1: ( rule__DecimalDot__Group__0__Impl rule__DecimalDot__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23022:2: rule__DecimalDot__Group__0__Impl rule__DecimalDot__Group__1
             {
-            pushFollow(FOLLOW_rule__DecimalDot__Group__0__Impl_in_rule__DecimalDot__Group__046357);
+            pushFollow(FOLLOW_rule__DecimalDot__Group__0__Impl_in_rule__DecimalDot__Group__046358);
             rule__DecimalDot__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__DecimalDot__Group__1_in_rule__DecimalDot__Group__046360);
+            pushFollow(FOLLOW_rule__DecimalDot__Group__1_in_rule__DecimalDot__Group__046361);
             rule__DecimalDot__Group__1();
 
             state._fsp--;
@@ -62207,17 +62218,17 @@
             {
              before(grammarAccess.getDecimalDotAccess().getAlternatives_0()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23036:1: ( rule__DecimalDot__Alternatives_0 )?
-            int alt199=2;
-            int LA199_0 = input.LA(1);
+            int alt200=2;
+            int LA200_0 = input.LA(1);
 
-            if ( ((LA199_0>=27 && LA199_0<=28)) ) {
-                alt199=1;
+            if ( ((LA200_0>=27 && LA200_0<=28)) ) {
+                alt200=1;
             }
-            switch (alt199) {
+            switch (alt200) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23036:2: rule__DecimalDot__Alternatives_0
                     {
-                    pushFollow(FOLLOW_rule__DecimalDot__Alternatives_0_in_rule__DecimalDot__Group__0__Impl46387);
+                    pushFollow(FOLLOW_rule__DecimalDot__Alternatives_0_in_rule__DecimalDot__Group__0__Impl46388);
                     rule__DecimalDot__Alternatives_0();
 
                     state._fsp--;
@@ -62260,12 +62271,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23050:1: ( rule__DecimalDot__Group__1__Impl rule__DecimalDot__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23051:2: rule__DecimalDot__Group__1__Impl rule__DecimalDot__Group__2
             {
-            pushFollow(FOLLOW_rule__DecimalDot__Group__1__Impl_in_rule__DecimalDot__Group__146418);
+            pushFollow(FOLLOW_rule__DecimalDot__Group__1__Impl_in_rule__DecimalDot__Group__146419);
             rule__DecimalDot__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__DecimalDot__Group__2_in_rule__DecimalDot__Group__146421);
+            pushFollow(FOLLOW_rule__DecimalDot__Group__2_in_rule__DecimalDot__Group__146422);
             rule__DecimalDot__Group__2();
 
             state._fsp--;
@@ -62302,7 +62313,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23064:1: RULE_INT
             {
              before(grammarAccess.getDecimalDotAccess().getINTTerminalRuleCall_1()); 
-            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__DecimalDot__Group__1__Impl46448); 
+            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__DecimalDot__Group__1__Impl46449); 
              after(grammarAccess.getDecimalDotAccess().getINTTerminalRuleCall_1()); 
 
             }
@@ -62335,7 +62346,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23079:1: ( rule__DecimalDot__Group__2__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23080:2: rule__DecimalDot__Group__2__Impl
             {
-            pushFollow(FOLLOW_rule__DecimalDot__Group__2__Impl_in_rule__DecimalDot__Group__246477);
+            pushFollow(FOLLOW_rule__DecimalDot__Group__2__Impl_in_rule__DecimalDot__Group__246478);
             rule__DecimalDot__Group__2__Impl();
 
             state._fsp--;
@@ -62372,7 +62383,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23092:1: '.'
             {
              before(grammarAccess.getDecimalDotAccess().getFullStopKeyword_2()); 
-            match(input,85,FOLLOW_85_in_rule__DecimalDot__Group__2__Impl46505); 
+            match(input,85,FOLLOW_85_in_rule__DecimalDot__Group__2__Impl46506); 
              after(grammarAccess.getDecimalDotAccess().getFullStopKeyword_2()); 
 
             }
@@ -62405,12 +62416,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23115:1: ( rule__DecimalExp__Group__0__Impl rule__DecimalExp__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23116:2: rule__DecimalExp__Group__0__Impl rule__DecimalExp__Group__1
             {
-            pushFollow(FOLLOW_rule__DecimalExp__Group__0__Impl_in_rule__DecimalExp__Group__046542);
+            pushFollow(FOLLOW_rule__DecimalExp__Group__0__Impl_in_rule__DecimalExp__Group__046543);
             rule__DecimalExp__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__DecimalExp__Group__1_in_rule__DecimalExp__Group__046545);
+            pushFollow(FOLLOW_rule__DecimalExp__Group__1_in_rule__DecimalExp__Group__046546);
             rule__DecimalExp__Group__1();
 
             state._fsp--;
@@ -62448,17 +62459,17 @@
             {
              before(grammarAccess.getDecimalExpAccess().getAlternatives_0()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23130:1: ( rule__DecimalExp__Alternatives_0 )?
-            int alt200=2;
-            int LA200_0 = input.LA(1);
+            int alt201=2;
+            int LA201_0 = input.LA(1);
 
-            if ( ((LA200_0>=27 && LA200_0<=28)) ) {
-                alt200=1;
+            if ( ((LA201_0>=27 && LA201_0<=28)) ) {
+                alt201=1;
             }
-            switch (alt200) {
+            switch (alt201) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23130:2: rule__DecimalExp__Alternatives_0
                     {
-                    pushFollow(FOLLOW_rule__DecimalExp__Alternatives_0_in_rule__DecimalExp__Group__0__Impl46572);
+                    pushFollow(FOLLOW_rule__DecimalExp__Alternatives_0_in_rule__DecimalExp__Group__0__Impl46573);
                     rule__DecimalExp__Alternatives_0();
 
                     state._fsp--;
@@ -62501,12 +62512,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23144:1: ( rule__DecimalExp__Group__1__Impl rule__DecimalExp__Group__2 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23145:2: rule__DecimalExp__Group__1__Impl rule__DecimalExp__Group__2
             {
-            pushFollow(FOLLOW_rule__DecimalExp__Group__1__Impl_in_rule__DecimalExp__Group__146603);
+            pushFollow(FOLLOW_rule__DecimalExp__Group__1__Impl_in_rule__DecimalExp__Group__146604);
             rule__DecimalExp__Group__1__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__DecimalExp__Group__2_in_rule__DecimalExp__Group__146606);
+            pushFollow(FOLLOW_rule__DecimalExp__Group__2_in_rule__DecimalExp__Group__146607);
             rule__DecimalExp__Group__2();
 
             state._fsp--;
@@ -62543,7 +62554,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23158:1: RULE_INT
             {
              before(grammarAccess.getDecimalExpAccess().getINTTerminalRuleCall_1()); 
-            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__DecimalExp__Group__1__Impl46633); 
+            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__DecimalExp__Group__1__Impl46634); 
              after(grammarAccess.getDecimalExpAccess().getINTTerminalRuleCall_1()); 
 
             }
@@ -62576,12 +62587,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23173:1: ( rule__DecimalExp__Group__2__Impl rule__DecimalExp__Group__3 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23174:2: rule__DecimalExp__Group__2__Impl rule__DecimalExp__Group__3
             {
-            pushFollow(FOLLOW_rule__DecimalExp__Group__2__Impl_in_rule__DecimalExp__Group__246662);
+            pushFollow(FOLLOW_rule__DecimalExp__Group__2__Impl_in_rule__DecimalExp__Group__246663);
             rule__DecimalExp__Group__2__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__DecimalExp__Group__3_in_rule__DecimalExp__Group__246665);
+            pushFollow(FOLLOW_rule__DecimalExp__Group__3_in_rule__DecimalExp__Group__246666);
             rule__DecimalExp__Group__3();
 
             state._fsp--;
@@ -62618,7 +62629,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23187:1: '.'
             {
              before(grammarAccess.getDecimalExpAccess().getFullStopKeyword_2()); 
-            match(input,85,FOLLOW_85_in_rule__DecimalExp__Group__2__Impl46693); 
+            match(input,85,FOLLOW_85_in_rule__DecimalExp__Group__2__Impl46694); 
              after(grammarAccess.getDecimalExpAccess().getFullStopKeyword_2()); 
 
             }
@@ -62651,12 +62662,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23204:1: ( rule__DecimalExp__Group__3__Impl rule__DecimalExp__Group__4 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23205:2: rule__DecimalExp__Group__3__Impl rule__DecimalExp__Group__4
             {
-            pushFollow(FOLLOW_rule__DecimalExp__Group__3__Impl_in_rule__DecimalExp__Group__346724);
+            pushFollow(FOLLOW_rule__DecimalExp__Group__3__Impl_in_rule__DecimalExp__Group__346725);
             rule__DecimalExp__Group__3__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__DecimalExp__Group__4_in_rule__DecimalExp__Group__346727);
+            pushFollow(FOLLOW_rule__DecimalExp__Group__4_in_rule__DecimalExp__Group__346728);
             rule__DecimalExp__Group__4();
 
             state._fsp--;
@@ -62693,7 +62704,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23218:1: RULE_INT
             {
              before(grammarAccess.getDecimalExpAccess().getINTTerminalRuleCall_3()); 
-            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__DecimalExp__Group__3__Impl46754); 
+            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__DecimalExp__Group__3__Impl46755); 
              after(grammarAccess.getDecimalExpAccess().getINTTerminalRuleCall_3()); 
 
             }
@@ -62726,7 +62737,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23233:1: ( rule__DecimalExp__Group__4__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23234:2: rule__DecimalExp__Group__4__Impl
             {
-            pushFollow(FOLLOW_rule__DecimalExp__Group__4__Impl_in_rule__DecimalExp__Group__446783);
+            pushFollow(FOLLOW_rule__DecimalExp__Group__4__Impl_in_rule__DecimalExp__Group__446784);
             rule__DecimalExp__Group__4__Impl();
 
             state._fsp--;
@@ -62763,7 +62774,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23246:1: RULE_EXP
             {
              before(grammarAccess.getDecimalExpAccess().getEXPTerminalRuleCall_4()); 
-            match(input,RULE_EXP,FOLLOW_RULE_EXP_in_rule__DecimalExp__Group__4__Impl46810); 
+            match(input,RULE_EXP,FOLLOW_RULE_EXP_in_rule__DecimalExp__Group__4__Impl46811); 
              after(grammarAccess.getDecimalExpAccess().getEXPTerminalRuleCall_4()); 
 
             }
@@ -62796,12 +62807,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23271:1: ( rule__FQN__Group__0__Impl rule__FQN__Group__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23272:2: rule__FQN__Group__0__Impl rule__FQN__Group__1
             {
-            pushFollow(FOLLOW_rule__FQN__Group__0__Impl_in_rule__FQN__Group__046849);
+            pushFollow(FOLLOW_rule__FQN__Group__0__Impl_in_rule__FQN__Group__046850);
             rule__FQN__Group__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__FQN__Group__1_in_rule__FQN__Group__046852);
+            pushFollow(FOLLOW_rule__FQN__Group__1_in_rule__FQN__Group__046853);
             rule__FQN__Group__1();
 
             state._fsp--;
@@ -62838,7 +62849,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23285:1: RULE_ID
             {
              before(grammarAccess.getFQNAccess().getIDTerminalRuleCall_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__FQN__Group__0__Impl46879); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__FQN__Group__0__Impl46880); 
              after(grammarAccess.getFQNAccess().getIDTerminalRuleCall_0()); 
 
             }
@@ -62871,7 +62882,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23300:1: ( rule__FQN__Group__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23301:2: rule__FQN__Group__1__Impl
             {
-            pushFollow(FOLLOW_rule__FQN__Group__1__Impl_in_rule__FQN__Group__146908);
+            pushFollow(FOLLOW_rule__FQN__Group__1__Impl_in_rule__FQN__Group__146909);
             rule__FQN__Group__1__Impl();
 
             state._fsp--;
@@ -62909,21 +62920,21 @@
             {
              before(grammarAccess.getFQNAccess().getGroup_1()); 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23314:1: ( rule__FQN__Group_1__0 )*
-            loop201:
+            loop202:
             do {
-                int alt201=2;
-                int LA201_0 = input.LA(1);
+                int alt202=2;
+                int LA202_0 = input.LA(1);
 
-                if ( (LA201_0==85) ) {
-                    alt201=1;
+                if ( (LA202_0==85) ) {
+                    alt202=1;
                 }
 
 
-                switch (alt201) {
+                switch (alt202) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23314:2: rule__FQN__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_rule__FQN__Group_1__0_in_rule__FQN__Group__1__Impl46935);
+            	    pushFollow(FOLLOW_rule__FQN__Group_1__0_in_rule__FQN__Group__1__Impl46936);
             	    rule__FQN__Group_1__0();
 
             	    state._fsp--;
@@ -62933,7 +62944,7 @@
             	    break;
 
             	default :
-            	    break loop201;
+            	    break loop202;
                 }
             } while (true);
 
@@ -62969,12 +62980,12 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23332:1: ( rule__FQN__Group_1__0__Impl rule__FQN__Group_1__1 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23333:2: rule__FQN__Group_1__0__Impl rule__FQN__Group_1__1
             {
-            pushFollow(FOLLOW_rule__FQN__Group_1__0__Impl_in_rule__FQN__Group_1__046970);
+            pushFollow(FOLLOW_rule__FQN__Group_1__0__Impl_in_rule__FQN__Group_1__046971);
             rule__FQN__Group_1__0__Impl();
 
             state._fsp--;
 
-            pushFollow(FOLLOW_rule__FQN__Group_1__1_in_rule__FQN__Group_1__046973);
+            pushFollow(FOLLOW_rule__FQN__Group_1__1_in_rule__FQN__Group_1__046974);
             rule__FQN__Group_1__1();
 
             state._fsp--;
@@ -63011,7 +63022,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23346:1: '.'
             {
              before(grammarAccess.getFQNAccess().getFullStopKeyword_1_0()); 
-            match(input,85,FOLLOW_85_in_rule__FQN__Group_1__0__Impl47001); 
+            match(input,85,FOLLOW_85_in_rule__FQN__Group_1__0__Impl47002); 
              after(grammarAccess.getFQNAccess().getFullStopKeyword_1_0()); 
 
             }
@@ -63044,7 +63055,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23363:1: ( rule__FQN__Group_1__1__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23364:2: rule__FQN__Group_1__1__Impl
             {
-            pushFollow(FOLLOW_rule__FQN__Group_1__1__Impl_in_rule__FQN__Group_1__147032);
+            pushFollow(FOLLOW_rule__FQN__Group_1__1__Impl_in_rule__FQN__Group_1__147033);
             rule__FQN__Group_1__1__Impl();
 
             state._fsp--;
@@ -63081,7 +63092,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23376:1: RULE_ID
             {
              before(grammarAccess.getFQNAccess().getIDTerminalRuleCall_1_1()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__FQN__Group_1__1__Impl47059); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__FQN__Group_1__1__Impl47060); 
              after(grammarAccess.getFQNAccess().getIDTerminalRuleCall_1_1()); 
 
             }
@@ -63116,20 +63127,20 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23398:2: ( rule__ActorClass__UnorderedGroup_0__0 )?
             {
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23398:2: ( rule__ActorClass__UnorderedGroup_0__0 )?
-            int alt202=2;
-            int LA202_0 = input.LA(1);
+            int alt203=2;
+            int LA203_0 = input.LA(1);
 
-            if ( LA202_0 ==128 && getUnorderedGroupHelper().canSelect(grammarAccess.getActorClassAccess().getUnorderedGroup_0(), 0) ) {
-                alt202=1;
+            if ( LA203_0 ==128 && getUnorderedGroupHelper().canSelect(grammarAccess.getActorClassAccess().getUnorderedGroup_0(), 0) ) {
+                alt203=1;
             }
-            else if ( ( LA202_0 >=29 && LA202_0<=31 ||LA202_0==34 ) && getUnorderedGroupHelper().canSelect(grammarAccess.getActorClassAccess().getUnorderedGroup_0(), 1) ) {
-                alt202=1;
+            else if ( ( LA203_0 >=29 && LA203_0<=31 ||LA203_0==34 ) && getUnorderedGroupHelper().canSelect(grammarAccess.getActorClassAccess().getUnorderedGroup_0(), 1) ) {
+                alt203=1;
             }
-            switch (alt202) {
+            switch (alt203) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23398:2: rule__ActorClass__UnorderedGroup_0__0
                     {
-                    pushFollow(FOLLOW_rule__ActorClass__UnorderedGroup_0__0_in_rule__ActorClass__UnorderedGroup_047093);
+                    pushFollow(FOLLOW_rule__ActorClass__UnorderedGroup_0__0_in_rule__ActorClass__UnorderedGroup_047094);
                     rule__ActorClass__UnorderedGroup_0__0();
 
                     state._fsp--;
@@ -63171,22 +63182,22 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23414:3: ( ({...}? => ( ( ( rule__ActorClass__AbstractAssignment_0_0 ) ) ) ) | ({...}? => ( ( ( rule__ActorClass__CommTypeAssignment_0_1 ) ) ) ) )
             {
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23414:3: ( ({...}? => ( ( ( rule__ActorClass__AbstractAssignment_0_0 ) ) ) ) | ({...}? => ( ( ( rule__ActorClass__CommTypeAssignment_0_1 ) ) ) ) )
-            int alt203=2;
-            int LA203_0 = input.LA(1);
+            int alt204=2;
+            int LA204_0 = input.LA(1);
 
-            if ( LA203_0 ==128 && getUnorderedGroupHelper().canSelect(grammarAccess.getActorClassAccess().getUnorderedGroup_0(), 0) ) {
-                alt203=1;
+            if ( LA204_0 ==128 && getUnorderedGroupHelper().canSelect(grammarAccess.getActorClassAccess().getUnorderedGroup_0(), 0) ) {
+                alt204=1;
             }
-            else if ( ( LA203_0 >=29 && LA203_0<=31 ||LA203_0==34 ) && getUnorderedGroupHelper().canSelect(grammarAccess.getActorClassAccess().getUnorderedGroup_0(), 1) ) {
-                alt203=2;
+            else if ( ( LA204_0 >=29 && LA204_0<=31 ||LA204_0==34 ) && getUnorderedGroupHelper().canSelect(grammarAccess.getActorClassAccess().getUnorderedGroup_0(), 1) ) {
+                alt204=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 203, 0, input);
+                    new NoViableAltException("", 204, 0, input);
 
                 throw nvae;
             }
-            switch (alt203) {
+            switch (alt204) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23416:4: ({...}? => ( ( ( rule__ActorClass__AbstractAssignment_0_0 ) ) ) )
                     {
@@ -63212,7 +63223,7 @@
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23427:7: ( rule__ActorClass__AbstractAssignment_0_0 )
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23427:8: rule__ActorClass__AbstractAssignment_0_0
                     {
-                    pushFollow(FOLLOW_rule__ActorClass__AbstractAssignment_0_0_in_rule__ActorClass__UnorderedGroup_0__Impl47180);
+                    pushFollow(FOLLOW_rule__ActorClass__AbstractAssignment_0_0_in_rule__ActorClass__UnorderedGroup_0__Impl47181);
                     rule__ActorClass__AbstractAssignment_0_0();
 
                     state._fsp--;
@@ -63258,7 +63269,7 @@
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23444:7: ( rule__ActorClass__CommTypeAssignment_0_1 )
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23444:8: rule__ActorClass__CommTypeAssignment_0_1
                     {
-                    pushFollow(FOLLOW_rule__ActorClass__CommTypeAssignment_0_1_in_rule__ActorClass__UnorderedGroup_0__Impl47271);
+                    pushFollow(FOLLOW_rule__ActorClass__CommTypeAssignment_0_1_in_rule__ActorClass__UnorderedGroup_0__Impl47272);
                     rule__ActorClass__CommTypeAssignment_0_1();
 
                     state._fsp--;
@@ -63312,26 +63323,26 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23463:1: ( rule__ActorClass__UnorderedGroup_0__Impl ( rule__ActorClass__UnorderedGroup_0__1 )? )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23464:2: rule__ActorClass__UnorderedGroup_0__Impl ( rule__ActorClass__UnorderedGroup_0__1 )?
             {
-            pushFollow(FOLLOW_rule__ActorClass__UnorderedGroup_0__Impl_in_rule__ActorClass__UnorderedGroup_0__047330);
+            pushFollow(FOLLOW_rule__ActorClass__UnorderedGroup_0__Impl_in_rule__ActorClass__UnorderedGroup_0__047331);
             rule__ActorClass__UnorderedGroup_0__Impl();
 
             state._fsp--;
 
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23465:2: ( rule__ActorClass__UnorderedGroup_0__1 )?
-            int alt204=2;
-            int LA204_0 = input.LA(1);
+            int alt205=2;
+            int LA205_0 = input.LA(1);
 
-            if ( LA204_0 ==128 && getUnorderedGroupHelper().canSelect(grammarAccess.getActorClassAccess().getUnorderedGroup_0(), 0) ) {
-                alt204=1;
+            if ( LA205_0 ==128 && getUnorderedGroupHelper().canSelect(grammarAccess.getActorClassAccess().getUnorderedGroup_0(), 0) ) {
+                alt205=1;
             }
-            else if ( ( LA204_0 >=29 && LA204_0<=31 ||LA204_0==34 ) && getUnorderedGroupHelper().canSelect(grammarAccess.getActorClassAccess().getUnorderedGroup_0(), 1) ) {
-                alt204=1;
+            else if ( ( LA205_0 >=29 && LA205_0<=31 ||LA205_0==34 ) && getUnorderedGroupHelper().canSelect(grammarAccess.getActorClassAccess().getUnorderedGroup_0(), 1) ) {
+                alt205=1;
             }
-            switch (alt204) {
+            switch (alt205) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23465:2: rule__ActorClass__UnorderedGroup_0__1
                     {
-                    pushFollow(FOLLOW_rule__ActorClass__UnorderedGroup_0__1_in_rule__ActorClass__UnorderedGroup_0__047333);
+                    pushFollow(FOLLOW_rule__ActorClass__UnorderedGroup_0__1_in_rule__ActorClass__UnorderedGroup_0__047334);
                     rule__ActorClass__UnorderedGroup_0__1();
 
                     state._fsp--;
@@ -63370,7 +63381,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23476:1: ( rule__ActorClass__UnorderedGroup_0__Impl )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23477:2: rule__ActorClass__UnorderedGroup_0__Impl
             {
-            pushFollow(FOLLOW_rule__ActorClass__UnorderedGroup_0__Impl_in_rule__ActorClass__UnorderedGroup_0__147358);
+            pushFollow(FOLLOW_rule__ActorClass__UnorderedGroup_0__Impl_in_rule__ActorClass__UnorderedGroup_0__147359);
             rule__ActorClass__UnorderedGroup_0__Impl();
 
             state._fsp--;
@@ -63407,7 +63418,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23494:1: ruleFQN
             {
              before(grammarAccess.getRoomModelAccess().getNameFQNParserRuleCall_1_0()); 
-            pushFollow(FOLLOW_ruleFQN_in_rule__RoomModel__NameAssignment_147390);
+            pushFollow(FOLLOW_ruleFQN_in_rule__RoomModel__NameAssignment_147391);
             ruleFQN();
 
             state._fsp--;
@@ -63448,7 +63459,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23509:1: ruleDocumentation
             {
              before(grammarAccess.getRoomModelAccess().getDocuDocumentationParserRuleCall_2_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__RoomModel__DocuAssignment_247421);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__RoomModel__DocuAssignment_247422);
             ruleDocumentation();
 
             state._fsp--;
@@ -63489,7 +63500,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23524:1: ruleImport
             {
              before(grammarAccess.getRoomModelAccess().getImportsImportParserRuleCall_4_0()); 
-            pushFollow(FOLLOW_ruleImport_in_rule__RoomModel__ImportsAssignment_447452);
+            pushFollow(FOLLOW_ruleImport_in_rule__RoomModel__ImportsAssignment_447453);
             ruleImport();
 
             state._fsp--;
@@ -63530,7 +63541,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23539:1: rulePrimitiveType
             {
              before(grammarAccess.getRoomModelAccess().getPrimitiveTypesPrimitiveTypeParserRuleCall_5_0_0()); 
-            pushFollow(FOLLOW_rulePrimitiveType_in_rule__RoomModel__PrimitiveTypesAssignment_5_047483);
+            pushFollow(FOLLOW_rulePrimitiveType_in_rule__RoomModel__PrimitiveTypesAssignment_5_047484);
             rulePrimitiveType();
 
             state._fsp--;
@@ -63571,7 +63582,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23554:1: ruleEnumerationType
             {
              before(grammarAccess.getRoomModelAccess().getEnumerationTypesEnumerationTypeParserRuleCall_5_1_0()); 
-            pushFollow(FOLLOW_ruleEnumerationType_in_rule__RoomModel__EnumerationTypesAssignment_5_147514);
+            pushFollow(FOLLOW_ruleEnumerationType_in_rule__RoomModel__EnumerationTypesAssignment_5_147515);
             ruleEnumerationType();
 
             state._fsp--;
@@ -63612,7 +63623,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23569:1: ruleExternalType
             {
              before(grammarAccess.getRoomModelAccess().getExternalTypesExternalTypeParserRuleCall_5_2_0()); 
-            pushFollow(FOLLOW_ruleExternalType_in_rule__RoomModel__ExternalTypesAssignment_5_247545);
+            pushFollow(FOLLOW_ruleExternalType_in_rule__RoomModel__ExternalTypesAssignment_5_247546);
             ruleExternalType();
 
             state._fsp--;
@@ -63653,7 +63664,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23584:1: ruleDataClass
             {
              before(grammarAccess.getRoomModelAccess().getDataClassesDataClassParserRuleCall_5_3_0()); 
-            pushFollow(FOLLOW_ruleDataClass_in_rule__RoomModel__DataClassesAssignment_5_347576);
+            pushFollow(FOLLOW_ruleDataClass_in_rule__RoomModel__DataClassesAssignment_5_347577);
             ruleDataClass();
 
             state._fsp--;
@@ -63694,7 +63705,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23599:1: ruleGeneralProtocolClass
             {
              before(grammarAccess.getRoomModelAccess().getProtocolClassesGeneralProtocolClassParserRuleCall_5_4_0()); 
-            pushFollow(FOLLOW_ruleGeneralProtocolClass_in_rule__RoomModel__ProtocolClassesAssignment_5_447607);
+            pushFollow(FOLLOW_ruleGeneralProtocolClass_in_rule__RoomModel__ProtocolClassesAssignment_5_447608);
             ruleGeneralProtocolClass();
 
             state._fsp--;
@@ -63735,7 +63746,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23614:1: ruleActorClass
             {
              before(grammarAccess.getRoomModelAccess().getActorClassesActorClassParserRuleCall_5_5_0()); 
-            pushFollow(FOLLOW_ruleActorClass_in_rule__RoomModel__ActorClassesAssignment_5_547638);
+            pushFollow(FOLLOW_ruleActorClass_in_rule__RoomModel__ActorClassesAssignment_5_547639);
             ruleActorClass();
 
             state._fsp--;
@@ -63776,7 +63787,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23629:1: ruleSubSystemClass
             {
              before(grammarAccess.getRoomModelAccess().getSubSystemClassesSubSystemClassParserRuleCall_5_6_0()); 
-            pushFollow(FOLLOW_ruleSubSystemClass_in_rule__RoomModel__SubSystemClassesAssignment_5_647669);
+            pushFollow(FOLLOW_ruleSubSystemClass_in_rule__RoomModel__SubSystemClassesAssignment_5_647670);
             ruleSubSystemClass();
 
             state._fsp--;
@@ -63817,7 +63828,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23644:1: ruleLogicalSystem
             {
              before(grammarAccess.getRoomModelAccess().getSystemsLogicalSystemParserRuleCall_5_7_0()); 
-            pushFollow(FOLLOW_ruleLogicalSystem_in_rule__RoomModel__SystemsAssignment_5_747700);
+            pushFollow(FOLLOW_ruleLogicalSystem_in_rule__RoomModel__SystemsAssignment_5_747701);
             ruleLogicalSystem();
 
             state._fsp--;
@@ -63858,7 +63869,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23659:1: ruleAnnotationType
             {
              before(grammarAccess.getRoomModelAccess().getAnnotationTypesAnnotationTypeParserRuleCall_5_8_0()); 
-            pushFollow(FOLLOW_ruleAnnotationType_in_rule__RoomModel__AnnotationTypesAssignment_5_847731);
+            pushFollow(FOLLOW_ruleAnnotationType_in_rule__RoomModel__AnnotationTypesAssignment_5_847732);
             ruleAnnotationType();
 
             state._fsp--;
@@ -63899,7 +63910,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23674:1: RULE_ID
             {
              before(grammarAccess.getVarDeclAccess().getNameIDTerminalRuleCall_0_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__VarDecl__NameAssignment_047762); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__VarDecl__NameAssignment_047763); 
              after(grammarAccess.getVarDeclAccess().getNameIDTerminalRuleCall_0_0()); 
 
             }
@@ -63936,7 +63947,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23689:1: ruleRefableType
             {
              before(grammarAccess.getVarDeclAccess().getRefTypeRefableTypeParserRuleCall_2_0()); 
-            pushFollow(FOLLOW_ruleRefableType_in_rule__VarDecl__RefTypeAssignment_247793);
+            pushFollow(FOLLOW_ruleRefableType_in_rule__VarDecl__RefTypeAssignment_247794);
             ruleRefableType();
 
             state._fsp--;
@@ -63981,7 +63992,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23706:1: ruleFQN
             {
              before(grammarAccess.getRefableTypeAccess().getTypeDataTypeFQNParserRuleCall_0_0_1()); 
-            pushFollow(FOLLOW_ruleFQN_in_rule__RefableType__TypeAssignment_047828);
+            pushFollow(FOLLOW_ruleFQN_in_rule__RefableType__TypeAssignment_047829);
             ruleFQN();
 
             state._fsp--;
@@ -64030,7 +64041,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23725:1: 'ref'
             {
              before(grammarAccess.getRefableTypeAccess().getRefRefKeyword_1_0()); 
-            match(input,89,FOLLOW_89_in_rule__RefableType__RefAssignment_147868); 
+            match(input,89,FOLLOW_89_in_rule__RefableType__RefAssignment_147869); 
              after(grammarAccess.getRefableTypeAccess().getRefRefKeyword_1_0()); 
 
             }
@@ -64071,7 +64082,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23746:1: RULE_ID
             {
              before(grammarAccess.getPrimitiveTypeAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__PrimitiveType__NameAssignment_147907); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__PrimitiveType__NameAssignment_147908); 
              after(grammarAccess.getPrimitiveTypeAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -64108,7 +64119,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23761:1: ruleLiteralType
             {
              before(grammarAccess.getPrimitiveTypeAccess().getTypeLiteralTypeEnumRuleCall_3_0()); 
-            pushFollow(FOLLOW_ruleLiteralType_in_rule__PrimitiveType__TypeAssignment_347938);
+            pushFollow(FOLLOW_ruleLiteralType_in_rule__PrimitiveType__TypeAssignment_347939);
             ruleLiteralType();
 
             state._fsp--;
@@ -64149,7 +64160,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23776:1: RULE_STRING
             {
              before(grammarAccess.getPrimitiveTypeAccess().getTargetNameSTRINGTerminalRuleCall_5_0()); 
-            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__PrimitiveType__TargetNameAssignment_547969); 
+            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__PrimitiveType__TargetNameAssignment_547970); 
              after(grammarAccess.getPrimitiveTypeAccess().getTargetNameSTRINGTerminalRuleCall_5_0()); 
 
             }
@@ -64186,7 +64197,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23791:1: ruleFQN
             {
              before(grammarAccess.getPrimitiveTypeAccess().getCastNameFQNParserRuleCall_6_1_0()); 
-            pushFollow(FOLLOW_ruleFQN_in_rule__PrimitiveType__CastNameAssignment_6_148000);
+            pushFollow(FOLLOW_ruleFQN_in_rule__PrimitiveType__CastNameAssignment_6_148001);
             ruleFQN();
 
             state._fsp--;
@@ -64227,7 +64238,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23806:1: RULE_STRING
             {
              before(grammarAccess.getPrimitiveTypeAccess().getDefaultValueLiteralSTRINGTerminalRuleCall_8_0()); 
-            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__PrimitiveType__DefaultValueLiteralAssignment_848031); 
+            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__PrimitiveType__DefaultValueLiteralAssignment_848032); 
              after(grammarAccess.getPrimitiveTypeAccess().getDefaultValueLiteralSTRINGTerminalRuleCall_8_0()); 
 
             }
@@ -64264,7 +64275,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23821:1: ruleDocumentation
             {
              before(grammarAccess.getPrimitiveTypeAccess().getDocuDocumentationParserRuleCall_9_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__PrimitiveType__DocuAssignment_948062);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__PrimitiveType__DocuAssignment_948063);
             ruleDocumentation();
 
             state._fsp--;
@@ -64305,7 +64316,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23836:1: RULE_ID
             {
              before(grammarAccess.getEnumerationTypeAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__EnumerationType__NameAssignment_148093); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__EnumerationType__NameAssignment_148094); 
              after(grammarAccess.getEnumerationTypeAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -64342,7 +64353,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23851:1: ruleDocumentation
             {
              before(grammarAccess.getEnumerationTypeAccess().getDocuDocumentationParserRuleCall_2_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__EnumerationType__DocuAssignment_248124);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__EnumerationType__DocuAssignment_248125);
             ruleDocumentation();
 
             state._fsp--;
@@ -64387,7 +64398,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23868:1: ruleFQN
             {
              before(grammarAccess.getEnumerationTypeAccess().getPrimitiveTypePrimitiveTypeFQNParserRuleCall_3_1_0_1()); 
-            pushFollow(FOLLOW_ruleFQN_in_rule__EnumerationType__PrimitiveTypeAssignment_3_148159);
+            pushFollow(FOLLOW_ruleFQN_in_rule__EnumerationType__PrimitiveTypeAssignment_3_148160);
             ruleFQN();
 
             state._fsp--;
@@ -64432,7 +64443,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23885:1: ruleEnumLiteral
             {
              before(grammarAccess.getEnumerationTypeAccess().getLiteralsEnumLiteralParserRuleCall_5_0_0()); 
-            pushFollow(FOLLOW_ruleEnumLiteral_in_rule__EnumerationType__LiteralsAssignment_5_048194);
+            pushFollow(FOLLOW_ruleEnumLiteral_in_rule__EnumerationType__LiteralsAssignment_5_048195);
             ruleEnumLiteral();
 
             state._fsp--;
@@ -64473,7 +64484,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23900:1: ruleEnumLiteral
             {
              before(grammarAccess.getEnumerationTypeAccess().getLiteralsEnumLiteralParserRuleCall_5_1_1_0()); 
-            pushFollow(FOLLOW_ruleEnumLiteral_in_rule__EnumerationType__LiteralsAssignment_5_1_148225);
+            pushFollow(FOLLOW_ruleEnumLiteral_in_rule__EnumerationType__LiteralsAssignment_5_1_148226);
             ruleEnumLiteral();
 
             state._fsp--;
@@ -64514,7 +64525,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23915:1: RULE_ID
             {
              before(grammarAccess.getEnumLiteralAccess().getNameIDTerminalRuleCall_0_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__EnumLiteral__NameAssignment_048256); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__EnumLiteral__NameAssignment_048257); 
              after(grammarAccess.getEnumLiteralAccess().getNameIDTerminalRuleCall_0_0()); 
 
             }
@@ -64551,7 +64562,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23930:1: ruleIntLiteral
             {
              before(grammarAccess.getEnumLiteralAccess().getLiteralIntLiteralParserRuleCall_1_1_0()); 
-            pushFollow(FOLLOW_ruleIntLiteral_in_rule__EnumLiteral__LiteralAssignment_1_148287);
+            pushFollow(FOLLOW_ruleIntLiteral_in_rule__EnumLiteral__LiteralAssignment_1_148288);
             ruleIntLiteral();
 
             state._fsp--;
@@ -64592,7 +64603,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23945:1: RULE_ID
             {
              before(grammarAccess.getExternalTypeAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ExternalType__NameAssignment_148318); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ExternalType__NameAssignment_148319); 
              after(grammarAccess.getExternalTypeAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -64629,7 +64640,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23960:1: RULE_STRING
             {
              before(grammarAccess.getExternalTypeAccess().getTargetNameSTRINGTerminalRuleCall_3_0()); 
-            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__ExternalType__TargetNameAssignment_348349); 
+            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__ExternalType__TargetNameAssignment_348350); 
              after(grammarAccess.getExternalTypeAccess().getTargetNameSTRINGTerminalRuleCall_3_0()); 
 
             }
@@ -64666,7 +64677,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23975:1: RULE_STRING
             {
              before(grammarAccess.getExternalTypeAccess().getDefaultValueLiteralSTRINGTerminalRuleCall_4_1_0()); 
-            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__ExternalType__DefaultValueLiteralAssignment_4_148380); 
+            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__ExternalType__DefaultValueLiteralAssignment_4_148381); 
              after(grammarAccess.getExternalTypeAccess().getDefaultValueLiteralSTRINGTerminalRuleCall_4_1_0()); 
 
             }
@@ -64703,7 +64714,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:23990:1: ruleDocumentation
             {
              before(grammarAccess.getExternalTypeAccess().getDocuDocumentationParserRuleCall_5_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__ExternalType__DocuAssignment_548411);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__ExternalType__DocuAssignment_548412);
             ruleDocumentation();
 
             state._fsp--;
@@ -64744,7 +64755,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24005:1: RULE_ID
             {
              before(grammarAccess.getDataClassAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__DataClass__NameAssignment_148442); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__DataClass__NameAssignment_148443); 
              after(grammarAccess.getDataClassAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -64781,7 +64792,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24020:1: ruleDocumentation
             {
              before(grammarAccess.getDataClassAccess().getDocuDocumentationParserRuleCall_2_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__DataClass__DocuAssignment_248473);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__DataClass__DocuAssignment_248474);
             ruleDocumentation();
 
             state._fsp--;
@@ -64826,7 +64837,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24037:1: ruleFQN
             {
              before(grammarAccess.getDataClassAccess().getBaseDataClassFQNParserRuleCall_3_1_0_1()); 
-            pushFollow(FOLLOW_ruleFQN_in_rule__DataClass__BaseAssignment_3_148508);
+            pushFollow(FOLLOW_ruleFQN_in_rule__DataClass__BaseAssignment_3_148509);
             ruleFQN();
 
             state._fsp--;
@@ -64871,7 +64882,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24054:1: ruleAnnotation
             {
              before(grammarAccess.getDataClassAccess().getAnnotationsAnnotationParserRuleCall_5_0()); 
-            pushFollow(FOLLOW_ruleAnnotation_in_rule__DataClass__AnnotationsAssignment_548543);
+            pushFollow(FOLLOW_ruleAnnotation_in_rule__DataClass__AnnotationsAssignment_548544);
             ruleAnnotation();
 
             state._fsp--;
@@ -64912,7 +64923,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24069:1: ruleDetailCode
             {
              before(grammarAccess.getDataClassAccess().getUserCode1DetailCodeParserRuleCall_6_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__DataClass__UserCode1Assignment_6_148574);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__DataClass__UserCode1Assignment_6_148575);
             ruleDetailCode();
 
             state._fsp--;
@@ -64953,7 +64964,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24084:1: ruleDetailCode
             {
              before(grammarAccess.getDataClassAccess().getUserCode2DetailCodeParserRuleCall_7_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__DataClass__UserCode2Assignment_7_148605);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__DataClass__UserCode2Assignment_7_148606);
             ruleDetailCode();
 
             state._fsp--;
@@ -64994,7 +65005,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24099:1: ruleDetailCode
             {
              before(grammarAccess.getDataClassAccess().getUserCode3DetailCodeParserRuleCall_8_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__DataClass__UserCode3Assignment_8_148636);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__DataClass__UserCode3Assignment_8_148637);
             ruleDetailCode();
 
             state._fsp--;
@@ -65035,7 +65046,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24114:1: ruleStandardOperation
             {
              before(grammarAccess.getDataClassAccess().getOperationsStandardOperationParserRuleCall_9_0_0()); 
-            pushFollow(FOLLOW_ruleStandardOperation_in_rule__DataClass__OperationsAssignment_9_048667);
+            pushFollow(FOLLOW_ruleStandardOperation_in_rule__DataClass__OperationsAssignment_9_048668);
             ruleStandardOperation();
 
             state._fsp--;
@@ -65076,7 +65087,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24129:1: ruleClassStructor
             {
              before(grammarAccess.getDataClassAccess().getStructorsClassStructorParserRuleCall_9_1_0()); 
-            pushFollow(FOLLOW_ruleClassStructor_in_rule__DataClass__StructorsAssignment_9_148698);
+            pushFollow(FOLLOW_ruleClassStructor_in_rule__DataClass__StructorsAssignment_9_148699);
             ruleClassStructor();
 
             state._fsp--;
@@ -65117,7 +65128,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24144:1: ruleAttribute
             {
              before(grammarAccess.getDataClassAccess().getAttributesAttributeParserRuleCall_9_2_0()); 
-            pushFollow(FOLLOW_ruleAttribute_in_rule__DataClass__AttributesAssignment_9_248729);
+            pushFollow(FOLLOW_ruleAttribute_in_rule__DataClass__AttributesAssignment_9_248730);
             ruleAttribute();
 
             state._fsp--;
@@ -65158,7 +65169,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24159:1: RULE_ID
             {
              before(grammarAccess.getAttributeAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Attribute__NameAssignment_148760); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Attribute__NameAssignment_148761); 
              after(grammarAccess.getAttributeAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -65195,7 +65206,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24174:1: RULE_INT
             {
              before(grammarAccess.getAttributeAccess().getSizeINTTerminalRuleCall_2_1_0()); 
-            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__Attribute__SizeAssignment_2_148791); 
+            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__Attribute__SizeAssignment_2_148792); 
              after(grammarAccess.getAttributeAccess().getSizeINTTerminalRuleCall_2_1_0()); 
 
             }
@@ -65232,7 +65243,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24189:1: ruleRefableType
             {
              before(grammarAccess.getAttributeAccess().getTypeRefableTypeParserRuleCall_4_0()); 
-            pushFollow(FOLLOW_ruleRefableType_in_rule__Attribute__TypeAssignment_448822);
+            pushFollow(FOLLOW_ruleRefableType_in_rule__Attribute__TypeAssignment_448823);
             ruleRefableType();
 
             state._fsp--;
@@ -65273,7 +65284,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24204:1: RULE_STRING
             {
              before(grammarAccess.getAttributeAccess().getDefaultValueLiteralSTRINGTerminalRuleCall_5_1_0()); 
-            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Attribute__DefaultValueLiteralAssignment_5_148853); 
+            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Attribute__DefaultValueLiteralAssignment_5_148854); 
              after(grammarAccess.getAttributeAccess().getDefaultValueLiteralSTRINGTerminalRuleCall_5_1_0()); 
 
             }
@@ -65310,7 +65321,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24219:1: ruleDocumentation
             {
              before(grammarAccess.getAttributeAccess().getDocuDocumentationParserRuleCall_6_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__Attribute__DocuAssignment_648884);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__Attribute__DocuAssignment_648885);
             ruleDocumentation();
 
             state._fsp--;
@@ -65355,7 +65366,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24236:1: 'override'
             {
              before(grammarAccess.getStandardOperationAccess().getOverrideOverrideKeyword_0_0()); 
-            match(input,126,FOLLOW_126_in_rule__StandardOperation__OverrideAssignment_048920); 
+            match(input,126,FOLLOW_126_in_rule__StandardOperation__OverrideAssignment_048921); 
              after(grammarAccess.getStandardOperationAccess().getOverrideOverrideKeyword_0_0()); 
 
             }
@@ -65396,7 +65407,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24257:1: RULE_ID
             {
              before(grammarAccess.getStandardOperationAccess().getNameIDTerminalRuleCall_2_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__StandardOperation__NameAssignment_248959); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__StandardOperation__NameAssignment_248960); 
              after(grammarAccess.getStandardOperationAccess().getNameIDTerminalRuleCall_2_0()); 
 
             }
@@ -65433,7 +65444,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24272:1: ruleVarDecl
             {
              before(grammarAccess.getStandardOperationAccess().getArgumentsVarDeclParserRuleCall_4_0_0()); 
-            pushFollow(FOLLOW_ruleVarDecl_in_rule__StandardOperation__ArgumentsAssignment_4_048990);
+            pushFollow(FOLLOW_ruleVarDecl_in_rule__StandardOperation__ArgumentsAssignment_4_048991);
             ruleVarDecl();
 
             state._fsp--;
@@ -65474,7 +65485,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24287:1: ruleVarDecl
             {
              before(grammarAccess.getStandardOperationAccess().getArgumentsVarDeclParserRuleCall_4_1_1_0()); 
-            pushFollow(FOLLOW_ruleVarDecl_in_rule__StandardOperation__ArgumentsAssignment_4_1_149021);
+            pushFollow(FOLLOW_ruleVarDecl_in_rule__StandardOperation__ArgumentsAssignment_4_1_149022);
             ruleVarDecl();
 
             state._fsp--;
@@ -65515,7 +65526,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24302:1: ruleRefableType
             {
              before(grammarAccess.getStandardOperationAccess().getReturnTypeRefableTypeParserRuleCall_6_1_1_0()); 
-            pushFollow(FOLLOW_ruleRefableType_in_rule__StandardOperation__ReturnTypeAssignment_6_1_149052);
+            pushFollow(FOLLOW_ruleRefableType_in_rule__StandardOperation__ReturnTypeAssignment_6_1_149053);
             ruleRefableType();
 
             state._fsp--;
@@ -65556,7 +65567,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24317:1: ruleDocumentation
             {
              before(grammarAccess.getStandardOperationAccess().getDocuDocumentationParserRuleCall_7_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__StandardOperation__DocuAssignment_749083);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__StandardOperation__DocuAssignment_749084);
             ruleDocumentation();
 
             state._fsp--;
@@ -65597,7 +65608,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24332:1: ruleDetailCode
             {
              before(grammarAccess.getStandardOperationAccess().getDetailCodeDetailCodeParserRuleCall_8_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__StandardOperation__DetailCodeAssignment_849114);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__StandardOperation__DetailCodeAssignment_849115);
             ruleDetailCode();
 
             state._fsp--;
@@ -65638,7 +65649,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24347:1: RULE_ID
             {
              before(grammarAccess.getPortOperationAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__PortOperation__NameAssignment_149145); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__PortOperation__NameAssignment_149146); 
              after(grammarAccess.getPortOperationAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -65675,7 +65686,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24362:1: ruleVarDecl
             {
              before(grammarAccess.getPortOperationAccess().getArgumentsVarDeclParserRuleCall_3_0_0()); 
-            pushFollow(FOLLOW_ruleVarDecl_in_rule__PortOperation__ArgumentsAssignment_3_049176);
+            pushFollow(FOLLOW_ruleVarDecl_in_rule__PortOperation__ArgumentsAssignment_3_049177);
             ruleVarDecl();
 
             state._fsp--;
@@ -65716,7 +65727,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24377:1: ruleVarDecl
             {
              before(grammarAccess.getPortOperationAccess().getArgumentsVarDeclParserRuleCall_3_1_1_0()); 
-            pushFollow(FOLLOW_ruleVarDecl_in_rule__PortOperation__ArgumentsAssignment_3_1_149207);
+            pushFollow(FOLLOW_ruleVarDecl_in_rule__PortOperation__ArgumentsAssignment_3_1_149208);
             ruleVarDecl();
 
             state._fsp--;
@@ -65757,7 +65768,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24392:1: ruleRefableType
             {
              before(grammarAccess.getPortOperationAccess().getReturnTypeRefableTypeParserRuleCall_5_0_1_1_0()); 
-            pushFollow(FOLLOW_ruleRefableType_in_rule__PortOperation__ReturnTypeAssignment_5_0_1_149238);
+            pushFollow(FOLLOW_ruleRefableType_in_rule__PortOperation__ReturnTypeAssignment_5_0_1_149239);
             ruleRefableType();
 
             state._fsp--;
@@ -65802,7 +65813,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24409:1: RULE_ID
             {
              before(grammarAccess.getPortOperationAccess().getSendsMsgMessageIDTerminalRuleCall_5_1_1_0_1()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__PortOperation__SendsMsgAssignment_5_1_149273); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__PortOperation__SendsMsgAssignment_5_1_149274); 
              after(grammarAccess.getPortOperationAccess().getSendsMsgMessageIDTerminalRuleCall_5_1_1_0_1()); 
 
             }
@@ -65843,7 +65854,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24426:1: ruleDocumentation
             {
              before(grammarAccess.getPortOperationAccess().getDocuDocumentationParserRuleCall_6_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__PortOperation__DocuAssignment_649308);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__PortOperation__DocuAssignment_649309);
             ruleDocumentation();
 
             state._fsp--;
@@ -65884,7 +65895,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24441:1: ruleDetailCode
             {
              before(grammarAccess.getPortOperationAccess().getDetailCodeDetailCodeParserRuleCall_7_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__PortOperation__DetailCodeAssignment_749339);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__PortOperation__DetailCodeAssignment_749340);
             ruleDetailCode();
 
             state._fsp--;
@@ -65928,7 +65939,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24457:1: ( rule__ClassStructor__NameAlternatives_0_0 )
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24457:2: rule__ClassStructor__NameAlternatives_0_0
             {
-            pushFollow(FOLLOW_rule__ClassStructor__NameAlternatives_0_0_in_rule__ClassStructor__NameAssignment_049370);
+            pushFollow(FOLLOW_rule__ClassStructor__NameAlternatives_0_0_in_rule__ClassStructor__NameAssignment_049371);
             rule__ClassStructor__NameAlternatives_0_0();
 
             state._fsp--;
@@ -65972,7 +65983,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24472:1: ruleDetailCode
             {
              before(grammarAccess.getClassStructorAccess().getDetailCodeDetailCodeParserRuleCall_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__ClassStructor__DetailCodeAssignment_149403);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__ClassStructor__DetailCodeAssignment_149404);
             ruleDetailCode();
 
             state._fsp--;
@@ -66013,7 +66024,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24487:1: ruleCommunicationType
             {
              before(grammarAccess.getProtocolClassAccess().getCommTypeCommunicationTypeEnumRuleCall_0_0()); 
-            pushFollow(FOLLOW_ruleCommunicationType_in_rule__ProtocolClass__CommTypeAssignment_049434);
+            pushFollow(FOLLOW_ruleCommunicationType_in_rule__ProtocolClass__CommTypeAssignment_049435);
             ruleCommunicationType();
 
             state._fsp--;
@@ -66054,7 +66065,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24502:1: RULE_ID
             {
              before(grammarAccess.getProtocolClassAccess().getNameIDTerminalRuleCall_2_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ProtocolClass__NameAssignment_249465); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ProtocolClass__NameAssignment_249466); 
              after(grammarAccess.getProtocolClassAccess().getNameIDTerminalRuleCall_2_0()); 
 
             }
@@ -66091,7 +66102,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24517:1: ruleDocumentation
             {
              before(grammarAccess.getProtocolClassAccess().getDocuDocumentationParserRuleCall_3_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__ProtocolClass__DocuAssignment_349496);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__ProtocolClass__DocuAssignment_349497);
             ruleDocumentation();
 
             state._fsp--;
@@ -66136,7 +66147,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24534:1: ruleFQN
             {
              before(grammarAccess.getProtocolClassAccess().getBaseProtocolClassFQNParserRuleCall_4_1_0_1()); 
-            pushFollow(FOLLOW_ruleFQN_in_rule__ProtocolClass__BaseAssignment_4_149531);
+            pushFollow(FOLLOW_ruleFQN_in_rule__ProtocolClass__BaseAssignment_4_149532);
             ruleFQN();
 
             state._fsp--;
@@ -66181,7 +66192,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24551:1: ruleAnnotation
             {
              before(grammarAccess.getProtocolClassAccess().getAnnotationsAnnotationParserRuleCall_6_0()); 
-            pushFollow(FOLLOW_ruleAnnotation_in_rule__ProtocolClass__AnnotationsAssignment_649566);
+            pushFollow(FOLLOW_ruleAnnotation_in_rule__ProtocolClass__AnnotationsAssignment_649567);
             ruleAnnotation();
 
             state._fsp--;
@@ -66222,7 +66233,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24566:1: ruleDetailCode
             {
              before(grammarAccess.getProtocolClassAccess().getUserCode1DetailCodeParserRuleCall_7_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__ProtocolClass__UserCode1Assignment_7_149597);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__ProtocolClass__UserCode1Assignment_7_149598);
             ruleDetailCode();
 
             state._fsp--;
@@ -66263,7 +66274,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24581:1: ruleDetailCode
             {
              before(grammarAccess.getProtocolClassAccess().getUserCode2DetailCodeParserRuleCall_8_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__ProtocolClass__UserCode2Assignment_8_149628);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__ProtocolClass__UserCode2Assignment_8_149629);
             ruleDetailCode();
 
             state._fsp--;
@@ -66304,7 +66315,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24596:1: ruleDetailCode
             {
              before(grammarAccess.getProtocolClassAccess().getUserCode3DetailCodeParserRuleCall_9_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__ProtocolClass__UserCode3Assignment_9_149659);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__ProtocolClass__UserCode3Assignment_9_149660);
             ruleDetailCode();
 
             state._fsp--;
@@ -66345,7 +66356,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24611:1: ruleMessage
             {
              before(grammarAccess.getProtocolClassAccess().getIncomingMessagesMessageParserRuleCall_10_2_0()); 
-            pushFollow(FOLLOW_ruleMessage_in_rule__ProtocolClass__IncomingMessagesAssignment_10_249690);
+            pushFollow(FOLLOW_ruleMessage_in_rule__ProtocolClass__IncomingMessagesAssignment_10_249691);
             ruleMessage();
 
             state._fsp--;
@@ -66386,7 +66397,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24626:1: ruleMessage
             {
              before(grammarAccess.getProtocolClassAccess().getOutgoingMessagesMessageParserRuleCall_11_2_0()); 
-            pushFollow(FOLLOW_ruleMessage_in_rule__ProtocolClass__OutgoingMessagesAssignment_11_249721);
+            pushFollow(FOLLOW_ruleMessage_in_rule__ProtocolClass__OutgoingMessagesAssignment_11_249722);
             ruleMessage();
 
             state._fsp--;
@@ -66427,7 +66438,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24641:1: rulePortClass
             {
              before(grammarAccess.getProtocolClassAccess().getRegularPortClassParserRuleCall_12_2_0()); 
-            pushFollow(FOLLOW_rulePortClass_in_rule__ProtocolClass__RegularAssignment_12_249752);
+            pushFollow(FOLLOW_rulePortClass_in_rule__ProtocolClass__RegularAssignment_12_249753);
             rulePortClass();
 
             state._fsp--;
@@ -66468,7 +66479,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24656:1: rulePortClass
             {
              before(grammarAccess.getProtocolClassAccess().getConjugatedPortClassParserRuleCall_13_2_0()); 
-            pushFollow(FOLLOW_rulePortClass_in_rule__ProtocolClass__ConjugatedAssignment_13_249783);
+            pushFollow(FOLLOW_rulePortClass_in_rule__ProtocolClass__ConjugatedAssignment_13_249784);
             rulePortClass();
 
             state._fsp--;
@@ -66509,7 +66520,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24671:1: ruleProtocolSemantics
             {
              before(grammarAccess.getProtocolClassAccess().getSemanticsProtocolSemanticsParserRuleCall_14_0()); 
-            pushFollow(FOLLOW_ruleProtocolSemantics_in_rule__ProtocolClass__SemanticsAssignment_1449814);
+            pushFollow(FOLLOW_ruleProtocolSemantics_in_rule__ProtocolClass__SemanticsAssignment_1449815);
             ruleProtocolSemantics();
 
             state._fsp--;
@@ -66550,7 +66561,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24686:1: RULE_ID
             {
              before(grammarAccess.getCompoundProtocolClassAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__CompoundProtocolClass__NameAssignment_149845); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__CompoundProtocolClass__NameAssignment_149846); 
              after(grammarAccess.getCompoundProtocolClassAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -66587,7 +66598,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24701:1: ruleDocumentation
             {
              before(grammarAccess.getCompoundProtocolClassAccess().getDocuDocumentationParserRuleCall_2_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__CompoundProtocolClass__DocuAssignment_249876);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__CompoundProtocolClass__DocuAssignment_249877);
             ruleDocumentation();
 
             state._fsp--;
@@ -66628,7 +66639,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24716:1: ruleAnnotation
             {
              before(grammarAccess.getCompoundProtocolClassAccess().getAnnotationsAnnotationParserRuleCall_4_0()); 
-            pushFollow(FOLLOW_ruleAnnotation_in_rule__CompoundProtocolClass__AnnotationsAssignment_449907);
+            pushFollow(FOLLOW_ruleAnnotation_in_rule__CompoundProtocolClass__AnnotationsAssignment_449908);
             ruleAnnotation();
 
             state._fsp--;
@@ -66669,7 +66680,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24731:1: ruleSubProtocol
             {
              before(grammarAccess.getCompoundProtocolClassAccess().getSubProtocolsSubProtocolParserRuleCall_5_0()); 
-            pushFollow(FOLLOW_ruleSubProtocol_in_rule__CompoundProtocolClass__SubProtocolsAssignment_549938);
+            pushFollow(FOLLOW_ruleSubProtocol_in_rule__CompoundProtocolClass__SubProtocolsAssignment_549939);
             ruleSubProtocol();
 
             state._fsp--;
@@ -66710,7 +66721,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24746:1: RULE_ID
             {
              before(grammarAccess.getSubProtocolAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SubProtocol__NameAssignment_149969); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SubProtocol__NameAssignment_149970); 
              after(grammarAccess.getSubProtocolAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -66751,7 +66762,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24763:1: ruleFQN
             {
              before(grammarAccess.getSubProtocolAccess().getProtocolGeneralProtocolClassFQNParserRuleCall_3_0_1()); 
-            pushFollow(FOLLOW_ruleFQN_in_rule__SubProtocol__ProtocolAssignment_350004);
+            pushFollow(FOLLOW_ruleFQN_in_rule__SubProtocol__ProtocolAssignment_350005);
             ruleFQN();
 
             state._fsp--;
@@ -66800,7 +66811,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24782:1: 'private'
             {
              before(grammarAccess.getMessageAccess().getPrivPrivateKeyword_0_0()); 
-            match(input,127,FOLLOW_127_in_rule__Message__PrivAssignment_050044); 
+            match(input,127,FOLLOW_127_in_rule__Message__PrivAssignment_050045); 
              after(grammarAccess.getMessageAccess().getPrivPrivateKeyword_0_0()); 
 
             }
@@ -66841,7 +66852,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24803:1: RULE_ID
             {
              before(grammarAccess.getMessageAccess().getNameIDTerminalRuleCall_2_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Message__NameAssignment_250083); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Message__NameAssignment_250084); 
              after(grammarAccess.getMessageAccess().getNameIDTerminalRuleCall_2_0()); 
 
             }
@@ -66878,7 +66889,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24818:1: ruleVarDecl
             {
              before(grammarAccess.getMessageAccess().getDataVarDeclParserRuleCall_4_0()); 
-            pushFollow(FOLLOW_ruleVarDecl_in_rule__Message__DataAssignment_450114);
+            pushFollow(FOLLOW_ruleVarDecl_in_rule__Message__DataAssignment_450115);
             ruleVarDecl();
 
             state._fsp--;
@@ -66919,7 +66930,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24833:1: ruleDocumentation
             {
              before(grammarAccess.getMessageAccess().getDocuDocumentationParserRuleCall_6_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__Message__DocuAssignment_650145);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__Message__DocuAssignment_650146);
             ruleDocumentation();
 
             state._fsp--;
@@ -66960,7 +66971,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24848:1: ruleDetailCode
             {
              before(grammarAccess.getPortClassAccess().getUserCodeDetailCodeParserRuleCall_2_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__PortClass__UserCodeAssignment_2_150176);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__PortClass__UserCodeAssignment_2_150177);
             ruleDetailCode();
 
             state._fsp--;
@@ -67001,7 +67012,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24863:1: ruleMessageHandler
             {
              before(grammarAccess.getPortClassAccess().getMsgHandlersMessageHandlerParserRuleCall_3_0_0()); 
-            pushFollow(FOLLOW_ruleMessageHandler_in_rule__PortClass__MsgHandlersAssignment_3_050207);
+            pushFollow(FOLLOW_ruleMessageHandler_in_rule__PortClass__MsgHandlersAssignment_3_050208);
             ruleMessageHandler();
 
             state._fsp--;
@@ -67042,7 +67053,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24878:1: rulePortOperation
             {
              before(grammarAccess.getPortClassAccess().getOperationsPortOperationParserRuleCall_3_1_0()); 
-            pushFollow(FOLLOW_rulePortOperation_in_rule__PortClass__OperationsAssignment_3_150238);
+            pushFollow(FOLLOW_rulePortOperation_in_rule__PortClass__OperationsAssignment_3_150239);
             rulePortOperation();
 
             state._fsp--;
@@ -67083,7 +67094,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24893:1: ruleAttribute
             {
              before(grammarAccess.getPortClassAccess().getAttributesAttributeParserRuleCall_3_2_0()); 
-            pushFollow(FOLLOW_ruleAttribute_in_rule__PortClass__AttributesAssignment_3_250269);
+            pushFollow(FOLLOW_ruleAttribute_in_rule__PortClass__AttributesAssignment_3_250270);
             ruleAttribute();
 
             state._fsp--;
@@ -67128,7 +67139,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24910:1: RULE_ID
             {
              before(grammarAccess.getInMessageHandlerAccess().getMsgMessageIDTerminalRuleCall_2_0_1()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__InMessageHandler__MsgAssignment_250304); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__InMessageHandler__MsgAssignment_250305); 
              after(grammarAccess.getInMessageHandlerAccess().getMsgMessageIDTerminalRuleCall_2_0_1()); 
 
             }
@@ -67169,7 +67180,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24927:1: ruleDetailCode
             {
              before(grammarAccess.getInMessageHandlerAccess().getDetailCodeDetailCodeParserRuleCall_3_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__InMessageHandler__DetailCodeAssignment_350339);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__InMessageHandler__DetailCodeAssignment_350340);
             ruleDetailCode();
 
             state._fsp--;
@@ -67214,7 +67225,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24944:1: RULE_ID
             {
              before(grammarAccess.getOutMessageHandlerAccess().getMsgMessageIDTerminalRuleCall_2_0_1()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__OutMessageHandler__MsgAssignment_250374); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__OutMessageHandler__MsgAssignment_250375); 
              after(grammarAccess.getOutMessageHandlerAccess().getMsgMessageIDTerminalRuleCall_2_0_1()); 
 
             }
@@ -67255,7 +67266,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24961:1: ruleDetailCode
             {
              before(grammarAccess.getOutMessageHandlerAccess().getDetailCodeDetailCodeParserRuleCall_3_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__OutMessageHandler__DetailCodeAssignment_350409);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__OutMessageHandler__DetailCodeAssignment_350410);
             ruleDetailCode();
 
             state._fsp--;
@@ -67300,7 +67311,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24978:1: 'abstract'
             {
              before(grammarAccess.getActorClassAccess().getAbstractAbstractKeyword_0_0_0()); 
-            match(input,128,FOLLOW_128_in_rule__ActorClass__AbstractAssignment_0_050445); 
+            match(input,128,FOLLOW_128_in_rule__ActorClass__AbstractAssignment_0_050446); 
              after(grammarAccess.getActorClassAccess().getAbstractAbstractKeyword_0_0_0()); 
 
             }
@@ -67341,7 +67352,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:24999:1: ruleComponentCommunicationType
             {
              before(grammarAccess.getActorClassAccess().getCommTypeComponentCommunicationTypeEnumRuleCall_0_1_0()); 
-            pushFollow(FOLLOW_ruleComponentCommunicationType_in_rule__ActorClass__CommTypeAssignment_0_150484);
+            pushFollow(FOLLOW_ruleComponentCommunicationType_in_rule__ActorClass__CommTypeAssignment_0_150485);
             ruleComponentCommunicationType();
 
             state._fsp--;
@@ -67382,7 +67393,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25014:1: RULE_ID
             {
              before(grammarAccess.getActorClassAccess().getNameIDTerminalRuleCall_2_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ActorClass__NameAssignment_250515); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ActorClass__NameAssignment_250516); 
              after(grammarAccess.getActorClassAccess().getNameIDTerminalRuleCall_2_0()); 
 
             }
@@ -67419,7 +67430,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25029:1: ruleDocumentation
             {
              before(grammarAccess.getActorClassAccess().getDocuDocumentationParserRuleCall_3_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__ActorClass__DocuAssignment_350546);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__ActorClass__DocuAssignment_350547);
             ruleDocumentation();
 
             state._fsp--;
@@ -67464,7 +67475,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25046:1: ruleFQN
             {
              before(grammarAccess.getActorClassAccess().getBaseActorClassFQNParserRuleCall_4_1_0_1()); 
-            pushFollow(FOLLOW_ruleFQN_in_rule__ActorClass__BaseAssignment_4_150581);
+            pushFollow(FOLLOW_ruleFQN_in_rule__ActorClass__BaseAssignment_4_150582);
             ruleFQN();
 
             state._fsp--;
@@ -67509,7 +67520,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25063:1: ruleAnnotation
             {
              before(grammarAccess.getActorClassAccess().getAnnotationsAnnotationParserRuleCall_6_0()); 
-            pushFollow(FOLLOW_ruleAnnotation_in_rule__ActorClass__AnnotationsAssignment_650616);
+            pushFollow(FOLLOW_ruleAnnotation_in_rule__ActorClass__AnnotationsAssignment_650617);
             ruleAnnotation();
 
             state._fsp--;
@@ -67550,7 +67561,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25078:1: ruleSPP
             {
              before(grammarAccess.getActorClassAccess().getServiceProvisionPointsSPPParserRuleCall_7_2_0_0()); 
-            pushFollow(FOLLOW_ruleSPP_in_rule__ActorClass__ServiceProvisionPointsAssignment_7_2_050647);
+            pushFollow(FOLLOW_ruleSPP_in_rule__ActorClass__ServiceProvisionPointsAssignment_7_2_050648);
             ruleSPP();
 
             state._fsp--;
@@ -67591,7 +67602,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25093:1: rulePort
             {
              before(grammarAccess.getActorClassAccess().getInterfacePortsPortParserRuleCall_7_2_1_0()); 
-            pushFollow(FOLLOW_rulePort_in_rule__ActorClass__InterfacePortsAssignment_7_2_150678);
+            pushFollow(FOLLOW_rulePort_in_rule__ActorClass__InterfacePortsAssignment_7_2_150679);
             rulePort();
 
             state._fsp--;
@@ -67632,7 +67643,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25108:1: ruleDocumentation
             {
              before(grammarAccess.getActorClassAccess().getStructureDocuDocumentationParserRuleCall_8_1_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__ActorClass__StructureDocuAssignment_8_150709);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__ActorClass__StructureDocuAssignment_8_150710);
             ruleDocumentation();
 
             state._fsp--;
@@ -67673,7 +67684,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25123:1: ruleDetailCode
             {
              before(grammarAccess.getActorClassAccess().getUserCode1DetailCodeParserRuleCall_8_3_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__ActorClass__UserCode1Assignment_8_3_150740);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__ActorClass__UserCode1Assignment_8_3_150741);
             ruleDetailCode();
 
             state._fsp--;
@@ -67714,7 +67725,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25138:1: ruleDetailCode
             {
              before(grammarAccess.getActorClassAccess().getUserCode2DetailCodeParserRuleCall_8_4_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__ActorClass__UserCode2Assignment_8_4_150771);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__ActorClass__UserCode2Assignment_8_4_150772);
             ruleDetailCode();
 
             state._fsp--;
@@ -67755,7 +67766,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25153:1: ruleDetailCode
             {
              before(grammarAccess.getActorClassAccess().getUserCode3DetailCodeParserRuleCall_8_5_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__ActorClass__UserCode3Assignment_8_5_150802);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__ActorClass__UserCode3Assignment_8_5_150803);
             ruleDetailCode();
 
             state._fsp--;
@@ -67796,7 +67807,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25168:1: ruleLayerConnection
             {
              before(grammarAccess.getActorClassAccess().getConnectionsLayerConnectionParserRuleCall_8_6_0_0()); 
-            pushFollow(FOLLOW_ruleLayerConnection_in_rule__ActorClass__ConnectionsAssignment_8_6_050833);
+            pushFollow(FOLLOW_ruleLayerConnection_in_rule__ActorClass__ConnectionsAssignment_8_6_050834);
             ruleLayerConnection();
 
             state._fsp--;
@@ -67837,7 +67848,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25183:1: ruleBinding
             {
              before(grammarAccess.getActorClassAccess().getBindingsBindingParserRuleCall_8_6_1_0()); 
-            pushFollow(FOLLOW_ruleBinding_in_rule__ActorClass__BindingsAssignment_8_6_150864);
+            pushFollow(FOLLOW_ruleBinding_in_rule__ActorClass__BindingsAssignment_8_6_150865);
             ruleBinding();
 
             state._fsp--;
@@ -67878,7 +67889,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25198:1: ruleServiceImplementation
             {
              before(grammarAccess.getActorClassAccess().getServiceImplementationsServiceImplementationParserRuleCall_8_6_2_0()); 
-            pushFollow(FOLLOW_ruleServiceImplementation_in_rule__ActorClass__ServiceImplementationsAssignment_8_6_250895);
+            pushFollow(FOLLOW_ruleServiceImplementation_in_rule__ActorClass__ServiceImplementationsAssignment_8_6_250896);
             ruleServiceImplementation();
 
             state._fsp--;
@@ -67919,7 +67930,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25213:1: ruleAttribute
             {
              before(grammarAccess.getActorClassAccess().getAttributesAttributeParserRuleCall_8_6_3_0()); 
-            pushFollow(FOLLOW_ruleAttribute_in_rule__ActorClass__AttributesAssignment_8_6_350926);
+            pushFollow(FOLLOW_ruleAttribute_in_rule__ActorClass__AttributesAssignment_8_6_350927);
             ruleAttribute();
 
             state._fsp--;
@@ -67960,7 +67971,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25228:1: ruleActorRef
             {
              before(grammarAccess.getActorClassAccess().getActorRefsActorRefParserRuleCall_8_6_4_0()); 
-            pushFollow(FOLLOW_ruleActorRef_in_rule__ActorClass__ActorRefsAssignment_8_6_450957);
+            pushFollow(FOLLOW_ruleActorRef_in_rule__ActorClass__ActorRefsAssignment_8_6_450958);
             ruleActorRef();
 
             state._fsp--;
@@ -68001,7 +68012,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25243:1: ruleSAP
             {
              before(grammarAccess.getActorClassAccess().getServiceAccessPointsSAPParserRuleCall_8_6_5_0()); 
-            pushFollow(FOLLOW_ruleSAP_in_rule__ActorClass__ServiceAccessPointsAssignment_8_6_550988);
+            pushFollow(FOLLOW_ruleSAP_in_rule__ActorClass__ServiceAccessPointsAssignment_8_6_550989);
             ruleSAP();
 
             state._fsp--;
@@ -68042,7 +68053,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25258:1: rulePort
             {
              before(grammarAccess.getActorClassAccess().getInternalPortsPortParserRuleCall_8_6_6_0()); 
-            pushFollow(FOLLOW_rulePort_in_rule__ActorClass__InternalPortsAssignment_8_6_651019);
+            pushFollow(FOLLOW_rulePort_in_rule__ActorClass__InternalPortsAssignment_8_6_651020);
             rulePort();
 
             state._fsp--;
@@ -68083,7 +68094,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25273:1: ruleExternalPort
             {
              before(grammarAccess.getActorClassAccess().getExternalPortsExternalPortParserRuleCall_8_6_7_0()); 
-            pushFollow(FOLLOW_ruleExternalPort_in_rule__ActorClass__ExternalPortsAssignment_8_6_751050);
+            pushFollow(FOLLOW_ruleExternalPort_in_rule__ActorClass__ExternalPortsAssignment_8_6_751051);
             ruleExternalPort();
 
             state._fsp--;
@@ -68124,7 +68135,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25288:1: ruleDocumentation
             {
              before(grammarAccess.getActorClassAccess().getBehaviorDocuDocumentationParserRuleCall_9_1_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__ActorClass__BehaviorDocuAssignment_9_151081);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__ActorClass__BehaviorDocuAssignment_9_151082);
             ruleDocumentation();
 
             state._fsp--;
@@ -68165,7 +68176,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25303:1: ruleAnnotation
             {
              before(grammarAccess.getActorClassAccess().getBehaviorAnnotationsAnnotationParserRuleCall_9_3_0()); 
-            pushFollow(FOLLOW_ruleAnnotation_in_rule__ActorClass__BehaviorAnnotationsAssignment_9_351112);
+            pushFollow(FOLLOW_ruleAnnotation_in_rule__ActorClass__BehaviorAnnotationsAssignment_9_351113);
             ruleAnnotation();
 
             state._fsp--;
@@ -68206,7 +68217,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25318:1: ruleStandardOperation
             {
              before(grammarAccess.getActorClassAccess().getOperationsStandardOperationParserRuleCall_9_4_0_0()); 
-            pushFollow(FOLLOW_ruleStandardOperation_in_rule__ActorClass__OperationsAssignment_9_4_051143);
+            pushFollow(FOLLOW_ruleStandardOperation_in_rule__ActorClass__OperationsAssignment_9_4_051144);
             ruleStandardOperation();
 
             state._fsp--;
@@ -68247,7 +68258,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25333:1: ruleClassStructor
             {
              before(grammarAccess.getActorClassAccess().getStructorsClassStructorParserRuleCall_9_4_1_0()); 
-            pushFollow(FOLLOW_ruleClassStructor_in_rule__ActorClass__StructorsAssignment_9_4_151174);
+            pushFollow(FOLLOW_ruleClassStructor_in_rule__ActorClass__StructorsAssignment_9_4_151175);
             ruleClassStructor();
 
             state._fsp--;
@@ -68288,7 +68299,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25348:1: ruleStateMachine
             {
              before(grammarAccess.getActorClassAccess().getStateMachineStateMachineParserRuleCall_9_5_0()); 
-            pushFollow(FOLLOW_ruleStateMachine_in_rule__ActorClass__StateMachineAssignment_9_551205);
+            pushFollow(FOLLOW_ruleStateMachine_in_rule__ActorClass__StateMachineAssignment_9_551206);
             ruleStateMachine();
 
             state._fsp--;
@@ -68333,7 +68344,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25365:1: 'conjugated'
             {
              before(grammarAccess.getPortAccess().getConjugatedConjugatedKeyword_0_0()); 
-            match(input,66,FOLLOW_66_in_rule__Port__ConjugatedAssignment_051241); 
+            match(input,66,FOLLOW_66_in_rule__Port__ConjugatedAssignment_051242); 
              after(grammarAccess.getPortAccess().getConjugatedConjugatedKeyword_0_0()); 
 
             }
@@ -68374,7 +68385,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25386:1: RULE_ID
             {
              before(grammarAccess.getPortAccess().getNameIDTerminalRuleCall_2_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Port__NameAssignment_251280); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Port__NameAssignment_251281); 
              after(grammarAccess.getPortAccess().getNameIDTerminalRuleCall_2_0()); 
 
             }
@@ -68411,7 +68422,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25401:1: ruleMULTIPLICITY
             {
              before(grammarAccess.getPortAccess().getMultiplicityMULTIPLICITYParserRuleCall_3_0()); 
-            pushFollow(FOLLOW_ruleMULTIPLICITY_in_rule__Port__MultiplicityAssignment_351311);
+            pushFollow(FOLLOW_ruleMULTIPLICITY_in_rule__Port__MultiplicityAssignment_351312);
             ruleMULTIPLICITY();
 
             state._fsp--;
@@ -68456,7 +68467,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25418:1: ruleFQN
             {
              before(grammarAccess.getPortAccess().getProtocolGeneralProtocolClassFQNParserRuleCall_5_0_1()); 
-            pushFollow(FOLLOW_ruleFQN_in_rule__Port__ProtocolAssignment_551346);
+            pushFollow(FOLLOW_ruleFQN_in_rule__Port__ProtocolAssignment_551347);
             ruleFQN();
 
             state._fsp--;
@@ -68501,7 +68512,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25435:1: ruleDocumentation
             {
              before(grammarAccess.getPortAccess().getDocuDocumentationParserRuleCall_6_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__Port__DocuAssignment_651381);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__Port__DocuAssignment_651382);
             ruleDocumentation();
 
             state._fsp--;
@@ -68546,7 +68557,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25452:1: RULE_ID
             {
              before(grammarAccess.getExternalPortAccess().getInterfacePortPortIDTerminalRuleCall_2_0_1()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ExternalPort__InterfacePortAssignment_251416); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ExternalPort__InterfacePortAssignment_251417); 
              after(grammarAccess.getExternalPortAccess().getInterfacePortPortIDTerminalRuleCall_2_0_1()); 
 
             }
@@ -68587,7 +68598,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25469:1: RULE_ID
             {
              before(grammarAccess.getSAPAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SAP__NameAssignment_151451); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SAP__NameAssignment_151452); 
              after(grammarAccess.getSAPAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -68628,7 +68639,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25486:1: ruleFQN
             {
              before(grammarAccess.getSAPAccess().getProtocolProtocolClassFQNParserRuleCall_3_0_1()); 
-            pushFollow(FOLLOW_ruleFQN_in_rule__SAP__ProtocolAssignment_351486);
+            pushFollow(FOLLOW_ruleFQN_in_rule__SAP__ProtocolAssignment_351487);
             ruleFQN();
 
             state._fsp--;
@@ -68673,7 +68684,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25503:1: RULE_ID
             {
              before(grammarAccess.getSPPAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SPP__NameAssignment_151521); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SPP__NameAssignment_151522); 
              after(grammarAccess.getSPPAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -68714,7 +68725,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25520:1: ruleFQN
             {
              before(grammarAccess.getSPPAccess().getProtocolProtocolClassFQNParserRuleCall_3_0_1()); 
-            pushFollow(FOLLOW_ruleFQN_in_rule__SPP__ProtocolAssignment_351556);
+            pushFollow(FOLLOW_ruleFQN_in_rule__SPP__ProtocolAssignment_351557);
             ruleFQN();
 
             state._fsp--;
@@ -68763,7 +68774,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25539:1: RULE_ID
             {
              before(grammarAccess.getServiceImplementationAccess().getSppSPPIDTerminalRuleCall_2_0_1()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ServiceImplementation__SppAssignment_251595); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ServiceImplementation__SppAssignment_251596); 
              after(grammarAccess.getServiceImplementationAccess().getSppSPPIDTerminalRuleCall_2_0_1()); 
 
             }
@@ -68804,7 +68815,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25556:1: RULE_ID
             {
              before(grammarAccess.getLogicalSystemAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__LogicalSystem__NameAssignment_151630); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__LogicalSystem__NameAssignment_151631); 
              after(grammarAccess.getLogicalSystemAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -68841,7 +68852,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25571:1: ruleDocumentation
             {
              before(grammarAccess.getLogicalSystemAccess().getDocuDocumentationParserRuleCall_2_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__LogicalSystem__DocuAssignment_251661);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__LogicalSystem__DocuAssignment_251662);
             ruleDocumentation();
 
             state._fsp--;
@@ -68882,7 +68893,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25586:1: ruleAnnotation
             {
              before(grammarAccess.getLogicalSystemAccess().getAnnotationsAnnotationParserRuleCall_4_0()); 
-            pushFollow(FOLLOW_ruleAnnotation_in_rule__LogicalSystem__AnnotationsAssignment_451692);
+            pushFollow(FOLLOW_ruleAnnotation_in_rule__LogicalSystem__AnnotationsAssignment_451693);
             ruleAnnotation();
 
             state._fsp--;
@@ -68923,7 +68934,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25601:1: ruleLayerConnection
             {
              before(grammarAccess.getLogicalSystemAccess().getConnectionsLayerConnectionParserRuleCall_5_0_0()); 
-            pushFollow(FOLLOW_ruleLayerConnection_in_rule__LogicalSystem__ConnectionsAssignment_5_051723);
+            pushFollow(FOLLOW_ruleLayerConnection_in_rule__LogicalSystem__ConnectionsAssignment_5_051724);
             ruleLayerConnection();
 
             state._fsp--;
@@ -68964,7 +68975,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25616:1: ruleBinding
             {
              before(grammarAccess.getLogicalSystemAccess().getBindingsBindingParserRuleCall_5_1_0()); 
-            pushFollow(FOLLOW_ruleBinding_in_rule__LogicalSystem__BindingsAssignment_5_151754);
+            pushFollow(FOLLOW_ruleBinding_in_rule__LogicalSystem__BindingsAssignment_5_151755);
             ruleBinding();
 
             state._fsp--;
@@ -69005,7 +69016,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25631:1: ruleSubSystemRef
             {
              before(grammarAccess.getLogicalSystemAccess().getSubSystemsSubSystemRefParserRuleCall_5_2_0()); 
-            pushFollow(FOLLOW_ruleSubSystemRef_in_rule__LogicalSystem__SubSystemsAssignment_5_251785);
+            pushFollow(FOLLOW_ruleSubSystemRef_in_rule__LogicalSystem__SubSystemsAssignment_5_251786);
             ruleSubSystemRef();
 
             state._fsp--;
@@ -69046,7 +69057,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25646:1: RULE_ID
             {
              before(grammarAccess.getSubSystemRefAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SubSystemRef__NameAssignment_151816); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SubSystemRef__NameAssignment_151817); 
              after(grammarAccess.getSubSystemRefAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -69087,7 +69098,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25663:1: ruleFQN
             {
              before(grammarAccess.getSubSystemRefAccess().getTypeSubSystemClassFQNParserRuleCall_3_0_1()); 
-            pushFollow(FOLLOW_ruleFQN_in_rule__SubSystemRef__TypeAssignment_351851);
+            pushFollow(FOLLOW_ruleFQN_in_rule__SubSystemRef__TypeAssignment_351852);
             ruleFQN();
 
             state._fsp--;
@@ -69132,7 +69143,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25680:1: ruleDocumentation
             {
              before(grammarAccess.getSubSystemRefAccess().getDocuDocumentationParserRuleCall_4_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__SubSystemRef__DocuAssignment_451886);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__SubSystemRef__DocuAssignment_451887);
             ruleDocumentation();
 
             state._fsp--;
@@ -69173,7 +69184,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25695:1: RULE_ID
             {
              before(grammarAccess.getSubSystemClassAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SubSystemClass__NameAssignment_151917); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SubSystemClass__NameAssignment_151918); 
              after(grammarAccess.getSubSystemClassAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -69210,7 +69221,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25710:1: ruleDocumentation
             {
              before(grammarAccess.getSubSystemClassAccess().getDocuDocumentationParserRuleCall_2_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__SubSystemClass__DocuAssignment_251948);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__SubSystemClass__DocuAssignment_251949);
             ruleDocumentation();
 
             state._fsp--;
@@ -69251,7 +69262,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25725:1: ruleAnnotation
             {
              before(grammarAccess.getSubSystemClassAccess().getAnnotationsAnnotationParserRuleCall_4_0()); 
-            pushFollow(FOLLOW_ruleAnnotation_in_rule__SubSystemClass__AnnotationsAssignment_451979);
+            pushFollow(FOLLOW_ruleAnnotation_in_rule__SubSystemClass__AnnotationsAssignment_451980);
             ruleAnnotation();
 
             state._fsp--;
@@ -69292,7 +69303,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25740:1: ruleDetailCode
             {
              before(grammarAccess.getSubSystemClassAccess().getUserCode1DetailCodeParserRuleCall_5_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__SubSystemClass__UserCode1Assignment_5_152010);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__SubSystemClass__UserCode1Assignment_5_152011);
             ruleDetailCode();
 
             state._fsp--;
@@ -69333,7 +69344,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25755:1: ruleDetailCode
             {
              before(grammarAccess.getSubSystemClassAccess().getUserCode2DetailCodeParserRuleCall_6_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__SubSystemClass__UserCode2Assignment_6_152041);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__SubSystemClass__UserCode2Assignment_6_152042);
             ruleDetailCode();
 
             state._fsp--;
@@ -69374,7 +69385,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25770:1: ruleDetailCode
             {
              before(grammarAccess.getSubSystemClassAccess().getUserCode3DetailCodeParserRuleCall_7_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__SubSystemClass__UserCode3Assignment_7_152072);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__SubSystemClass__UserCode3Assignment_7_152073);
             ruleDetailCode();
 
             state._fsp--;
@@ -69415,7 +69426,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25785:1: ruleActorInstanceMapping
             {
              before(grammarAccess.getSubSystemClassAccess().getActorInstanceMappingsActorInstanceMappingParserRuleCall_8_0_0()); 
-            pushFollow(FOLLOW_ruleActorInstanceMapping_in_rule__SubSystemClass__ActorInstanceMappingsAssignment_8_052103);
+            pushFollow(FOLLOW_ruleActorInstanceMapping_in_rule__SubSystemClass__ActorInstanceMappingsAssignment_8_052104);
             ruleActorInstanceMapping();
 
             state._fsp--;
@@ -69456,7 +69467,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25800:1: ruleLogicalThread
             {
              before(grammarAccess.getSubSystemClassAccess().getThreadsLogicalThreadParserRuleCall_8_1_0()); 
-            pushFollow(FOLLOW_ruleLogicalThread_in_rule__SubSystemClass__ThreadsAssignment_8_152134);
+            pushFollow(FOLLOW_ruleLogicalThread_in_rule__SubSystemClass__ThreadsAssignment_8_152135);
             ruleLogicalThread();
 
             state._fsp--;
@@ -69497,7 +69508,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25815:1: ruleLayerConnection
             {
              before(grammarAccess.getSubSystemClassAccess().getConnectionsLayerConnectionParserRuleCall_8_2_0()); 
-            pushFollow(FOLLOW_ruleLayerConnection_in_rule__SubSystemClass__ConnectionsAssignment_8_252165);
+            pushFollow(FOLLOW_ruleLayerConnection_in_rule__SubSystemClass__ConnectionsAssignment_8_252166);
             ruleLayerConnection();
 
             state._fsp--;
@@ -69538,7 +69549,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25830:1: ruleBinding
             {
              before(grammarAccess.getSubSystemClassAccess().getBindingsBindingParserRuleCall_8_3_0()); 
-            pushFollow(FOLLOW_ruleBinding_in_rule__SubSystemClass__BindingsAssignment_8_352196);
+            pushFollow(FOLLOW_ruleBinding_in_rule__SubSystemClass__BindingsAssignment_8_352197);
             ruleBinding();
 
             state._fsp--;
@@ -69579,7 +69590,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25845:1: ruleActorRef
             {
              before(grammarAccess.getSubSystemClassAccess().getActorRefsActorRefParserRuleCall_8_4_0()); 
-            pushFollow(FOLLOW_ruleActorRef_in_rule__SubSystemClass__ActorRefsAssignment_8_452227);
+            pushFollow(FOLLOW_ruleActorRef_in_rule__SubSystemClass__ActorRefsAssignment_8_452228);
             ruleActorRef();
 
             state._fsp--;
@@ -69620,7 +69631,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25860:1: ruleSPP
             {
              before(grammarAccess.getSubSystemClassAccess().getServiceProvisionPointsSPPParserRuleCall_8_5_0()); 
-            pushFollow(FOLLOW_ruleSPP_in_rule__SubSystemClass__ServiceProvisionPointsAssignment_8_552258);
+            pushFollow(FOLLOW_ruleSPP_in_rule__SubSystemClass__ServiceProvisionPointsAssignment_8_552259);
             ruleSPP();
 
             state._fsp--;
@@ -69661,7 +69672,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25875:1: rulePort
             {
              before(grammarAccess.getSubSystemClassAccess().getRelayPortsPortParserRuleCall_8_6_0()); 
-            pushFollow(FOLLOW_rulePort_in_rule__SubSystemClass__RelayPortsAssignment_8_652289);
+            pushFollow(FOLLOW_rulePort_in_rule__SubSystemClass__RelayPortsAssignment_8_652290);
             rulePort();
 
             state._fsp--;
@@ -69702,7 +69713,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25890:1: RULE_ID
             {
              before(grammarAccess.getLogicalThreadAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__LogicalThread__NameAssignment_152320); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__LogicalThread__NameAssignment_152321); 
              after(grammarAccess.getLogicalThreadAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -69739,7 +69750,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25905:1: ruleRefPath
             {
              before(grammarAccess.getActorInstanceMappingAccess().getPathRefPathParserRuleCall_1_0()); 
-            pushFollow(FOLLOW_ruleRefPath_in_rule__ActorInstanceMapping__PathAssignment_152351);
+            pushFollow(FOLLOW_ruleRefPath_in_rule__ActorInstanceMapping__PathAssignment_152352);
             ruleRefPath();
 
             state._fsp--;
@@ -69784,7 +69795,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25922:1: RULE_ID
             {
              before(grammarAccess.getActorInstanceMappingAccess().getThreadLogicalThreadIDTerminalRuleCall_3_0_1()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ActorInstanceMapping__ThreadAssignment_352386); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ActorInstanceMapping__ThreadAssignment_352387); 
              after(grammarAccess.getActorInstanceMappingAccess().getThreadLogicalThreadIDTerminalRuleCall_3_0_1()); 
 
             }
@@ -69825,7 +69836,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25939:1: ruleActorInstanceMapping
             {
              before(grammarAccess.getActorInstanceMappingAccess().getActorInstanceMappingsActorInstanceMappingParserRuleCall_4_1_0()); 
-            pushFollow(FOLLOW_ruleActorInstanceMapping_in_rule__ActorInstanceMapping__ActorInstanceMappingsAssignment_4_152421);
+            pushFollow(FOLLOW_ruleActorInstanceMapping_in_rule__ActorInstanceMapping__ActorInstanceMappingsAssignment_4_152422);
             ruleActorInstanceMapping();
 
             state._fsp--;
@@ -69866,7 +69877,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25954:1: ruleRefSegment
             {
              before(grammarAccess.getRefPathAccess().getRefsRefSegmentParserRuleCall_0_0()); 
-            pushFollow(FOLLOW_ruleRefSegment_in_rule__RefPath__RefsAssignment_052452);
+            pushFollow(FOLLOW_ruleRefSegment_in_rule__RefPath__RefsAssignment_052453);
             ruleRefSegment();
 
             state._fsp--;
@@ -69907,7 +69918,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25969:1: ruleRefSegment
             {
              before(grammarAccess.getRefPathAccess().getRefsRefSegmentParserRuleCall_1_1_0()); 
-            pushFollow(FOLLOW_ruleRefSegment_in_rule__RefPath__RefsAssignment_1_152483);
+            pushFollow(FOLLOW_ruleRefSegment_in_rule__RefPath__RefsAssignment_1_152484);
             ruleRefSegment();
 
             state._fsp--;
@@ -69948,7 +69959,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25984:1: RULE_ID
             {
              before(grammarAccess.getRefSegmentAccess().getRefIDTerminalRuleCall_0_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__RefSegment__RefAssignment_052514); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__RefSegment__RefAssignment_052515); 
              after(grammarAccess.getRefSegmentAccess().getRefIDTerminalRuleCall_0_0()); 
 
             }
@@ -69985,7 +69996,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:25999:1: RULE_INT
             {
              before(grammarAccess.getRefSegmentAccess().getIdxINTTerminalRuleCall_1_1_0()); 
-            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__RefSegment__IdxAssignment_1_152545); 
+            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__RefSegment__IdxAssignment_1_152546); 
              after(grammarAccess.getRefSegmentAccess().getIdxINTTerminalRuleCall_1_1_0()); 
 
             }
@@ -70022,7 +70033,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26014:1: ruleBindingEndPoint
             {
              before(grammarAccess.getBindingAccess().getEndpoint1BindingEndPointParserRuleCall_1_0()); 
-            pushFollow(FOLLOW_ruleBindingEndPoint_in_rule__Binding__Endpoint1Assignment_152576);
+            pushFollow(FOLLOW_ruleBindingEndPoint_in_rule__Binding__Endpoint1Assignment_152577);
             ruleBindingEndPoint();
 
             state._fsp--;
@@ -70063,7 +70074,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26029:1: ruleBindingEndPoint
             {
              before(grammarAccess.getBindingAccess().getEndpoint2BindingEndPointParserRuleCall_3_0()); 
-            pushFollow(FOLLOW_ruleBindingEndPoint_in_rule__Binding__Endpoint2Assignment_352607);
+            pushFollow(FOLLOW_ruleBindingEndPoint_in_rule__Binding__Endpoint2Assignment_352608);
             ruleBindingEndPoint();
 
             state._fsp--;
@@ -70108,7 +70119,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26046:1: RULE_ID
             {
              before(grammarAccess.getBindingEndPointAccess().getActorRefActorContainerRefIDTerminalRuleCall_0_0_0_1()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__BindingEndPoint__ActorRefAssignment_0_052642); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__BindingEndPoint__ActorRefAssignment_0_052643); 
              after(grammarAccess.getBindingEndPointAccess().getActorRefActorContainerRefIDTerminalRuleCall_0_0_0_1()); 
 
             }
@@ -70153,7 +70164,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26065:1: RULE_ID
             {
              before(grammarAccess.getBindingEndPointAccess().getPortPortIDTerminalRuleCall_1_0_1()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__BindingEndPoint__PortAssignment_152681); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__BindingEndPoint__PortAssignment_152682); 
              after(grammarAccess.getBindingEndPointAccess().getPortPortIDTerminalRuleCall_1_0_1()); 
 
             }
@@ -70198,7 +70209,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26084:1: RULE_ID
             {
              before(grammarAccess.getBindingEndPointAccess().getSubSubProtocolIDTerminalRuleCall_2_1_0_1()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__BindingEndPoint__SubAssignment_2_152720); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__BindingEndPoint__SubAssignment_2_152721); 
              after(grammarAccess.getBindingEndPointAccess().getSubSubProtocolIDTerminalRuleCall_2_1_0_1()); 
 
             }
@@ -70239,7 +70250,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26101:1: ruleSAPoint
             {
              before(grammarAccess.getLayerConnectionAccess().getFromSAPointParserRuleCall_1_0()); 
-            pushFollow(FOLLOW_ruleSAPoint_in_rule__LayerConnection__FromAssignment_152755);
+            pushFollow(FOLLOW_ruleSAPoint_in_rule__LayerConnection__FromAssignment_152756);
             ruleSAPoint();
 
             state._fsp--;
@@ -70280,7 +70291,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26116:1: ruleSPPoint
             {
              before(grammarAccess.getLayerConnectionAccess().getToSPPointParserRuleCall_3_0()); 
-            pushFollow(FOLLOW_ruleSPPoint_in_rule__LayerConnection__ToAssignment_352786);
+            pushFollow(FOLLOW_ruleSPPoint_in_rule__LayerConnection__ToAssignment_352787);
             ruleSPPoint();
 
             state._fsp--;
@@ -70325,7 +70336,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26133:1: RULE_ID
             {
              before(grammarAccess.getRefSAPointAccess().getRefActorContainerRefIDTerminalRuleCall_1_0_1()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__RefSAPoint__RefAssignment_152821); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__RefSAPoint__RefAssignment_152822); 
              after(grammarAccess.getRefSAPointAccess().getRefActorContainerRefIDTerminalRuleCall_1_0_1()); 
 
             }
@@ -70370,7 +70381,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26152:1: RULE_ID
             {
              before(grammarAccess.getRelaySAPointAccess().getRelaySPPIDTerminalRuleCall_1_0_1()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__RelaySAPoint__RelayAssignment_152860); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__RelaySAPoint__RelayAssignment_152861); 
              after(grammarAccess.getRelaySAPointAccess().getRelaySPPIDTerminalRuleCall_1_0_1()); 
 
             }
@@ -70415,7 +70426,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26171:1: RULE_ID
             {
              before(grammarAccess.getSPPointAccess().getRefActorContainerRefIDTerminalRuleCall_0_0_1()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SPPoint__RefAssignment_052899); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SPPoint__RefAssignment_052900); 
              after(grammarAccess.getSPPointAccess().getRefActorContainerRefIDTerminalRuleCall_0_0_1()); 
 
             }
@@ -70460,7 +70471,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26190:1: RULE_ID
             {
              before(grammarAccess.getSPPointAccess().getServiceSPPIDTerminalRuleCall_2_0_1()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SPPoint__ServiceAssignment_252938); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SPPoint__ServiceAssignment_252939); 
              after(grammarAccess.getSPPointAccess().getServiceSPPIDTerminalRuleCall_2_0_1()); 
 
             }
@@ -70501,7 +70512,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26207:1: ruleReferenceType
             {
              before(grammarAccess.getActorRefAccess().getRefTypeReferenceTypeEnumRuleCall_0_0()); 
-            pushFollow(FOLLOW_ruleReferenceType_in_rule__ActorRef__RefTypeAssignment_052973);
+            pushFollow(FOLLOW_ruleReferenceType_in_rule__ActorRef__RefTypeAssignment_052974);
             ruleReferenceType();
 
             state._fsp--;
@@ -70542,7 +70553,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26222:1: RULE_ID
             {
              before(grammarAccess.getActorRefAccess().getNameIDTerminalRuleCall_2_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ActorRef__NameAssignment_253004); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ActorRef__NameAssignment_253005); 
              after(grammarAccess.getActorRefAccess().getNameIDTerminalRuleCall_2_0()); 
 
             }
@@ -70579,7 +70590,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26237:1: ruleMULTIPLICITY
             {
              before(grammarAccess.getActorRefAccess().getMultiplicityMULTIPLICITYParserRuleCall_3_0()); 
-            pushFollow(FOLLOW_ruleMULTIPLICITY_in_rule__ActorRef__MultiplicityAssignment_353035);
+            pushFollow(FOLLOW_ruleMULTIPLICITY_in_rule__ActorRef__MultiplicityAssignment_353036);
             ruleMULTIPLICITY();
 
             state._fsp--;
@@ -70624,7 +70635,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26254:1: ruleFQN
             {
              before(grammarAccess.getActorRefAccess().getTypeActorClassFQNParserRuleCall_5_0_1()); 
-            pushFollow(FOLLOW_ruleFQN_in_rule__ActorRef__TypeAssignment_553070);
+            pushFollow(FOLLOW_ruleFQN_in_rule__ActorRef__TypeAssignment_553071);
             ruleFQN();
 
             state._fsp--;
@@ -70669,7 +70680,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26271:1: ruleDocumentation
             {
              before(grammarAccess.getActorRefAccess().getDocuDocumentationParserRuleCall_6_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__ActorRef__DocuAssignment_653105);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__ActorRef__DocuAssignment_653106);
             ruleDocumentation();
 
             state._fsp--;
@@ -70710,7 +70721,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26287:1: ruleState
             {
              before(grammarAccess.getStateGraphAccess().getStatesStateParserRuleCall_2_0_0()); 
-            pushFollow(FOLLOW_ruleState_in_rule__StateGraph__StatesAssignment_2_053137);
+            pushFollow(FOLLOW_ruleState_in_rule__StateGraph__StatesAssignment_2_053138);
             ruleState();
 
             state._fsp--;
@@ -70751,7 +70762,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26302:1: ruleTrPoint
             {
              before(grammarAccess.getStateGraphAccess().getTrPointsTrPointParserRuleCall_2_1_0()); 
-            pushFollow(FOLLOW_ruleTrPoint_in_rule__StateGraph__TrPointsAssignment_2_153168);
+            pushFollow(FOLLOW_ruleTrPoint_in_rule__StateGraph__TrPointsAssignment_2_153169);
             ruleTrPoint();
 
             state._fsp--;
@@ -70792,7 +70803,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26317:1: ruleChoicePoint
             {
              before(grammarAccess.getStateGraphAccess().getChPointsChoicePointParserRuleCall_2_2_0()); 
-            pushFollow(FOLLOW_ruleChoicePoint_in_rule__StateGraph__ChPointsAssignment_2_253199);
+            pushFollow(FOLLOW_ruleChoicePoint_in_rule__StateGraph__ChPointsAssignment_2_253200);
             ruleChoicePoint();
 
             state._fsp--;
@@ -70833,7 +70844,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26332:1: ruleTransition
             {
              before(grammarAccess.getStateGraphAccess().getTransitionsTransitionParserRuleCall_2_3_0()); 
-            pushFollow(FOLLOW_ruleTransition_in_rule__StateGraph__TransitionsAssignment_2_353230);
+            pushFollow(FOLLOW_ruleTransition_in_rule__StateGraph__TransitionsAssignment_2_353231);
             ruleTransition();
 
             state._fsp--;
@@ -70874,7 +70885,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26347:1: ruleRefinedTransition
             {
              before(grammarAccess.getStateGraphAccess().getRefinedTransitionsRefinedTransitionParserRuleCall_2_4_0()); 
-            pushFollow(FOLLOW_ruleRefinedTransition_in_rule__StateGraph__RefinedTransitionsAssignment_2_453261);
+            pushFollow(FOLLOW_ruleRefinedTransition_in_rule__StateGraph__RefinedTransitionsAssignment_2_453262);
             ruleRefinedTransition();
 
             state._fsp--;
@@ -70915,7 +70926,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26362:1: ruleState
             {
              before(grammarAccess.getStateMachineAccess().getStatesStateParserRuleCall_3_0_0()); 
-            pushFollow(FOLLOW_ruleState_in_rule__StateMachine__StatesAssignment_3_053292);
+            pushFollow(FOLLOW_ruleState_in_rule__StateMachine__StatesAssignment_3_053293);
             ruleState();
 
             state._fsp--;
@@ -70956,7 +70967,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26377:1: ruleTrPoint
             {
              before(grammarAccess.getStateMachineAccess().getTrPointsTrPointParserRuleCall_3_1_0()); 
-            pushFollow(FOLLOW_ruleTrPoint_in_rule__StateMachine__TrPointsAssignment_3_153323);
+            pushFollow(FOLLOW_ruleTrPoint_in_rule__StateMachine__TrPointsAssignment_3_153324);
             ruleTrPoint();
 
             state._fsp--;
@@ -70997,7 +71008,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26392:1: ruleChoicePoint
             {
              before(grammarAccess.getStateMachineAccess().getChPointsChoicePointParserRuleCall_3_2_0()); 
-            pushFollow(FOLLOW_ruleChoicePoint_in_rule__StateMachine__ChPointsAssignment_3_253354);
+            pushFollow(FOLLOW_ruleChoicePoint_in_rule__StateMachine__ChPointsAssignment_3_253355);
             ruleChoicePoint();
 
             state._fsp--;
@@ -71038,7 +71049,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26407:1: ruleTransition
             {
              before(grammarAccess.getStateMachineAccess().getTransitionsTransitionParserRuleCall_3_3_0()); 
-            pushFollow(FOLLOW_ruleTransition_in_rule__StateMachine__TransitionsAssignment_3_353385);
+            pushFollow(FOLLOW_ruleTransition_in_rule__StateMachine__TransitionsAssignment_3_353386);
             ruleTransition();
 
             state._fsp--;
@@ -71079,7 +71090,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26422:1: ruleRefinedTransition
             {
              before(grammarAccess.getStateMachineAccess().getRefinedTransitionsRefinedTransitionParserRuleCall_3_4_0()); 
-            pushFollow(FOLLOW_ruleRefinedTransition_in_rule__StateMachine__RefinedTransitionsAssignment_3_453416);
+            pushFollow(FOLLOW_ruleRefinedTransition_in_rule__StateMachine__RefinedTransitionsAssignment_3_453417);
             ruleRefinedTransition();
 
             state._fsp--;
@@ -71120,7 +71131,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26437:1: RULE_ID
             {
              before(grammarAccess.getSimpleStateAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SimpleState__NameAssignment_153447); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SimpleState__NameAssignment_153448); 
              after(grammarAccess.getSimpleStateAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -71157,7 +71168,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26452:1: ruleDocumentation
             {
              before(grammarAccess.getSimpleStateAccess().getDocuDocumentationParserRuleCall_2_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__SimpleState__DocuAssignment_253478);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__SimpleState__DocuAssignment_253479);
             ruleDocumentation();
 
             state._fsp--;
@@ -71198,7 +71209,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26467:1: ruleDetailCode
             {
              before(grammarAccess.getSimpleStateAccess().getEntryCodeDetailCodeParserRuleCall_3_1_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__SimpleState__EntryCodeAssignment_3_1_153509);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__SimpleState__EntryCodeAssignment_3_1_153510);
             ruleDetailCode();
 
             state._fsp--;
@@ -71239,7 +71250,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26482:1: ruleDetailCode
             {
              before(grammarAccess.getSimpleStateAccess().getExitCodeDetailCodeParserRuleCall_3_2_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__SimpleState__ExitCodeAssignment_3_2_153540);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__SimpleState__ExitCodeAssignment_3_2_153541);
             ruleDetailCode();
 
             state._fsp--;
@@ -71280,7 +71291,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26497:1: ruleDetailCode
             {
              before(grammarAccess.getSimpleStateAccess().getDoCodeDetailCodeParserRuleCall_3_3_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__SimpleState__DoCodeAssignment_3_3_153571);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__SimpleState__DoCodeAssignment_3_3_153572);
             ruleDetailCode();
 
             state._fsp--;
@@ -71321,7 +71332,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26512:1: ruleStateGraph
             {
              before(grammarAccess.getSimpleStateAccess().getSubgraphStateGraphParserRuleCall_3_4_1_0()); 
-            pushFollow(FOLLOW_ruleStateGraph_in_rule__SimpleState__SubgraphAssignment_3_4_153602);
+            pushFollow(FOLLOW_ruleStateGraph_in_rule__SimpleState__SubgraphAssignment_3_4_153603);
             ruleStateGraph();
 
             state._fsp--;
@@ -71366,7 +71377,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26529:1: ruleFQN
             {
              before(grammarAccess.getRefinedStateAccess().getTargetStateFQNParserRuleCall_1_0_1()); 
-            pushFollow(FOLLOW_ruleFQN_in_rule__RefinedState__TargetAssignment_153637);
+            pushFollow(FOLLOW_ruleFQN_in_rule__RefinedState__TargetAssignment_153638);
             ruleFQN();
 
             state._fsp--;
@@ -71411,7 +71422,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26546:1: ruleDocumentation
             {
              before(grammarAccess.getRefinedStateAccess().getDocuDocumentationParserRuleCall_2_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__RefinedState__DocuAssignment_253672);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__RefinedState__DocuAssignment_253673);
             ruleDocumentation();
 
             state._fsp--;
@@ -71452,7 +71463,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26561:1: ruleDetailCode
             {
              before(grammarAccess.getRefinedStateAccess().getEntryCodeDetailCodeParserRuleCall_4_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__RefinedState__EntryCodeAssignment_4_153703);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__RefinedState__EntryCodeAssignment_4_153704);
             ruleDetailCode();
 
             state._fsp--;
@@ -71493,7 +71504,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26576:1: ruleDetailCode
             {
              before(grammarAccess.getRefinedStateAccess().getExitCodeDetailCodeParserRuleCall_5_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__RefinedState__ExitCodeAssignment_5_153734);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__RefinedState__ExitCodeAssignment_5_153735);
             ruleDetailCode();
 
             state._fsp--;
@@ -71534,7 +71545,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26591:1: ruleDetailCode
             {
              before(grammarAccess.getRefinedStateAccess().getDoCodeDetailCodeParserRuleCall_6_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__RefinedState__DoCodeAssignment_6_153765);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__RefinedState__DoCodeAssignment_6_153766);
             ruleDetailCode();
 
             state._fsp--;
@@ -71575,7 +71586,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26606:1: ruleStateGraph
             {
              before(grammarAccess.getRefinedStateAccess().getSubgraphStateGraphParserRuleCall_7_1_0()); 
-            pushFollow(FOLLOW_ruleStateGraph_in_rule__RefinedState__SubgraphAssignment_7_153796);
+            pushFollow(FOLLOW_ruleStateGraph_in_rule__RefinedState__SubgraphAssignment_7_153797);
             ruleStateGraph();
 
             state._fsp--;
@@ -71620,7 +71631,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26623:1: '{'
             {
              before(grammarAccess.getDetailCodeAccess().getUsedLeftCurlyBracketKeyword_1_0()); 
-            match(input,40,FOLLOW_40_in_rule__DetailCode__UsedAssignment_153832); 
+            match(input,40,FOLLOW_40_in_rule__DetailCode__UsedAssignment_153833); 
              after(grammarAccess.getDetailCodeAccess().getUsedLeftCurlyBracketKeyword_1_0()); 
 
             }
@@ -71661,7 +71672,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26644:1: RULE_STRING
             {
              before(grammarAccess.getDetailCodeAccess().getLinesSTRINGTerminalRuleCall_2_0()); 
-            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__DetailCode__LinesAssignment_253871); 
+            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__DetailCode__LinesAssignment_253872); 
              after(grammarAccess.getDetailCodeAccess().getLinesSTRINGTerminalRuleCall_2_0()); 
 
             }
@@ -71702,7 +71713,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26661:1: 'handler'
             {
              before(grammarAccess.getTransitionPointAccess().getHandlerHandlerKeyword_0_0()); 
-            match(input,129,FOLLOW_129_in_rule__TransitionPoint__HandlerAssignment_053907); 
+            match(input,129,FOLLOW_129_in_rule__TransitionPoint__HandlerAssignment_053908); 
              after(grammarAccess.getTransitionPointAccess().getHandlerHandlerKeyword_0_0()); 
 
             }
@@ -71743,7 +71754,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26682:1: RULE_ID
             {
              before(grammarAccess.getTransitionPointAccess().getNameIDTerminalRuleCall_2_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__TransitionPoint__NameAssignment_253946); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__TransitionPoint__NameAssignment_253947); 
              after(grammarAccess.getTransitionPointAccess().getNameIDTerminalRuleCall_2_0()); 
 
             }
@@ -71780,7 +71791,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26697:1: RULE_ID
             {
              before(grammarAccess.getEntryPointAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__EntryPoint__NameAssignment_153977); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__EntryPoint__NameAssignment_153978); 
              after(grammarAccess.getEntryPointAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -71817,7 +71828,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26712:1: RULE_ID
             {
              before(grammarAccess.getExitPointAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ExitPoint__NameAssignment_154008); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ExitPoint__NameAssignment_154009); 
              after(grammarAccess.getExitPointAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -71854,7 +71865,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26727:1: RULE_ID
             {
              before(grammarAccess.getChoicePointAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ChoicePoint__NameAssignment_154039); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ChoicePoint__NameAssignment_154040); 
              after(grammarAccess.getChoicePointAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -71891,7 +71902,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26742:1: ruleDocumentation
             {
              before(grammarAccess.getChoicePointAccess().getDocuDocumentationParserRuleCall_2_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__ChoicePoint__DocuAssignment_254070);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__ChoicePoint__DocuAssignment_254071);
             ruleDocumentation();
 
             state._fsp--;
@@ -71932,7 +71943,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26757:1: RULE_ID
             {
              before(grammarAccess.getInitialTransitionAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__InitialTransition__NameAssignment_154101); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__InitialTransition__NameAssignment_154102); 
              after(grammarAccess.getInitialTransitionAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -71969,7 +71980,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26772:1: ruleTransitionTerminal
             {
              before(grammarAccess.getInitialTransitionAccess().getToTransitionTerminalParserRuleCall_5_0()); 
-            pushFollow(FOLLOW_ruleTransitionTerminal_in_rule__InitialTransition__ToAssignment_554132);
+            pushFollow(FOLLOW_ruleTransitionTerminal_in_rule__InitialTransition__ToAssignment_554133);
             ruleTransitionTerminal();
 
             state._fsp--;
@@ -72010,7 +72021,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26787:1: ruleDocumentation
             {
              before(grammarAccess.getInitialTransitionAccess().getDocuDocumentationParserRuleCall_6_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__InitialTransition__DocuAssignment_654163);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__InitialTransition__DocuAssignment_654164);
             ruleDocumentation();
 
             state._fsp--;
@@ -72051,7 +72062,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26802:1: ruleDetailCode
             {
              before(grammarAccess.getInitialTransitionAccess().getActionDetailCodeParserRuleCall_7_1_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__InitialTransition__ActionAssignment_7_1_154194);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__InitialTransition__ActionAssignment_7_1_154195);
             ruleDetailCode();
 
             state._fsp--;
@@ -72092,7 +72103,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26817:1: RULE_ID
             {
              before(grammarAccess.getContinuationTransitionAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ContinuationTransition__NameAssignment_154225); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ContinuationTransition__NameAssignment_154226); 
              after(grammarAccess.getContinuationTransitionAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -72129,7 +72140,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26832:1: ruleTransitionTerminal
             {
              before(grammarAccess.getContinuationTransitionAccess().getFromTransitionTerminalParserRuleCall_3_0()); 
-            pushFollow(FOLLOW_ruleTransitionTerminal_in_rule__ContinuationTransition__FromAssignment_354256);
+            pushFollow(FOLLOW_ruleTransitionTerminal_in_rule__ContinuationTransition__FromAssignment_354257);
             ruleTransitionTerminal();
 
             state._fsp--;
@@ -72170,7 +72181,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26847:1: ruleTransitionTerminal
             {
              before(grammarAccess.getContinuationTransitionAccess().getToTransitionTerminalParserRuleCall_5_0()); 
-            pushFollow(FOLLOW_ruleTransitionTerminal_in_rule__ContinuationTransition__ToAssignment_554287);
+            pushFollow(FOLLOW_ruleTransitionTerminal_in_rule__ContinuationTransition__ToAssignment_554288);
             ruleTransitionTerminal();
 
             state._fsp--;
@@ -72211,7 +72222,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26862:1: ruleDocumentation
             {
              before(grammarAccess.getContinuationTransitionAccess().getDocuDocumentationParserRuleCall_6_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__ContinuationTransition__DocuAssignment_654318);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__ContinuationTransition__DocuAssignment_654319);
             ruleDocumentation();
 
             state._fsp--;
@@ -72252,7 +72263,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26877:1: ruleDetailCode
             {
              before(grammarAccess.getContinuationTransitionAccess().getActionDetailCodeParserRuleCall_7_1_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__ContinuationTransition__ActionAssignment_7_1_154349);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__ContinuationTransition__ActionAssignment_7_1_154350);
             ruleDetailCode();
 
             state._fsp--;
@@ -72293,7 +72304,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26892:1: RULE_ID
             {
              before(grammarAccess.getTriggeredTransitionAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__TriggeredTransition__NameAssignment_154380); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__TriggeredTransition__NameAssignment_154381); 
              after(grammarAccess.getTriggeredTransitionAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -72330,7 +72341,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26907:1: ruleTransitionTerminal
             {
              before(grammarAccess.getTriggeredTransitionAccess().getFromTransitionTerminalParserRuleCall_3_0()); 
-            pushFollow(FOLLOW_ruleTransitionTerminal_in_rule__TriggeredTransition__FromAssignment_354411);
+            pushFollow(FOLLOW_ruleTransitionTerminal_in_rule__TriggeredTransition__FromAssignment_354412);
             ruleTransitionTerminal();
 
             state._fsp--;
@@ -72371,7 +72382,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26922:1: ruleTransitionTerminal
             {
              before(grammarAccess.getTriggeredTransitionAccess().getToTransitionTerminalParserRuleCall_5_0()); 
-            pushFollow(FOLLOW_ruleTransitionTerminal_in_rule__TriggeredTransition__ToAssignment_554442);
+            pushFollow(FOLLOW_ruleTransitionTerminal_in_rule__TriggeredTransition__ToAssignment_554443);
             ruleTransitionTerminal();
 
             state._fsp--;
@@ -72412,7 +72423,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26937:1: ruleDocumentation
             {
              before(grammarAccess.getTriggeredTransitionAccess().getDocuDocumentationParserRuleCall_6_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__TriggeredTransition__DocuAssignment_654473);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__TriggeredTransition__DocuAssignment_654474);
             ruleDocumentation();
 
             state._fsp--;
@@ -72453,7 +72464,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26952:1: ruleTrigger
             {
              before(grammarAccess.getTriggeredTransitionAccess().getTriggersTriggerParserRuleCall_10_0()); 
-            pushFollow(FOLLOW_ruleTrigger_in_rule__TriggeredTransition__TriggersAssignment_1054504);
+            pushFollow(FOLLOW_ruleTrigger_in_rule__TriggeredTransition__TriggersAssignment_1054505);
             ruleTrigger();
 
             state._fsp--;
@@ -72494,7 +72505,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26967:1: ruleTrigger
             {
              before(grammarAccess.getTriggeredTransitionAccess().getTriggersTriggerParserRuleCall_11_1_0()); 
-            pushFollow(FOLLOW_ruleTrigger_in_rule__TriggeredTransition__TriggersAssignment_11_154535);
+            pushFollow(FOLLOW_ruleTrigger_in_rule__TriggeredTransition__TriggersAssignment_11_154536);
             ruleTrigger();
 
             state._fsp--;
@@ -72535,7 +72546,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26982:1: ruleDetailCode
             {
              before(grammarAccess.getTriggeredTransitionAccess().getActionDetailCodeParserRuleCall_13_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__TriggeredTransition__ActionAssignment_13_154566);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__TriggeredTransition__ActionAssignment_13_154567);
             ruleDetailCode();
 
             state._fsp--;
@@ -72576,7 +72587,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:26997:1: RULE_ID
             {
              before(grammarAccess.getGuardedTransitionAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__GuardedTransition__NameAssignment_154597); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__GuardedTransition__NameAssignment_154598); 
              after(grammarAccess.getGuardedTransitionAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -72613,7 +72624,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27012:1: ruleTransitionTerminal
             {
              before(grammarAccess.getGuardedTransitionAccess().getFromTransitionTerminalParserRuleCall_3_0()); 
-            pushFollow(FOLLOW_ruleTransitionTerminal_in_rule__GuardedTransition__FromAssignment_354628);
+            pushFollow(FOLLOW_ruleTransitionTerminal_in_rule__GuardedTransition__FromAssignment_354629);
             ruleTransitionTerminal();
 
             state._fsp--;
@@ -72654,7 +72665,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27027:1: ruleTransitionTerminal
             {
              before(grammarAccess.getGuardedTransitionAccess().getToTransitionTerminalParserRuleCall_5_0()); 
-            pushFollow(FOLLOW_ruleTransitionTerminal_in_rule__GuardedTransition__ToAssignment_554659);
+            pushFollow(FOLLOW_ruleTransitionTerminal_in_rule__GuardedTransition__ToAssignment_554660);
             ruleTransitionTerminal();
 
             state._fsp--;
@@ -72695,7 +72706,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27042:1: ruleDocumentation
             {
              before(grammarAccess.getGuardedTransitionAccess().getDocuDocumentationParserRuleCall_6_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__GuardedTransition__DocuAssignment_654690);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__GuardedTransition__DocuAssignment_654691);
             ruleDocumentation();
 
             state._fsp--;
@@ -72736,7 +72747,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27057:1: ruleDetailCode
             {
              before(grammarAccess.getGuardedTransitionAccess().getGuardDetailCodeParserRuleCall_9_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__GuardedTransition__GuardAssignment_954721);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__GuardedTransition__GuardAssignment_954722);
             ruleDetailCode();
 
             state._fsp--;
@@ -72777,7 +72788,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27072:1: ruleDetailCode
             {
              before(grammarAccess.getGuardedTransitionAccess().getActionDetailCodeParserRuleCall_10_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__GuardedTransition__ActionAssignment_10_154752);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__GuardedTransition__ActionAssignment_10_154753);
             ruleDetailCode();
 
             state._fsp--;
@@ -72818,7 +72829,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27087:1: RULE_ID
             {
              before(grammarAccess.getCPBranchTransitionAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__CPBranchTransition__NameAssignment_154783); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__CPBranchTransition__NameAssignment_154784); 
              after(grammarAccess.getCPBranchTransitionAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -72855,7 +72866,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27102:1: ruleTransitionTerminal
             {
              before(grammarAccess.getCPBranchTransitionAccess().getFromTransitionTerminalParserRuleCall_3_0()); 
-            pushFollow(FOLLOW_ruleTransitionTerminal_in_rule__CPBranchTransition__FromAssignment_354814);
+            pushFollow(FOLLOW_ruleTransitionTerminal_in_rule__CPBranchTransition__FromAssignment_354815);
             ruleTransitionTerminal();
 
             state._fsp--;
@@ -72896,7 +72907,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27117:1: ruleTransitionTerminal
             {
              before(grammarAccess.getCPBranchTransitionAccess().getToTransitionTerminalParserRuleCall_5_0()); 
-            pushFollow(FOLLOW_ruleTransitionTerminal_in_rule__CPBranchTransition__ToAssignment_554845);
+            pushFollow(FOLLOW_ruleTransitionTerminal_in_rule__CPBranchTransition__ToAssignment_554846);
             ruleTransitionTerminal();
 
             state._fsp--;
@@ -72937,7 +72948,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27132:1: ruleDocumentation
             {
              before(grammarAccess.getCPBranchTransitionAccess().getDocuDocumentationParserRuleCall_6_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__CPBranchTransition__DocuAssignment_654876);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__CPBranchTransition__DocuAssignment_654877);
             ruleDocumentation();
 
             state._fsp--;
@@ -72978,7 +72989,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27147:1: ruleDetailCode
             {
              before(grammarAccess.getCPBranchTransitionAccess().getConditionDetailCodeParserRuleCall_9_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__CPBranchTransition__ConditionAssignment_954907);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__CPBranchTransition__ConditionAssignment_954908);
             ruleDetailCode();
 
             state._fsp--;
@@ -73019,7 +73030,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27162:1: ruleDetailCode
             {
              before(grammarAccess.getCPBranchTransitionAccess().getActionDetailCodeParserRuleCall_10_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__CPBranchTransition__ActionAssignment_10_154938);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__CPBranchTransition__ActionAssignment_10_154939);
             ruleDetailCode();
 
             state._fsp--;
@@ -73064,7 +73075,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27179:1: ruleFQN
             {
              before(grammarAccess.getRefinedTransitionAccess().getTargetTransitionFQNParserRuleCall_1_0_1()); 
-            pushFollow(FOLLOW_ruleFQN_in_rule__RefinedTransition__TargetAssignment_154973);
+            pushFollow(FOLLOW_ruleFQN_in_rule__RefinedTransition__TargetAssignment_154974);
             ruleFQN();
 
             state._fsp--;
@@ -73109,7 +73120,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27196:1: ruleDocumentation
             {
              before(grammarAccess.getRefinedTransitionAccess().getDocuDocumentationParserRuleCall_2_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__RefinedTransition__DocuAssignment_255008);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__RefinedTransition__DocuAssignment_255009);
             ruleDocumentation();
 
             state._fsp--;
@@ -73150,7 +73161,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27211:1: ruleDetailCode
             {
              before(grammarAccess.getRefinedTransitionAccess().getActionDetailCodeParserRuleCall_5_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__RefinedTransition__ActionAssignment_555039);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__RefinedTransition__ActionAssignment_555040);
             ruleDetailCode();
 
             state._fsp--;
@@ -73195,7 +73206,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27228:1: RULE_ID
             {
              before(grammarAccess.getStateTerminalAccess().getStateStateIDTerminalRuleCall_0_1()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__StateTerminal__StateAssignment55074); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__StateTerminal__StateAssignment55075); 
              after(grammarAccess.getStateTerminalAccess().getStateStateIDTerminalRuleCall_0_1()); 
 
             }
@@ -73240,7 +73251,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27247:1: RULE_ID
             {
              before(grammarAccess.getTrPointTerminalAccess().getTrPointTrPointIDTerminalRuleCall_1_0_1()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__TrPointTerminal__TrPointAssignment_155113); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__TrPointTerminal__TrPointAssignment_155114); 
              after(grammarAccess.getTrPointTerminalAccess().getTrPointTrPointIDTerminalRuleCall_1_0_1()); 
 
             }
@@ -73285,7 +73296,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27266:1: RULE_ID
             {
              before(grammarAccess.getSubStateTrPointTerminalAccess().getTrPointTrPointIDTerminalRuleCall_0_0_1()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SubStateTrPointTerminal__TrPointAssignment_055152); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SubStateTrPointTerminal__TrPointAssignment_055153); 
              after(grammarAccess.getSubStateTrPointTerminalAccess().getTrPointTrPointIDTerminalRuleCall_0_0_1()); 
 
             }
@@ -73330,7 +73341,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27285:1: RULE_ID
             {
              before(grammarAccess.getSubStateTrPointTerminalAccess().getStateStateIDTerminalRuleCall_2_0_1()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SubStateTrPointTerminal__StateAssignment_255191); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SubStateTrPointTerminal__StateAssignment_255192); 
              after(grammarAccess.getSubStateTrPointTerminalAccess().getStateStateIDTerminalRuleCall_2_0_1()); 
 
             }
@@ -73375,7 +73386,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27304:1: RULE_ID
             {
              before(grammarAccess.getChoicepointTerminalAccess().getCpChoicePointIDTerminalRuleCall_1_0_1()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ChoicepointTerminal__CpAssignment_155230); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ChoicepointTerminal__CpAssignment_155231); 
              after(grammarAccess.getChoicepointTerminalAccess().getCpChoicePointIDTerminalRuleCall_1_0_1()); 
 
             }
@@ -73416,7 +73427,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27321:1: ruleMessageFromIf
             {
              before(grammarAccess.getTriggerAccess().getMsgFromIfPairsMessageFromIfParserRuleCall_1_0()); 
-            pushFollow(FOLLOW_ruleMessageFromIf_in_rule__Trigger__MsgFromIfPairsAssignment_155265);
+            pushFollow(FOLLOW_ruleMessageFromIf_in_rule__Trigger__MsgFromIfPairsAssignment_155266);
             ruleMessageFromIf();
 
             state._fsp--;
@@ -73457,7 +73468,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27336:1: ruleMessageFromIf
             {
              before(grammarAccess.getTriggerAccess().getMsgFromIfPairsMessageFromIfParserRuleCall_2_1_0()); 
-            pushFollow(FOLLOW_ruleMessageFromIf_in_rule__Trigger__MsgFromIfPairsAssignment_2_155296);
+            pushFollow(FOLLOW_ruleMessageFromIf_in_rule__Trigger__MsgFromIfPairsAssignment_2_155297);
             ruleMessageFromIf();
 
             state._fsp--;
@@ -73498,7 +73509,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27351:1: ruleGuard
             {
              before(grammarAccess.getTriggerAccess().getGuardGuardParserRuleCall_3_0()); 
-            pushFollow(FOLLOW_ruleGuard_in_rule__Trigger__GuardAssignment_355327);
+            pushFollow(FOLLOW_ruleGuard_in_rule__Trigger__GuardAssignment_355328);
             ruleGuard();
 
             state._fsp--;
@@ -73543,7 +73554,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27368:1: RULE_ID
             {
              before(grammarAccess.getMessageFromIfAccess().getMessageEObjectIDTerminalRuleCall_0_0_1()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__MessageFromIf__MessageAssignment_055362); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__MessageFromIf__MessageAssignment_055363); 
              after(grammarAccess.getMessageFromIfAccess().getMessageEObjectIDTerminalRuleCall_0_0_1()); 
 
             }
@@ -73588,7 +73599,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27387:1: RULE_ID
             {
              before(grammarAccess.getMessageFromIfAccess().getFromAbstractInterfaceItemIDTerminalRuleCall_2_0_1()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__MessageFromIf__FromAssignment_255401); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__MessageFromIf__FromAssignment_255402); 
              after(grammarAccess.getMessageFromIfAccess().getFromAbstractInterfaceItemIDTerminalRuleCall_2_0_1()); 
 
             }
@@ -73629,7 +73640,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27404:1: ruleDetailCode
             {
              before(grammarAccess.getGuardAccess().getGuardDetailCodeParserRuleCall_1_0()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_rule__Guard__GuardAssignment_155436);
+            pushFollow(FOLLOW_ruleDetailCode_in_rule__Guard__GuardAssignment_155437);
             ruleDetailCode();
 
             state._fsp--;
@@ -73670,7 +73681,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27419:1: ruleSemanticsRule
             {
              before(grammarAccess.getProtocolSemanticsAccess().getRulesSemanticsRuleParserRuleCall_3_0()); 
-            pushFollow(FOLLOW_ruleSemanticsRule_in_rule__ProtocolSemantics__RulesAssignment_355467);
+            pushFollow(FOLLOW_ruleSemanticsRule_in_rule__ProtocolSemantics__RulesAssignment_355468);
             ruleSemanticsRule();
 
             state._fsp--;
@@ -73715,7 +73726,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27436:1: RULE_ID
             {
              before(grammarAccess.getInSemanticsRuleAccess().getMsgEObjectIDTerminalRuleCall_2_0_1()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__InSemanticsRule__MsgAssignment_255502); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__InSemanticsRule__MsgAssignment_255503); 
              after(grammarAccess.getInSemanticsRuleAccess().getMsgEObjectIDTerminalRuleCall_2_0_1()); 
 
             }
@@ -73756,7 +73767,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27453:1: ruleSemanticsRule
             {
              before(grammarAccess.getInSemanticsRuleAccess().getFollowUpsSemanticsRuleParserRuleCall_3_1_0_0()); 
-            pushFollow(FOLLOW_ruleSemanticsRule_in_rule__InSemanticsRule__FollowUpsAssignment_3_1_055537);
+            pushFollow(FOLLOW_ruleSemanticsRule_in_rule__InSemanticsRule__FollowUpsAssignment_3_1_055538);
             ruleSemanticsRule();
 
             state._fsp--;
@@ -73797,7 +73808,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27468:1: ruleSemanticsRule
             {
              before(grammarAccess.getInSemanticsRuleAccess().getFollowUpsSemanticsRuleParserRuleCall_3_1_1_1_0()); 
-            pushFollow(FOLLOW_ruleSemanticsRule_in_rule__InSemanticsRule__FollowUpsAssignment_3_1_1_155568);
+            pushFollow(FOLLOW_ruleSemanticsRule_in_rule__InSemanticsRule__FollowUpsAssignment_3_1_1_155569);
             ruleSemanticsRule();
 
             state._fsp--;
@@ -73838,7 +73849,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27483:1: ruleSemanticsRule
             {
              before(grammarAccess.getInSemanticsRuleAccess().getFollowUpsSemanticsRuleParserRuleCall_3_1_1_2_1_0()); 
-            pushFollow(FOLLOW_ruleSemanticsRule_in_rule__InSemanticsRule__FollowUpsAssignment_3_1_1_2_155599);
+            pushFollow(FOLLOW_ruleSemanticsRule_in_rule__InSemanticsRule__FollowUpsAssignment_3_1_1_2_155600);
             ruleSemanticsRule();
 
             state._fsp--;
@@ -73883,7 +73894,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27500:1: RULE_ID
             {
              before(grammarAccess.getOutSemanticsRuleAccess().getMsgEObjectIDTerminalRuleCall_2_0_1()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__OutSemanticsRule__MsgAssignment_255634); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__OutSemanticsRule__MsgAssignment_255635); 
              after(grammarAccess.getOutSemanticsRuleAccess().getMsgEObjectIDTerminalRuleCall_2_0_1()); 
 
             }
@@ -73924,7 +73935,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27517:1: ruleSemanticsRule
             {
              before(grammarAccess.getOutSemanticsRuleAccess().getFollowUpsSemanticsRuleParserRuleCall_3_1_0_0()); 
-            pushFollow(FOLLOW_ruleSemanticsRule_in_rule__OutSemanticsRule__FollowUpsAssignment_3_1_055669);
+            pushFollow(FOLLOW_ruleSemanticsRule_in_rule__OutSemanticsRule__FollowUpsAssignment_3_1_055670);
             ruleSemanticsRule();
 
             state._fsp--;
@@ -73965,7 +73976,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27532:1: ruleSemanticsRule
             {
              before(grammarAccess.getOutSemanticsRuleAccess().getFollowUpsSemanticsRuleParserRuleCall_3_1_1_1_0()); 
-            pushFollow(FOLLOW_ruleSemanticsRule_in_rule__OutSemanticsRule__FollowUpsAssignment_3_1_1_155700);
+            pushFollow(FOLLOW_ruleSemanticsRule_in_rule__OutSemanticsRule__FollowUpsAssignment_3_1_1_155701);
             ruleSemanticsRule();
 
             state._fsp--;
@@ -74006,7 +74017,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27547:1: ruleSemanticsRule
             {
              before(grammarAccess.getOutSemanticsRuleAccess().getFollowUpsSemanticsRuleParserRuleCall_3_1_1_2_1_0()); 
-            pushFollow(FOLLOW_ruleSemanticsRule_in_rule__OutSemanticsRule__FollowUpsAssignment_3_1_1_2_155731);
+            pushFollow(FOLLOW_ruleSemanticsRule_in_rule__OutSemanticsRule__FollowUpsAssignment_3_1_1_2_155732);
             ruleSemanticsRule();
 
             state._fsp--;
@@ -74051,7 +74062,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27564:1: ruleFQN
             {
              before(grammarAccess.getAnnotationAccess().getTypeAnnotationTypeFQNParserRuleCall_1_0_1()); 
-            pushFollow(FOLLOW_ruleFQN_in_rule__Annotation__TypeAssignment_155766);
+            pushFollow(FOLLOW_ruleFQN_in_rule__Annotation__TypeAssignment_155767);
             ruleFQN();
 
             state._fsp--;
@@ -74096,7 +74107,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27581:1: ruleKeyValue
             {
              before(grammarAccess.getAnnotationAccess().getAttributesKeyValueParserRuleCall_2_1_0()); 
-            pushFollow(FOLLOW_ruleKeyValue_in_rule__Annotation__AttributesAssignment_2_155801);
+            pushFollow(FOLLOW_ruleKeyValue_in_rule__Annotation__AttributesAssignment_2_155802);
             ruleKeyValue();
 
             state._fsp--;
@@ -74137,7 +74148,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27596:1: ruleKeyValue
             {
              before(grammarAccess.getAnnotationAccess().getAttributesKeyValueParserRuleCall_2_2_1_0()); 
-            pushFollow(FOLLOW_ruleKeyValue_in_rule__Annotation__AttributesAssignment_2_2_155832);
+            pushFollow(FOLLOW_ruleKeyValue_in_rule__Annotation__AttributesAssignment_2_2_155833);
             ruleKeyValue();
 
             state._fsp--;
@@ -74178,7 +74189,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27611:1: RULE_ID
             {
              before(grammarAccess.getKeyValueAccess().getKeyIDTerminalRuleCall_0_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__KeyValue__KeyAssignment_055863); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__KeyValue__KeyAssignment_055864); 
              after(grammarAccess.getKeyValueAccess().getKeyIDTerminalRuleCall_0_0()); 
 
             }
@@ -74215,7 +74226,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27626:1: ruleLiteral
             {
              before(grammarAccess.getKeyValueAccess().getValueLiteralParserRuleCall_2_0()); 
-            pushFollow(FOLLOW_ruleLiteral_in_rule__KeyValue__ValueAssignment_255894);
+            pushFollow(FOLLOW_ruleLiteral_in_rule__KeyValue__ValueAssignment_255895);
             ruleLiteral();
 
             state._fsp--;
@@ -74256,7 +74267,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27641:1: RULE_ID
             {
              before(grammarAccess.getAnnotationTypeAccess().getNameIDTerminalRuleCall_1_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__AnnotationType__NameAssignment_155925); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__AnnotationType__NameAssignment_155926); 
              after(grammarAccess.getAnnotationTypeAccess().getNameIDTerminalRuleCall_1_0()); 
 
             }
@@ -74293,7 +74304,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27656:1: ruleDocumentation
             {
              before(grammarAccess.getAnnotationTypeAccess().getDocuDocumentationParserRuleCall_2_0()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_rule__AnnotationType__DocuAssignment_255956);
+            pushFollow(FOLLOW_ruleDocumentation_in_rule__AnnotationType__DocuAssignment_255957);
             ruleDocumentation();
 
             state._fsp--;
@@ -74334,7 +74345,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27671:1: ruleAnnotationTargetType
             {
              before(grammarAccess.getAnnotationTypeAccess().getTargetsAnnotationTargetTypeParserRuleCall_6_0_0()); 
-            pushFollow(FOLLOW_ruleAnnotationTargetType_in_rule__AnnotationType__TargetsAssignment_6_055987);
+            pushFollow(FOLLOW_ruleAnnotationTargetType_in_rule__AnnotationType__TargetsAssignment_6_055988);
             ruleAnnotationTargetType();
 
             state._fsp--;
@@ -74375,7 +74386,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27686:1: ruleAnnotationTargetType
             {
              before(grammarAccess.getAnnotationTypeAccess().getTargetsAnnotationTargetTypeParserRuleCall_6_1_1_0()); 
-            pushFollow(FOLLOW_ruleAnnotationTargetType_in_rule__AnnotationType__TargetsAssignment_6_1_156018);
+            pushFollow(FOLLOW_ruleAnnotationTargetType_in_rule__AnnotationType__TargetsAssignment_6_1_156019);
             ruleAnnotationTargetType();
 
             state._fsp--;
@@ -74416,7 +74427,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27701:1: ruleAnnotationTargetType
             {
              before(grammarAccess.getAnnotationTypeAccess().getTargetsAnnotationTargetTypeParserRuleCall_6_1_2_1_0()); 
-            pushFollow(FOLLOW_ruleAnnotationTargetType_in_rule__AnnotationType__TargetsAssignment_6_1_2_156049);
+            pushFollow(FOLLOW_ruleAnnotationTargetType_in_rule__AnnotationType__TargetsAssignment_6_1_2_156050);
             ruleAnnotationTargetType();
 
             state._fsp--;
@@ -74457,7 +74468,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27716:1: ruleAnnotationAttribute
             {
              before(grammarAccess.getAnnotationTypeAccess().getAttributesAnnotationAttributeParserRuleCall_7_0()); 
-            pushFollow(FOLLOW_ruleAnnotationAttribute_in_rule__AnnotationType__AttributesAssignment_756080);
+            pushFollow(FOLLOW_ruleAnnotationAttribute_in_rule__AnnotationType__AttributesAssignment_756081);
             ruleAnnotationAttribute();
 
             state._fsp--;
@@ -74502,7 +74513,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27733:1: 'optional'
             {
              before(grammarAccess.getSimpleAnnotationAttributeAccess().getOptionalOptionalKeyword_0_0_0()); 
-            match(input,33,FOLLOW_33_in_rule__SimpleAnnotationAttribute__OptionalAssignment_0_056116); 
+            match(input,33,FOLLOW_33_in_rule__SimpleAnnotationAttribute__OptionalAssignment_0_056117); 
              after(grammarAccess.getSimpleAnnotationAttributeAccess().getOptionalOptionalKeyword_0_0_0()); 
 
             }
@@ -74543,7 +74554,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27754:1: RULE_ID
             {
              before(grammarAccess.getSimpleAnnotationAttributeAccess().getNameIDTerminalRuleCall_2_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SimpleAnnotationAttribute__NameAssignment_256155); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SimpleAnnotationAttribute__NameAssignment_256156); 
              after(grammarAccess.getSimpleAnnotationAttributeAccess().getNameIDTerminalRuleCall_2_0()); 
 
             }
@@ -74580,7 +74591,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27769:1: ruleLiteralType
             {
              before(grammarAccess.getSimpleAnnotationAttributeAccess().getTypeLiteralTypeEnumRuleCall_4_0()); 
-            pushFollow(FOLLOW_ruleLiteralType_in_rule__SimpleAnnotationAttribute__TypeAssignment_456186);
+            pushFollow(FOLLOW_ruleLiteralType_in_rule__SimpleAnnotationAttribute__TypeAssignment_456187);
             ruleLiteralType();
 
             state._fsp--;
@@ -74625,7 +74636,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27786:1: 'optional'
             {
              before(grammarAccess.getEnumAnnotationAttributeAccess().getOptionalOptionalKeyword_0_0_0()); 
-            match(input,33,FOLLOW_33_in_rule__EnumAnnotationAttribute__OptionalAssignment_0_056222); 
+            match(input,33,FOLLOW_33_in_rule__EnumAnnotationAttribute__OptionalAssignment_0_056223); 
              after(grammarAccess.getEnumAnnotationAttributeAccess().getOptionalOptionalKeyword_0_0_0()); 
 
             }
@@ -74666,7 +74677,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27807:1: RULE_ID
             {
              before(grammarAccess.getEnumAnnotationAttributeAccess().getNameIDTerminalRuleCall_2_0()); 
-            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__EnumAnnotationAttribute__NameAssignment_256261); 
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__EnumAnnotationAttribute__NameAssignment_256262); 
              after(grammarAccess.getEnumAnnotationAttributeAccess().getNameIDTerminalRuleCall_2_0()); 
 
             }
@@ -74703,7 +74714,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27822:1: RULE_STRING
             {
              before(grammarAccess.getEnumAnnotationAttributeAccess().getValuesSTRINGTerminalRuleCall_5_0()); 
-            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__EnumAnnotationAttribute__ValuesAssignment_556292); 
+            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__EnumAnnotationAttribute__ValuesAssignment_556293); 
              after(grammarAccess.getEnumAnnotationAttributeAccess().getValuesSTRINGTerminalRuleCall_5_0()); 
 
             }
@@ -74740,7 +74751,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27837:1: RULE_STRING
             {
              before(grammarAccess.getEnumAnnotationAttributeAccess().getValuesSTRINGTerminalRuleCall_6_1_0()); 
-            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__EnumAnnotationAttribute__ValuesAssignment_6_156323); 
+            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__EnumAnnotationAttribute__ValuesAssignment_6_156324); 
              after(grammarAccess.getEnumAnnotationAttributeAccess().getValuesSTRINGTerminalRuleCall_6_1_0()); 
 
             }
@@ -74777,7 +74788,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27852:1: ruleImportedFQN
             {
              before(grammarAccess.getImportAccess().getImportedNamespaceImportedFQNParserRuleCall_1_0_0_0()); 
-            pushFollow(FOLLOW_ruleImportedFQN_in_rule__Import__ImportedNamespaceAssignment_1_0_056354);
+            pushFollow(FOLLOW_ruleImportedFQN_in_rule__Import__ImportedNamespaceAssignment_1_0_056355);
             ruleImportedFQN();
 
             state._fsp--;
@@ -74818,7 +74829,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27867:1: RULE_STRING
             {
              before(grammarAccess.getImportAccess().getImportURISTRINGTerminalRuleCall_2_0()); 
-            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Import__ImportURIAssignment_256385); 
+            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Import__ImportURIAssignment_256386); 
              after(grammarAccess.getImportAccess().getImportURISTRINGTerminalRuleCall_2_0()); 
 
             }
@@ -74855,7 +74866,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27882:1: RULE_STRING
             {
              before(grammarAccess.getDocumentationAccess().getLinesSTRINGTerminalRuleCall_2_0()); 
-            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Documentation__LinesAssignment_256416); 
+            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Documentation__LinesAssignment_256417); 
              after(grammarAccess.getDocumentationAccess().getLinesSTRINGTerminalRuleCall_2_0()); 
 
             }
@@ -74896,7 +74907,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27901:1: 'true'
             {
              before(grammarAccess.getBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
-            match(input,130,FOLLOW_130_in_rule__BooleanLiteral__IsTrueAssignment_1_156454); 
+            match(input,130,FOLLOW_130_in_rule__BooleanLiteral__IsTrueAssignment_1_156455); 
              after(grammarAccess.getBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
 
             }
@@ -74937,7 +74948,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27922:1: ruleReal
             {
              before(grammarAccess.getRealLiteralAccess().getValueRealParserRuleCall_1_0()); 
-            pushFollow(FOLLOW_ruleReal_in_rule__RealLiteral__ValueAssignment_156493);
+            pushFollow(FOLLOW_ruleReal_in_rule__RealLiteral__ValueAssignment_156494);
             ruleReal();
 
             state._fsp--;
@@ -74978,7 +74989,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27937:1: ruleInteger
             {
              before(grammarAccess.getIntLiteralAccess().getValueIntegerParserRuleCall_1_0()); 
-            pushFollow(FOLLOW_ruleInteger_in_rule__IntLiteral__ValueAssignment_156524);
+            pushFollow(FOLLOW_ruleInteger_in_rule__IntLiteral__ValueAssignment_156525);
             ruleInteger();
 
             state._fsp--;
@@ -75019,7 +75030,7 @@
             // ../org.eclipse.etrice.core.room.ui/src-gen/org/eclipse/etrice/core/ui/contentassist/antlr/internal/InternalRoom.g:27952:1: RULE_STRING
             {
              before(grammarAccess.getStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0()); 
-            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__StringLiteral__ValueAssignment_156555); 
+            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__StringLiteral__ValueAssignment_156556); 
              after(grammarAccess.getStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0()); 
 
             }
@@ -75117,15 +75128,15 @@
     static final String DFA29_eotS =
         "\32\uffff";
     static final String DFA29_eofS =
-        "\14\uffff\1\22\6\uffff\3\22\1\uffff\1\22\2\uffff";
+        "\13\uffff\1\22\7\uffff\3\22\1\uffff\1\22\2\uffff";
     static final String DFA29_minS =
-        "\1\147\1\7\1\52\1\7\1\54\4\7\3\54\1\50\3\7\1\10\1\51\1\uffff\3"+
-        "\50\1\10\1\50\2\uffff";
+        "\1\147\1\7\1\52\1\7\1\54\4\7\2\54\1\50\2\7\1\54\1\7\1\10\1\51\1"+
+        "\uffff\3\50\1\10\1\50\2\uffff";
     static final String DFA29_maxS =
-        "\1\147\2\52\1\160\1\61\3\7\1\160\3\54\1\u0081\3\7\1\73\1\155\1"+
-        "\uffff\3\u0081\1\73\1\u0081\2\uffff";
+        "\1\147\2\52\1\160\1\61\2\7\1\160\1\7\2\54\1\u0081\2\7\1\54\1\7"+
+        "\1\73\1\155\1\uffff\3\u0081\1\73\1\u0081\2\uffff";
     static final String DFA29_acceptS =
-        "\22\uffff\1\2\5\uffff\1\3\1\1";
+        "\22\uffff\1\2\5\uffff\1\1\1\3";
     static final String DFA29_specialS =
         "\32\uffff}>";
     static final String[] DFA29_transitionS = {
@@ -75133,21 +75144,21 @@
             "\1\2\42\uffff\1\3",
             "\1\3",
             "\1\4\147\uffff\1\5\1\6",
-            "\1\10\4\uffff\1\7",
+            "\1\7\4\uffff\1\10",
             "\1\11",
             "\1\12",
-            "\1\13",
-            "\1\14\147\uffff\1\15\1\16",
-            "\1\10",
-            "\1\10",
-            "\1\10",
+            "\1\13\147\uffff\1\14\1\15",
+            "\1\16",
+            "\1\7",
+            "\1\7",
             "\1\21\1\22\7\uffff\1\17\10\uffff\1\20\42\uffff\1\22\4\uffff"+
             "\6\22\6\uffff\1\22\22\uffff\1\22",
             "\1\23",
             "\1\24",
+            "\1\7",
             "\1\25",
             "\1\26\62\uffff\1\27",
-            "\1\22\77\uffff\1\22\1\31\1\uffff\1\31\1\30",
+            "\1\22\77\uffff\1\22\1\30\1\uffff\1\30\1\31",
             "",
             "\1\21\1\22\20\uffff\1\20\42\uffff\1\22\4\uffff\6\22\6\uffff"+
             "\1\22\22\uffff\1\22",
@@ -75200,13 +75211,13 @@
     static final String DFA30_eofS =
         "\31\uffff";
     static final String DFA30_minS =
-        "\1\147\1\7\1\52\1\7\1\54\4\7\3\54\1\50\3\7\1\10\1\152\3\50\1\10"+
-        "\1\50\2\uffff";
+        "\1\147\1\7\1\52\1\7\1\54\4\7\2\54\1\50\2\7\1\54\1\10\1\152\1\7"+
+        "\2\50\1\10\1\50\2\uffff\1\50";
     static final String DFA30_maxS =
-        "\1\147\2\52\1\160\1\61\3\7\1\160\3\54\1\72\3\7\1\73\1\154\3\72"+
-        "\1\73\1\50\2\uffff";
+        "\1\147\2\52\1\160\1\61\2\7\1\160\1\7\2\54\1\72\2\7\1\54\1\73\1"+
+        "\154\1\7\2\72\1\73\1\50\2\uffff\1\72";
     static final String DFA30_acceptS =
-        "\27\uffff\1\2\1\1";
+        "\26\uffff\1\2\1\1\1\uffff";
     static final String DFA30_specialS =
         "\31\uffff}>";
     static final String[] DFA30_transitionS = {
@@ -75214,27 +75225,27 @@
             "\1\2\42\uffff\1\3",
             "\1\3",
             "\1\4\147\uffff\1\5\1\6",
-            "\1\10\4\uffff\1\7",
+            "\1\7\4\uffff\1\10",
             "\1\11",
             "\1\12",
-            "\1\13",
-            "\1\14\147\uffff\1\15\1\16",
-            "\1\10",
-            "\1\10",
-            "\1\10",
-            "\1\21\10\uffff\1\17\10\uffff\1\20",
+            "\1\13\147\uffff\1\14\1\15",
+            "\1\16",
+            "\1\7",
+            "\1\7",
+            "\1\20\10\uffff\1\21\10\uffff\1\17",
             "\1\22",
             "\1\23",
-            "\1\24",
-            "\1\25\62\uffff\1\26",
-            "\1\30\1\uffff\1\27",
-            "\1\21\21\uffff\1\20",
-            "\1\21\21\uffff\1\20",
-            "\1\21\21\uffff\1\20",
-            "\1\25\62\uffff\1\26",
-            "\1\21",
+            "\1\7",
+            "\1\24\62\uffff\1\25",
+            "\1\27\1\uffff\1\26",
+            "\1\30",
+            "\1\20\21\uffff\1\17",
+            "\1\20\21\uffff\1\17",
+            "\1\24\62\uffff\1\25",
+            "\1\20",
             "",
-            ""
+            "",
+            "\1\20\21\uffff\1\17"
     };
 
     static final short[] DFA30_eot = DFA.unpackEncodedString(DFA30_eotS);
@@ -75273,13 +75284,13 @@
     static final String DFA45_eotS =
         "\12\uffff";
     static final String DFA45_eofS =
-        "\5\uffff\1\7\1\11\3\uffff";
+        "\5\uffff\1\6\1\uffff\1\11\2\uffff";
     static final String DFA45_minS =
-        "\3\5\1\125\1\uffff\1\5\1\6\3\uffff";
+        "\3\5\1\125\1\uffff\1\5\1\uffff\1\6\2\uffff";
     static final String DFA45_maxS =
-        "\4\125\1\uffff\2\62\3\uffff";
+        "\4\125\1\uffff\1\62\1\uffff\1\62\2\uffff";
     static final String DFA45_acceptS =
-        "\4\uffff\1\2\2\uffff\1\3\1\4\1\1";
+        "\4\uffff\1\2\1\uffff\1\3\1\uffff\1\4\1\1";
     static final String DFA45_specialS =
         "\12\uffff}>";
     static final String[] DFA45_transitionS = {
@@ -75288,9 +75299,9 @@
             "\1\3\117\uffff\1\4",
             "\1\5",
             "",
-            "\1\6\51\uffff\1\7\2\uffff\1\7",
-            "\1\10\50\uffff\1\11\2\uffff\1\11",
+            "\1\7\51\uffff\1\6\2\uffff\1\6",
             "",
+            "\1\10\50\uffff\1\11\2\uffff\1\11",
             "",
             ""
     };
@@ -76006,1702 +76017,1702 @@
     public static final BitSet FOLLOW_rule__Attribute__Group__2__Impl_in_rule__Attribute__Group__214713 = new BitSet(new long[]{0x0400040000000000L});
     public static final BitSet FOLLOW_rule__Attribute__Group__3_in_rule__Attribute__Group__214716 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_rule__Attribute__Group_2__0_in_rule__Attribute__Group__2__Impl14743 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Attribute__Group__3__Impl_in_rule__Attribute__Group__314774 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__Attribute__Group__3__Impl_in_rule__Attribute__Group__314774 = new BitSet(new long[]{0x0408000000000080L});
     public static final BitSet FOLLOW_rule__Attribute__Group__4_in_rule__Attribute__Group__314777 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_42_in_rule__Attribute__Group__3__Impl14805 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Attribute__Group__4__Impl_in_rule__Attribute__Group__414836 = new BitSet(new long[]{0x0408000000000000L});
+    public static final BitSet FOLLOW_rule__Attribute__Group__4__Impl_in_rule__Attribute__Group__414836 = new BitSet(new long[]{0x0408000000000080L});
     public static final BitSet FOLLOW_rule__Attribute__Group__5_in_rule__Attribute__Group__414839 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_rule__Attribute__TypeAssignment_4_in_rule__Attribute__Group__4__Impl14866 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Attribute__Group__5__Impl_in_rule__Attribute__Group__514896 = new BitSet(new long[]{0x0408000000000000L});
-    public static final BitSet FOLLOW_rule__Attribute__Group__6_in_rule__Attribute__Group__514899 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Attribute__Group_5__0_in_rule__Attribute__Group__5__Impl14926 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Attribute__Group__6__Impl_in_rule__Attribute__Group__614957 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Attribute__DocuAssignment_6_in_rule__Attribute__Group__6__Impl14984 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Attribute__Group_2__0__Impl_in_rule__Attribute__Group_2__015029 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_rule__Attribute__Group_2__1_in_rule__Attribute__Group_2__015032 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_58_in_rule__Attribute__Group_2__0__Impl15060 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Attribute__Group_2__1__Impl_in_rule__Attribute__Group_2__115091 = new BitSet(new long[]{0x0800000000000000L});
-    public static final BitSet FOLLOW_rule__Attribute__Group_2__2_in_rule__Attribute__Group_2__115094 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Attribute__SizeAssignment_2_1_in_rule__Attribute__Group_2__1__Impl15121 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Attribute__Group_2__2__Impl_in_rule__Attribute__Group_2__215151 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_59_in_rule__Attribute__Group_2__2__Impl15179 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Attribute__Group_5__0__Impl_in_rule__Attribute__Group_5__015216 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_rule__Attribute__Group_5__1_in_rule__Attribute__Group_5__015219 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_51_in_rule__Attribute__Group_5__0__Impl15247 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Attribute__Group_5__1__Impl_in_rule__Attribute__Group_5__115278 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Attribute__DefaultValueLiteralAssignment_5_1_in_rule__Attribute__Group_5__1__Impl15305 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group__0__Impl_in_rule__StandardOperation__Group__015339 = new BitSet(new long[]{0x1000000000000000L,0x4000000000000000L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group__1_in_rule__StandardOperation__Group__015342 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__OverrideAssignment_0_in_rule__StandardOperation__Group__0__Impl15369 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group__1__Impl_in_rule__StandardOperation__Group__115400 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group__2_in_rule__StandardOperation__Group__115403 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_60_in_rule__StandardOperation__Group__1__Impl15431 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group__2__Impl_in_rule__StandardOperation__Group__215462 = new BitSet(new long[]{0x0000400000000000L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group__3_in_rule__StandardOperation__Group__215465 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__NameAssignment_2_in_rule__StandardOperation__Group__2__Impl15492 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group__3__Impl_in_rule__StandardOperation__Group__315522 = new BitSet(new long[]{0x0000800000000080L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group__4_in_rule__StandardOperation__Group__315525 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_46_in_rule__StandardOperation__Group__3__Impl15553 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group__4__Impl_in_rule__StandardOperation__Group__415584 = new BitSet(new long[]{0x0000800000000080L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group__5_in_rule__StandardOperation__Group__415587 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group_4__0_in_rule__StandardOperation__Group__4__Impl15614 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group__5__Impl_in_rule__StandardOperation__Group__515645 = new BitSet(new long[]{0x0400050000000000L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group__6_in_rule__StandardOperation__Group__515648 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_47_in_rule__StandardOperation__Group__5__Impl15676 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group__6__Impl_in_rule__StandardOperation__Group__615707 = new BitSet(new long[]{0x0400050000000000L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group__7_in_rule__StandardOperation__Group__615710 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group_6__0_in_rule__StandardOperation__Group__6__Impl15737 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group__7__Impl_in_rule__StandardOperation__Group__715768 = new BitSet(new long[]{0x0400050000000000L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group__8_in_rule__StandardOperation__Group__715771 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__DocuAssignment_7_in_rule__StandardOperation__Group__7__Impl15798 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group__8__Impl_in_rule__StandardOperation__Group__815829 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__DetailCodeAssignment_8_in_rule__StandardOperation__Group__8__Impl15856 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group_4__0__Impl_in_rule__StandardOperation__Group_4__015904 = new BitSet(new long[]{0x0004000000000000L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group_4__1_in_rule__StandardOperation__Group_4__015907 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__ArgumentsAssignment_4_0_in_rule__StandardOperation__Group_4__0__Impl15934 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group_4__1__Impl_in_rule__StandardOperation__Group_4__115964 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group_4_1__0_in_rule__StandardOperation__Group_4__1__Impl15991 = new BitSet(new long[]{0x0004000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group_4_1__0__Impl_in_rule__StandardOperation__Group_4_1__016026 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group_4_1__1_in_rule__StandardOperation__Group_4_1__016029 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_50_in_rule__StandardOperation__Group_4_1__0__Impl16057 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group_4_1__1__Impl_in_rule__StandardOperation__Group_4_1__116088 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__ArgumentsAssignment_4_1_1_in_rule__StandardOperation__Group_4_1__1__Impl16115 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group_6__0__Impl_in_rule__StandardOperation__Group_6__016149 = new BitSet(new long[]{0x0000000000002080L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group_6__1_in_rule__StandardOperation__Group_6__016152 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_42_in_rule__StandardOperation__Group_6__0__Impl16180 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Group_6__1__Impl_in_rule__StandardOperation__Group_6__116211 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StandardOperation__Alternatives_6_1_in_rule__StandardOperation__Group_6__1__Impl16238 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group__0__Impl_in_rule__PortOperation__Group__016272 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group__1_in_rule__PortOperation__Group__016275 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_60_in_rule__PortOperation__Group__0__Impl16303 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group__1__Impl_in_rule__PortOperation__Group__116334 = new BitSet(new long[]{0x0000400000000000L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group__2_in_rule__PortOperation__Group__116337 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__NameAssignment_1_in_rule__PortOperation__Group__1__Impl16364 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group__2__Impl_in_rule__PortOperation__Group__216394 = new BitSet(new long[]{0x0000800000000080L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group__3_in_rule__PortOperation__Group__216397 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_46_in_rule__PortOperation__Group__2__Impl16425 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group__3__Impl_in_rule__PortOperation__Group__316456 = new BitSet(new long[]{0x0000800000000080L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group__4_in_rule__PortOperation__Group__316459 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group_3__0_in_rule__PortOperation__Group__3__Impl16486 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group__4__Impl_in_rule__PortOperation__Group__416517 = new BitSet(new long[]{0x2400050000000000L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group__5_in_rule__PortOperation__Group__416520 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_47_in_rule__PortOperation__Group__4__Impl16548 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group__5__Impl_in_rule__PortOperation__Group__516579 = new BitSet(new long[]{0x2400050000000000L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group__6_in_rule__PortOperation__Group__516582 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__Alternatives_5_in_rule__PortOperation__Group__5__Impl16609 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group__6__Impl_in_rule__PortOperation__Group__616640 = new BitSet(new long[]{0x2400050000000000L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group__7_in_rule__PortOperation__Group__616643 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__DocuAssignment_6_in_rule__PortOperation__Group__6__Impl16670 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group__7__Impl_in_rule__PortOperation__Group__716701 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__DetailCodeAssignment_7_in_rule__PortOperation__Group__7__Impl16728 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group_3__0__Impl_in_rule__PortOperation__Group_3__016774 = new BitSet(new long[]{0x0004000000000000L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group_3__1_in_rule__PortOperation__Group_3__016777 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__ArgumentsAssignment_3_0_in_rule__PortOperation__Group_3__0__Impl16804 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group_3__1__Impl_in_rule__PortOperation__Group_3__116834 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group_3_1__0_in_rule__PortOperation__Group_3__1__Impl16861 = new BitSet(new long[]{0x0004000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group_3_1__0__Impl_in_rule__PortOperation__Group_3_1__016896 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group_3_1__1_in_rule__PortOperation__Group_3_1__016899 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_50_in_rule__PortOperation__Group_3_1__0__Impl16927 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group_3_1__1__Impl_in_rule__PortOperation__Group_3_1__116958 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__ArgumentsAssignment_3_1_1_in_rule__PortOperation__Group_3_1__1__Impl16985 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group_5_0__0__Impl_in_rule__PortOperation__Group_5_0__017019 = new BitSet(new long[]{0x0000000000002080L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group_5_0__1_in_rule__PortOperation__Group_5_0__017022 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_42_in_rule__PortOperation__Group_5_0__0__Impl17050 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group_5_0__1__Impl_in_rule__PortOperation__Group_5_0__117081 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__Alternatives_5_0_1_in_rule__PortOperation__Group_5_0__1__Impl17108 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group_5_1__0__Impl_in_rule__PortOperation__Group_5_1__017142 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group_5_1__1_in_rule__PortOperation__Group_5_1__017145 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_61_in_rule__PortOperation__Group_5_1__0__Impl17173 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__Group_5_1__1__Impl_in_rule__PortOperation__Group_5_1__117204 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortOperation__SendsMsgAssignment_5_1_1_in_rule__PortOperation__Group_5_1__1__Impl17231 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ClassStructor__Group__0__Impl_in_rule__ClassStructor__Group__017265 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__ClassStructor__Group__1_in_rule__ClassStructor__Group__017268 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ClassStructor__NameAssignment_0_in_rule__ClassStructor__Group__0__Impl17295 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ClassStructor__Group__1__Impl_in_rule__ClassStructor__Group__117325 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ClassStructor__DetailCodeAssignment_1_in_rule__ClassStructor__Group__1__Impl17352 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__0__Impl_in_rule__ProtocolClass__Group__017386 = new BitSet(new long[]{0x00000000E0100000L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__1_in_rule__ProtocolClass__Group__017389 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__CommTypeAssignment_0_in_rule__ProtocolClass__Group__0__Impl17416 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__1__Impl_in_rule__ProtocolClass__Group__117447 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__2_in_rule__ProtocolClass__Group__117450 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_20_in_rule__ProtocolClass__Group__1__Impl17478 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__2__Impl_in_rule__ProtocolClass__Group__217509 = new BitSet(new long[]{0x0420010000000000L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__3_in_rule__ProtocolClass__Group__217512 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__NameAssignment_2_in_rule__ProtocolClass__Group__2__Impl17539 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__3__Impl_in_rule__ProtocolClass__Group__317569 = new BitSet(new long[]{0x0420010000000000L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__4_in_rule__ProtocolClass__Group__317572 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__DocuAssignment_3_in_rule__ProtocolClass__Group__3__Impl17599 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__4__Impl_in_rule__ProtocolClass__Group__417630 = new BitSet(new long[]{0x0420010000000000L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__5_in_rule__ProtocolClass__Group__417633 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_4__0_in_rule__ProtocolClass__Group__4__Impl17660 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__5__Impl_in_rule__ProtocolClass__Group__517691 = new BitSet(new long[]{0xC1C0020000000000L,0x0090000000000005L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__6_in_rule__ProtocolClass__Group__517694 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__ProtocolClass__Group__5__Impl17722 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__6__Impl_in_rule__ProtocolClass__Group__617753 = new BitSet(new long[]{0xC1C0020000000000L,0x0090000000000005L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__7_in_rule__ProtocolClass__Group__617756 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__AnnotationsAssignment_6_in_rule__ProtocolClass__Group__6__Impl17783 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__7__Impl_in_rule__ProtocolClass__Group__717814 = new BitSet(new long[]{0xC1C0020000000000L,0x0090000000000005L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__8_in_rule__ProtocolClass__Group__717817 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_7__0_in_rule__ProtocolClass__Group__7__Impl17844 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__8__Impl_in_rule__ProtocolClass__Group__817875 = new BitSet(new long[]{0xC1C0020000000000L,0x0090000000000005L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__9_in_rule__ProtocolClass__Group__817878 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_8__0_in_rule__ProtocolClass__Group__8__Impl17905 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__9__Impl_in_rule__ProtocolClass__Group__917936 = new BitSet(new long[]{0xC1C0020000000000L,0x0090000000000005L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__10_in_rule__ProtocolClass__Group__917939 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_9__0_in_rule__ProtocolClass__Group__9__Impl17966 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__10__Impl_in_rule__ProtocolClass__Group__1017997 = new BitSet(new long[]{0xC1C0020000000000L,0x0090000000000005L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__11_in_rule__ProtocolClass__Group__1018000 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_10__0_in_rule__ProtocolClass__Group__10__Impl18027 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__11__Impl_in_rule__ProtocolClass__Group__1118058 = new BitSet(new long[]{0xC1C0020000000000L,0x0090000000000005L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__12_in_rule__ProtocolClass__Group__1118061 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_11__0_in_rule__ProtocolClass__Group__11__Impl18088 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__12__Impl_in_rule__ProtocolClass__Group__1218119 = new BitSet(new long[]{0xC1C0020000000000L,0x0090000000000005L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__13_in_rule__ProtocolClass__Group__1218122 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_12__0_in_rule__ProtocolClass__Group__12__Impl18149 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__13__Impl_in_rule__ProtocolClass__Group__1318180 = new BitSet(new long[]{0xC1C0020000000000L,0x0090000000000005L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__14_in_rule__ProtocolClass__Group__1318183 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_13__0_in_rule__ProtocolClass__Group__13__Impl18210 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__14__Impl_in_rule__ProtocolClass__Group__1418241 = new BitSet(new long[]{0xC1C0020000000000L,0x0090000000000005L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__15_in_rule__ProtocolClass__Group__1418244 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__SemanticsAssignment_14_in_rule__ProtocolClass__Group__14__Impl18271 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group__15__Impl_in_rule__ProtocolClass__Group__1518302 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__ProtocolClass__Group__15__Impl18330 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_4__0__Impl_in_rule__ProtocolClass__Group_4__018393 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_4__1_in_rule__ProtocolClass__Group_4__018396 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_53_in_rule__ProtocolClass__Group_4__0__Impl18424 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_4__1__Impl_in_rule__ProtocolClass__Group_4__118455 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__BaseAssignment_4_1_in_rule__ProtocolClass__Group_4__1__Impl18482 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_7__0__Impl_in_rule__ProtocolClass__Group_7__018516 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_7__1_in_rule__ProtocolClass__Group_7__018519 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_54_in_rule__ProtocolClass__Group_7__0__Impl18547 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_7__1__Impl_in_rule__ProtocolClass__Group_7__118578 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__UserCode1Assignment_7_1_in_rule__ProtocolClass__Group_7__1__Impl18605 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_8__0__Impl_in_rule__ProtocolClass__Group_8__018639 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_8__1_in_rule__ProtocolClass__Group_8__018642 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_55_in_rule__ProtocolClass__Group_8__0__Impl18670 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_8__1__Impl_in_rule__ProtocolClass__Group_8__118701 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__UserCode2Assignment_8_1_in_rule__ProtocolClass__Group_8__1__Impl18728 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_9__0__Impl_in_rule__ProtocolClass__Group_9__018762 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_9__1_in_rule__ProtocolClass__Group_9__018765 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_56_in_rule__ProtocolClass__Group_9__0__Impl18793 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_9__1__Impl_in_rule__ProtocolClass__Group_9__118824 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__UserCode3Assignment_9_1_in_rule__ProtocolClass__Group_9__1__Impl18851 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_10__0__Impl_in_rule__ProtocolClass__Group_10__018885 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_10__1_in_rule__ProtocolClass__Group_10__018888 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_62_in_rule__ProtocolClass__Group_10__0__Impl18916 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_10__1__Impl_in_rule__ProtocolClass__Group_10__118947 = new BitSet(new long[]{0x0000020000000000L,0x8000000000000010L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_10__2_in_rule__ProtocolClass__Group_10__118950 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__ProtocolClass__Group_10__1__Impl18978 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_10__2__Impl_in_rule__ProtocolClass__Group_10__219009 = new BitSet(new long[]{0x0000020000000000L,0x8000000000000010L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_10__3_in_rule__ProtocolClass__Group_10__219012 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__IncomingMessagesAssignment_10_2_in_rule__ProtocolClass__Group_10__2__Impl19039 = new BitSet(new long[]{0x0000000000000002L,0x8000000000000010L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_10__3__Impl_in_rule__ProtocolClass__Group_10__319070 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__ProtocolClass__Group_10__3__Impl19098 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_11__0__Impl_in_rule__ProtocolClass__Group_11__019137 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_11__1_in_rule__ProtocolClass__Group_11__019140 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_63_in_rule__ProtocolClass__Group_11__0__Impl19168 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_11__1__Impl_in_rule__ProtocolClass__Group_11__119199 = new BitSet(new long[]{0x0000020000000000L,0x8000000000000010L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_11__2_in_rule__ProtocolClass__Group_11__119202 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__ProtocolClass__Group_11__1__Impl19230 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_11__2__Impl_in_rule__ProtocolClass__Group_11__219261 = new BitSet(new long[]{0x0000020000000000L,0x8000000000000010L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_11__3_in_rule__ProtocolClass__Group_11__219264 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__OutgoingMessagesAssignment_11_2_in_rule__ProtocolClass__Group_11__2__Impl19291 = new BitSet(new long[]{0x0000000000000002L,0x8000000000000010L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_11__3__Impl_in_rule__ProtocolClass__Group_11__319322 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__ProtocolClass__Group_11__3__Impl19350 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_12__0__Impl_in_rule__ProtocolClass__Group_12__019389 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_12__1_in_rule__ProtocolClass__Group_12__019392 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_64_in_rule__ProtocolClass__Group_12__0__Impl19420 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_12__1__Impl_in_rule__ProtocolClass__Group_12__119451 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_12__2_in_rule__ProtocolClass__Group_12__119454 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_65_in_rule__ProtocolClass__Group_12__1__Impl19482 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_12__2__Impl_in_rule__ProtocolClass__Group_12__219513 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__RegularAssignment_12_2_in_rule__ProtocolClass__Group_12__2__Impl19540 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_13__0__Impl_in_rule__ProtocolClass__Group_13__019576 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_13__1_in_rule__ProtocolClass__Group_13__019579 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_66_in_rule__ProtocolClass__Group_13__0__Impl19607 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_13__1__Impl_in_rule__ProtocolClass__Group_13__119638 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_13__2_in_rule__ProtocolClass__Group_13__119641 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_65_in_rule__ProtocolClass__Group_13__1__Impl19669 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__Group_13__2__Impl_in_rule__ProtocolClass__Group_13__219700 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolClass__ConjugatedAssignment_13_2_in_rule__ProtocolClass__Group_13__2__Impl19727 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__0__Impl_in_rule__CompoundProtocolClass__Group__019763 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__1_in_rule__CompoundProtocolClass__Group__019766 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_21_in_rule__CompoundProtocolClass__Group__0__Impl19794 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__1__Impl_in_rule__CompoundProtocolClass__Group__119825 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__2_in_rule__CompoundProtocolClass__Group__119828 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CompoundProtocolClass__NameAssignment_1_in_rule__CompoundProtocolClass__Group__1__Impl19855 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__2__Impl_in_rule__CompoundProtocolClass__Group__219885 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__3_in_rule__CompoundProtocolClass__Group__219888 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CompoundProtocolClass__DocuAssignment_2_in_rule__CompoundProtocolClass__Group__2__Impl19915 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__3__Impl_in_rule__CompoundProtocolClass__Group__319946 = new BitSet(new long[]{0x0000020000000000L,0x0080000000000008L});
-    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__4_in_rule__CompoundProtocolClass__Group__319949 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__CompoundProtocolClass__Group__3__Impl19977 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__4__Impl_in_rule__CompoundProtocolClass__Group__420008 = new BitSet(new long[]{0x0000020000000000L,0x0080000000000008L});
-    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__5_in_rule__CompoundProtocolClass__Group__420011 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CompoundProtocolClass__AnnotationsAssignment_4_in_rule__CompoundProtocolClass__Group__4__Impl20038 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L});
-    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__5__Impl_in_rule__CompoundProtocolClass__Group__520069 = new BitSet(new long[]{0x0000020000000000L,0x0080000000000008L});
-    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__6_in_rule__CompoundProtocolClass__Group__520072 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CompoundProtocolClass__SubProtocolsAssignment_5_in_rule__CompoundProtocolClass__Group__5__Impl20099 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000008L});
-    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__6__Impl_in_rule__CompoundProtocolClass__Group__620130 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__CompoundProtocolClass__Group__6__Impl20158 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubProtocol__Group__0__Impl_in_rule__SubProtocol__Group__020203 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__SubProtocol__Group__1_in_rule__SubProtocol__Group__020206 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_67_in_rule__SubProtocol__Group__0__Impl20234 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubProtocol__Group__1__Impl_in_rule__SubProtocol__Group__120265 = new BitSet(new long[]{0x0000040000000000L});
-    public static final BitSet FOLLOW_rule__SubProtocol__Group__2_in_rule__SubProtocol__Group__120268 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubProtocol__NameAssignment_1_in_rule__SubProtocol__Group__1__Impl20295 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubProtocol__Group__2__Impl_in_rule__SubProtocol__Group__220325 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__SubProtocol__Group__3_in_rule__SubProtocol__Group__220328 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_42_in_rule__SubProtocol__Group__2__Impl20356 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubProtocol__Group__3__Impl_in_rule__SubProtocol__Group__320387 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubProtocol__ProtocolAssignment_3_in_rule__SubProtocol__Group__3__Impl20414 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Message__Group__0__Impl_in_rule__Message__Group__020452 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000010L});
-    public static final BitSet FOLLOW_rule__Message__Group__1_in_rule__Message__Group__020455 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Message__PrivAssignment_0_in_rule__Message__Group__0__Impl20482 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Message__Group__1__Impl_in_rule__Message__Group__120513 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__Message__Group__2_in_rule__Message__Group__120516 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_68_in_rule__Message__Group__1__Impl20544 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Message__Group__2__Impl_in_rule__Message__Group__220575 = new BitSet(new long[]{0x0000400000000000L});
-    public static final BitSet FOLLOW_rule__Message__Group__3_in_rule__Message__Group__220578 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Message__NameAssignment_2_in_rule__Message__Group__2__Impl20605 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Message__Group__3__Impl_in_rule__Message__Group__320635 = new BitSet(new long[]{0x0000800000000080L});
-    public static final BitSet FOLLOW_rule__Message__Group__4_in_rule__Message__Group__320638 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_46_in_rule__Message__Group__3__Impl20666 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Message__Group__4__Impl_in_rule__Message__Group__420697 = new BitSet(new long[]{0x0000800000000080L});
-    public static final BitSet FOLLOW_rule__Message__Group__5_in_rule__Message__Group__420700 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Message__DataAssignment_4_in_rule__Message__Group__4__Impl20727 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Message__Group__5__Impl_in_rule__Message__Group__520758 = new BitSet(new long[]{0x0400000000000000L});
-    public static final BitSet FOLLOW_rule__Message__Group__6_in_rule__Message__Group__520761 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_47_in_rule__Message__Group__5__Impl20789 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Message__Group__6__Impl_in_rule__Message__Group__620820 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Message__DocuAssignment_6_in_rule__Message__Group__6__Impl20847 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortClass__Group__0__Impl_in_rule__PortClass__Group__020892 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__PortClass__Group__1_in_rule__PortClass__Group__020895 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortClass__Group__1__Impl_in_rule__PortClass__Group__120953 = new BitSet(new long[]{0x120002000000C000L,0x4000000000000060L});
-    public static final BitSet FOLLOW_rule__PortClass__Group__2_in_rule__PortClass__Group__120956 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__PortClass__Group__1__Impl20984 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortClass__Group__2__Impl_in_rule__PortClass__Group__221015 = new BitSet(new long[]{0x120002000000C000L,0x4000000000000060L});
-    public static final BitSet FOLLOW_rule__PortClass__Group__3_in_rule__PortClass__Group__221018 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortClass__Group_2__0_in_rule__PortClass__Group__2__Impl21045 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortClass__Group__3__Impl_in_rule__PortClass__Group__321076 = new BitSet(new long[]{0x120002000000C000L,0x4000000000000060L});
-    public static final BitSet FOLLOW_rule__PortClass__Group__4_in_rule__PortClass__Group__321079 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortClass__Alternatives_3_in_rule__PortClass__Group__3__Impl21106 = new BitSet(new long[]{0x120000000000C002L,0x4000000000000040L});
-    public static final BitSet FOLLOW_rule__PortClass__Group__4__Impl_in_rule__PortClass__Group__421137 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__PortClass__Group__4__Impl21165 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortClass__Group_2__0__Impl_in_rule__PortClass__Group_2__021206 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__PortClass__Group_2__1_in_rule__PortClass__Group_2__021209 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_69_in_rule__PortClass__Group_2__0__Impl21237 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortClass__Group_2__1__Impl_in_rule__PortClass__Group_2__121268 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__PortClass__UserCodeAssignment_2_1_in_rule__PortClass__Group_2__1__Impl21295 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InMessageHandler__Group__0__Impl_in_rule__InMessageHandler__Group__021329 = new BitSet(new long[]{0x4000000000000000L});
-    public static final BitSet FOLLOW_rule__InMessageHandler__Group__1_in_rule__InMessageHandler__Group__021332 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_70_in_rule__InMessageHandler__Group__0__Impl21360 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InMessageHandler__Group__1__Impl_in_rule__InMessageHandler__Group__121391 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__InMessageHandler__Group__2_in_rule__InMessageHandler__Group__121394 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_62_in_rule__InMessageHandler__Group__1__Impl21422 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InMessageHandler__Group__2__Impl_in_rule__InMessageHandler__Group__221453 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__InMessageHandler__Group__3_in_rule__InMessageHandler__Group__221456 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InMessageHandler__MsgAssignment_2_in_rule__InMessageHandler__Group__2__Impl21483 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InMessageHandler__Group__3__Impl_in_rule__InMessageHandler__Group__321513 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InMessageHandler__DetailCodeAssignment_3_in_rule__InMessageHandler__Group__3__Impl21540 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OutMessageHandler__Group__0__Impl_in_rule__OutMessageHandler__Group__021578 = new BitSet(new long[]{0x8000000000000000L});
-    public static final BitSet FOLLOW_rule__OutMessageHandler__Group__1_in_rule__OutMessageHandler__Group__021581 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_70_in_rule__OutMessageHandler__Group__0__Impl21609 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OutMessageHandler__Group__1__Impl_in_rule__OutMessageHandler__Group__121640 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__OutMessageHandler__Group__2_in_rule__OutMessageHandler__Group__121643 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_63_in_rule__OutMessageHandler__Group__1__Impl21671 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OutMessageHandler__Group__2__Impl_in_rule__OutMessageHandler__Group__221702 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__OutMessageHandler__Group__3_in_rule__OutMessageHandler__Group__221705 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OutMessageHandler__MsgAssignment_2_in_rule__OutMessageHandler__Group__2__Impl21732 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OutMessageHandler__Group__3__Impl_in_rule__OutMessageHandler__Group__321762 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OutMessageHandler__DetailCodeAssignment_3_in_rule__OutMessageHandler__Group__3__Impl21789 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group__0__Impl_in_rule__ActorClass__Group__021827 = new BitSet(new long[]{0x0000000000040000L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group__1_in_rule__ActorClass__Group__021830 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__UnorderedGroup_0_in_rule__ActorClass__Group__0__Impl21857 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group__1__Impl_in_rule__ActorClass__Group__121887 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group__2_in_rule__ActorClass__Group__121890 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_18_in_rule__ActorClass__Group__1__Impl21918 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group__2__Impl_in_rule__ActorClass__Group__221949 = new BitSet(new long[]{0x0420010000000000L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group__3_in_rule__ActorClass__Group__221952 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__NameAssignment_2_in_rule__ActorClass__Group__2__Impl21979 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group__3__Impl_in_rule__ActorClass__Group__322009 = new BitSet(new long[]{0x0420010000000000L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group__4_in_rule__ActorClass__Group__322012 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__DocuAssignment_3_in_rule__ActorClass__Group__3__Impl22039 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group__4__Impl_in_rule__ActorClass__Group__422070 = new BitSet(new long[]{0x0420010000000000L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group__5_in_rule__ActorClass__Group__422073 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_4__0_in_rule__ActorClass__Group__4__Impl22100 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group__5__Impl_in_rule__ActorClass__Group__522131 = new BitSet(new long[]{0x0000020000000000L,0x0080000000000380L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group__6_in_rule__ActorClass__Group__522134 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__ActorClass__Group__5__Impl22162 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group__6__Impl_in_rule__ActorClass__Group__622193 = new BitSet(new long[]{0x0000020000000000L,0x0080000000000380L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group__7_in_rule__ActorClass__Group__622196 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__AnnotationsAssignment_6_in_rule__ActorClass__Group__6__Impl22223 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group__7__Impl_in_rule__ActorClass__Group__722254 = new BitSet(new long[]{0x0000020000000000L,0x0080000000000380L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group__8_in_rule__ActorClass__Group__722257 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_7__0_in_rule__ActorClass__Group__7__Impl22284 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group__8__Impl_in_rule__ActorClass__Group__822315 = new BitSet(new long[]{0x0000020000000000L,0x0080000000000380L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group__9_in_rule__ActorClass__Group__822318 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8__0_in_rule__ActorClass__Group__8__Impl22345 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group__9__Impl_in_rule__ActorClass__Group__922376 = new BitSet(new long[]{0x0000020000000000L,0x0080000000000380L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group__10_in_rule__ActorClass__Group__922379 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_9__0_in_rule__ActorClass__Group__9__Impl22406 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group__10__Impl_in_rule__ActorClass__Group__1022437 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__ActorClass__Group__10__Impl22465 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_4__0__Impl_in_rule__ActorClass__Group_4__022518 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_4__1_in_rule__ActorClass__Group_4__022521 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_53_in_rule__ActorClass__Group_4__0__Impl22549 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_4__1__Impl_in_rule__ActorClass__Group_4__122580 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__BaseAssignment_4_1_in_rule__ActorClass__Group_4__1__Impl22607 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_7__0__Impl_in_rule__ActorClass__Group_7__022641 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_7__1_in_rule__ActorClass__Group_7__022644 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_71_in_rule__ActorClass__Group_7__0__Impl22672 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_7__1__Impl_in_rule__ActorClass__Group_7__122703 = new BitSet(new long[]{0x0000020000000000L,0x0000000000002404L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_7__2_in_rule__ActorClass__Group_7__122706 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__ActorClass__Group_7__1__Impl22734 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_7__2__Impl_in_rule__ActorClass__Group_7__222765 = new BitSet(new long[]{0x0000020000000000L,0x0000000000002404L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_7__3_in_rule__ActorClass__Group_7__222768 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Alternatives_7_2_in_rule__ActorClass__Group_7__2__Impl22795 = new BitSet(new long[]{0x0000000000000002L,0x0000000000002404L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_7__3__Impl_in_rule__ActorClass__Group_7__322826 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__ActorClass__Group_7__3__Impl22854 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8__0__Impl_in_rule__ActorClass__Group_8__022893 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8__1_in_rule__ActorClass__Group_8__022896 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_72_in_rule__ActorClass__Group_8__0__Impl22924 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8__1__Impl_in_rule__ActorClass__Group_8__122955 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8__2_in_rule__ActorClass__Group_8__122958 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__StructureDocuAssignment_8_1_in_rule__ActorClass__Group_8__1__Impl22985 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8__2__Impl_in_rule__ActorClass__Group_8__223016 = new BitSet(new long[]{0x13C002030000C000L,0x4000000008887C04L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8__3_in_rule__ActorClass__Group_8__223019 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__ActorClass__Group_8__2__Impl23047 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8__3__Impl_in_rule__ActorClass__Group_8__323078 = new BitSet(new long[]{0x13C002030000C000L,0x4000000008887C04L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8__4_in_rule__ActorClass__Group_8__323081 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8_3__0_in_rule__ActorClass__Group_8__3__Impl23108 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8__4__Impl_in_rule__ActorClass__Group_8__423139 = new BitSet(new long[]{0x13C002030000C000L,0x4000000008887C04L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8__5_in_rule__ActorClass__Group_8__423142 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8_4__0_in_rule__ActorClass__Group_8__4__Impl23169 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8__5__Impl_in_rule__ActorClass__Group_8__523200 = new BitSet(new long[]{0x13C002030000C000L,0x4000000008887C04L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8__6_in_rule__ActorClass__Group_8__523203 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8_5__0_in_rule__ActorClass__Group_8__5__Impl23230 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8__6__Impl_in_rule__ActorClass__Group_8__623261 = new BitSet(new long[]{0x13C002030000C000L,0x4000000008887C04L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8__7_in_rule__ActorClass__Group_8__623264 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Alternatives_8_6_in_rule__ActorClass__Group_8__6__Impl23291 = new BitSet(new long[]{0x120000030000C002L,0x4000000008887C04L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8__7__Impl_in_rule__ActorClass__Group_8__723322 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__ActorClass__Group_8__7__Impl23350 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8_3__0__Impl_in_rule__ActorClass__Group_8_3__023397 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8_3__1_in_rule__ActorClass__Group_8_3__023400 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_54_in_rule__ActorClass__Group_8_3__0__Impl23428 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8_3__1__Impl_in_rule__ActorClass__Group_8_3__123459 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__UserCode1Assignment_8_3_1_in_rule__ActorClass__Group_8_3__1__Impl23486 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8_4__0__Impl_in_rule__ActorClass__Group_8_4__023520 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8_4__1_in_rule__ActorClass__Group_8_4__023523 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_55_in_rule__ActorClass__Group_8_4__0__Impl23551 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8_4__1__Impl_in_rule__ActorClass__Group_8_4__123582 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__UserCode2Assignment_8_4_1_in_rule__ActorClass__Group_8_4__1__Impl23609 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8_5__0__Impl_in_rule__ActorClass__Group_8_5__023643 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8_5__1_in_rule__ActorClass__Group_8_5__023646 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_56_in_rule__ActorClass__Group_8_5__0__Impl23674 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_8_5__1__Impl_in_rule__ActorClass__Group_8_5__123705 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__UserCode3Assignment_8_5_1_in_rule__ActorClass__Group_8_5__1__Impl23732 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_9__0__Impl_in_rule__ActorClass__Group_9__023766 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_9__1_in_rule__ActorClass__Group_9__023769 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_73_in_rule__ActorClass__Group_9__0__Impl23797 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_9__1__Impl_in_rule__ActorClass__Group_9__123828 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_9__2_in_rule__ActorClass__Group_9__123831 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__BehaviorDocuAssignment_9_1_in_rule__ActorClass__Group_9__1__Impl23858 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_9__2__Impl_in_rule__ActorClass__Group_9__223889 = new BitSet(new long[]{0x100002000000C000L,0x4080000010000000L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_9__3_in_rule__ActorClass__Group_9__223892 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__ActorClass__Group_9__2__Impl23920 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_9__3__Impl_in_rule__ActorClass__Group_9__323951 = new BitSet(new long[]{0x100002000000C000L,0x4080000010000000L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_9__4_in_rule__ActorClass__Group_9__323954 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__BehaviorAnnotationsAssignment_9_3_in_rule__ActorClass__Group_9__3__Impl23981 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_9__4__Impl_in_rule__ActorClass__Group_9__424012 = new BitSet(new long[]{0x100002000000C000L,0x4080000010000000L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_9__5_in_rule__ActorClass__Group_9__424015 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Alternatives_9_4_in_rule__ActorClass__Group_9__4__Impl24042 = new BitSet(new long[]{0x100000000000C002L,0x4000000000000000L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_9__5__Impl_in_rule__ActorClass__Group_9__524073 = new BitSet(new long[]{0x100002000000C000L,0x4080000010000000L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_9__6_in_rule__ActorClass__Group_9__524076 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__StateMachineAssignment_9_5_in_rule__ActorClass__Group_9__5__Impl24103 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__Group_9__6__Impl_in_rule__ActorClass__Group_9__624134 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__ActorClass__Group_9__6__Impl24162 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Port__Group__0__Impl_in_rule__Port__Group__024207 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002404L});
-    public static final BitSet FOLLOW_rule__Port__Group__1_in_rule__Port__Group__024210 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Port__ConjugatedAssignment_0_in_rule__Port__Group__0__Impl24237 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Port__Group__1__Impl_in_rule__Port__Group__124268 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__Port__Group__2_in_rule__Port__Group__124271 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_74_in_rule__Port__Group__1__Impl24299 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Port__Group__2__Impl_in_rule__Port__Group__224330 = new BitSet(new long[]{0x0400040000000000L});
-    public static final BitSet FOLLOW_rule__Port__Group__3_in_rule__Port__Group__224333 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Port__NameAssignment_2_in_rule__Port__Group__2__Impl24360 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Port__Group__3__Impl_in_rule__Port__Group__324390 = new BitSet(new long[]{0x0400040000000000L});
-    public static final BitSet FOLLOW_rule__Port__Group__4_in_rule__Port__Group__324393 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Port__MultiplicityAssignment_3_in_rule__Port__Group__3__Impl24420 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Port__Group__4__Impl_in_rule__Port__Group__424451 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__Port__Group__5_in_rule__Port__Group__424454 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_42_in_rule__Port__Group__4__Impl24482 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Port__Group__5__Impl_in_rule__Port__Group__524513 = new BitSet(new long[]{0x0400000000000000L});
-    public static final BitSet FOLLOW_rule__Port__Group__6_in_rule__Port__Group__524516 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Port__ProtocolAssignment_5_in_rule__Port__Group__5__Impl24543 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Port__Group__6__Impl_in_rule__Port__Group__624573 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Port__DocuAssignment_6_in_rule__Port__Group__6__Impl24600 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExternalPort__Group__0__Impl_in_rule__ExternalPort__Group__024645 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
-    public static final BitSet FOLLOW_rule__ExternalPort__Group__1_in_rule__ExternalPort__Group__024648 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_75_in_rule__ExternalPort__Group__0__Impl24676 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExternalPort__Group__1__Impl_in_rule__ExternalPort__Group__124707 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__ExternalPort__Group__2_in_rule__ExternalPort__Group__124710 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_74_in_rule__ExternalPort__Group__1__Impl24738 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExternalPort__Group__2__Impl_in_rule__ExternalPort__Group__224769 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExternalPort__InterfacePortAssignment_2_in_rule__ExternalPort__Group__2__Impl24796 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SAP__Group__0__Impl_in_rule__SAP__Group__024832 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__SAP__Group__1_in_rule__SAP__Group__024835 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_76_in_rule__SAP__Group__0__Impl24863 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SAP__Group__1__Impl_in_rule__SAP__Group__124894 = new BitSet(new long[]{0x0000040000000000L});
-    public static final BitSet FOLLOW_rule__SAP__Group__2_in_rule__SAP__Group__124897 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SAP__NameAssignment_1_in_rule__SAP__Group__1__Impl24924 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SAP__Group__2__Impl_in_rule__SAP__Group__224954 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__SAP__Group__3_in_rule__SAP__Group__224957 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_42_in_rule__SAP__Group__2__Impl24985 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SAP__Group__3__Impl_in_rule__SAP__Group__325016 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SAP__ProtocolAssignment_3_in_rule__SAP__Group__3__Impl25043 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SPP__Group__0__Impl_in_rule__SPP__Group__025081 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__SPP__Group__1_in_rule__SPP__Group__025084 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_77_in_rule__SPP__Group__0__Impl25112 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SPP__Group__1__Impl_in_rule__SPP__Group__125143 = new BitSet(new long[]{0x0000040000000000L});
-    public static final BitSet FOLLOW_rule__SPP__Group__2_in_rule__SPP__Group__125146 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SPP__NameAssignment_1_in_rule__SPP__Group__1__Impl25173 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SPP__Group__2__Impl_in_rule__SPP__Group__225203 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__SPP__Group__3_in_rule__SPP__Group__225206 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_42_in_rule__SPP__Group__2__Impl25234 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SPP__Group__3__Impl_in_rule__SPP__Group__325265 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SPP__ProtocolAssignment_3_in_rule__SPP__Group__3__Impl25292 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ServiceImplementation__Group__0__Impl_in_rule__ServiceImplementation__Group__025330 = new BitSet(new long[]{0x0002000000000000L});
-    public static final BitSet FOLLOW_rule__ServiceImplementation__Group__1_in_rule__ServiceImplementation__Group__025333 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_78_in_rule__ServiceImplementation__Group__0__Impl25361 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ServiceImplementation__Group__1__Impl_in_rule__ServiceImplementation__Group__125392 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__ServiceImplementation__Group__2_in_rule__ServiceImplementation__Group__125395 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_49_in_rule__ServiceImplementation__Group__1__Impl25423 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ServiceImplementation__Group__2__Impl_in_rule__ServiceImplementation__Group__225454 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ServiceImplementation__SppAssignment_2_in_rule__ServiceImplementation__Group__2__Impl25481 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__LogicalSystem__Group__0__Impl_in_rule__LogicalSystem__Group__025517 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__LogicalSystem__Group__1_in_rule__LogicalSystem__Group__025520 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_23_in_rule__LogicalSystem__Group__0__Impl25548 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__LogicalSystem__Group__1__Impl_in_rule__LogicalSystem__Group__125579 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__LogicalSystem__Group__2_in_rule__LogicalSystem__Group__125582 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__LogicalSystem__NameAssignment_1_in_rule__LogicalSystem__Group__1__Impl25609 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__LogicalSystem__Group__2__Impl_in_rule__LogicalSystem__Group__225639 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__LogicalSystem__Group__3_in_rule__LogicalSystem__Group__225642 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__LogicalSystem__DocuAssignment_2_in_rule__LogicalSystem__Group__2__Impl25669 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__LogicalSystem__Group__3__Impl_in_rule__LogicalSystem__Group__325700 = new BitSet(new long[]{0x0000020000000000L,0x0080000000888000L});
-    public static final BitSet FOLLOW_rule__LogicalSystem__Group__4_in_rule__LogicalSystem__Group__325703 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__LogicalSystem__Group__3__Impl25731 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__LogicalSystem__Group__4__Impl_in_rule__LogicalSystem__Group__425762 = new BitSet(new long[]{0x0000020000000000L,0x0080000000888000L});
-    public static final BitSet FOLLOW_rule__LogicalSystem__Group__5_in_rule__LogicalSystem__Group__425765 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__LogicalSystem__AnnotationsAssignment_4_in_rule__LogicalSystem__Group__4__Impl25792 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L});
-    public static final BitSet FOLLOW_rule__LogicalSystem__Group__5__Impl_in_rule__LogicalSystem__Group__525823 = new BitSet(new long[]{0x0000020000000000L,0x0080000000888000L});
-    public static final BitSet FOLLOW_rule__LogicalSystem__Group__6_in_rule__LogicalSystem__Group__525826 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__LogicalSystem__Alternatives_5_in_rule__LogicalSystem__Group__5__Impl25853 = new BitSet(new long[]{0x0000000000000002L,0x0000000000888000L});
-    public static final BitSet FOLLOW_rule__LogicalSystem__Group__6__Impl_in_rule__LogicalSystem__Group__625884 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__LogicalSystem__Group__6__Impl25912 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemRef__Group__0__Impl_in_rule__SubSystemRef__Group__025957 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__SubSystemRef__Group__1_in_rule__SubSystemRef__Group__025960 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_79_in_rule__SubSystemRef__Group__0__Impl25988 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemRef__Group__1__Impl_in_rule__SubSystemRef__Group__126019 = new BitSet(new long[]{0x0000040000000000L});
-    public static final BitSet FOLLOW_rule__SubSystemRef__Group__2_in_rule__SubSystemRef__Group__126022 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemRef__NameAssignment_1_in_rule__SubSystemRef__Group__1__Impl26049 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemRef__Group__2__Impl_in_rule__SubSystemRef__Group__226079 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__SubSystemRef__Group__3_in_rule__SubSystemRef__Group__226082 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_42_in_rule__SubSystemRef__Group__2__Impl26110 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemRef__Group__3__Impl_in_rule__SubSystemRef__Group__326141 = new BitSet(new long[]{0x0400000000000000L});
-    public static final BitSet FOLLOW_rule__SubSystemRef__Group__4_in_rule__SubSystemRef__Group__326144 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemRef__TypeAssignment_3_in_rule__SubSystemRef__Group__3__Impl26171 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemRef__Group__4__Impl_in_rule__SubSystemRef__Group__426201 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemRef__DocuAssignment_4_in_rule__SubSystemRef__Group__4__Impl26228 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group__0__Impl_in_rule__SubSystemClass__Group__026269 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group__1_in_rule__SubSystemClass__Group__026272 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_22_in_rule__SubSystemClass__Group__0__Impl26300 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group__1__Impl_in_rule__SubSystemClass__Group__126331 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group__2_in_rule__SubSystemClass__Group__126334 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__NameAssignment_1_in_rule__SubSystemClass__Group__1__Impl26361 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group__2__Impl_in_rule__SubSystemClass__Group__226391 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group__3_in_rule__SubSystemClass__Group__226394 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__DocuAssignment_2_in_rule__SubSystemClass__Group__2__Impl26421 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group__3__Impl_in_rule__SubSystemClass__Group__326452 = new BitSet(new long[]{0x01C0020300000000L,0x00800000088B2404L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group__4_in_rule__SubSystemClass__Group__326455 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__SubSystemClass__Group__3__Impl26483 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group__4__Impl_in_rule__SubSystemClass__Group__426514 = new BitSet(new long[]{0x01C0020300000000L,0x00800000088B2404L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group__5_in_rule__SubSystemClass__Group__426517 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__AnnotationsAssignment_4_in_rule__SubSystemClass__Group__4__Impl26544 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group__5__Impl_in_rule__SubSystemClass__Group__526575 = new BitSet(new long[]{0x01C0020300000000L,0x00800000088B2404L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group__6_in_rule__SubSystemClass__Group__526578 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group_5__0_in_rule__SubSystemClass__Group__5__Impl26605 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group__6__Impl_in_rule__SubSystemClass__Group__626636 = new BitSet(new long[]{0x01C0020300000000L,0x00800000088B2404L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group__7_in_rule__SubSystemClass__Group__626639 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group_6__0_in_rule__SubSystemClass__Group__6__Impl26666 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group__7__Impl_in_rule__SubSystemClass__Group__726697 = new BitSet(new long[]{0x01C0020300000000L,0x00800000088B2404L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group__8_in_rule__SubSystemClass__Group__726700 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group_7__0_in_rule__SubSystemClass__Group__7__Impl26727 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group__8__Impl_in_rule__SubSystemClass__Group__826758 = new BitSet(new long[]{0x01C0020300000000L,0x00800000088B2404L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group__9_in_rule__SubSystemClass__Group__826761 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Alternatives_8_in_rule__SubSystemClass__Group__8__Impl26788 = new BitSet(new long[]{0x0000000300000002L,0x00000000088B2404L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group__9__Impl_in_rule__SubSystemClass__Group__926819 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__SubSystemClass__Group__9__Impl26847 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group_5__0__Impl_in_rule__SubSystemClass__Group_5__026898 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group_5__1_in_rule__SubSystemClass__Group_5__026901 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_54_in_rule__SubSystemClass__Group_5__0__Impl26929 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group_5__1__Impl_in_rule__SubSystemClass__Group_5__126960 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__UserCode1Assignment_5_1_in_rule__SubSystemClass__Group_5__1__Impl26987 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group_6__0__Impl_in_rule__SubSystemClass__Group_6__027021 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group_6__1_in_rule__SubSystemClass__Group_6__027024 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_55_in_rule__SubSystemClass__Group_6__0__Impl27052 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group_6__1__Impl_in_rule__SubSystemClass__Group_6__127083 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__UserCode2Assignment_6_1_in_rule__SubSystemClass__Group_6__1__Impl27110 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group_7__0__Impl_in_rule__SubSystemClass__Group_7__027144 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group_7__1_in_rule__SubSystemClass__Group_7__027147 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_56_in_rule__SubSystemClass__Group_7__0__Impl27175 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__Group_7__1__Impl_in_rule__SubSystemClass__Group_7__127206 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubSystemClass__UserCode3Assignment_7_1_in_rule__SubSystemClass__Group_7__1__Impl27233 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__LogicalThread__Group__0__Impl_in_rule__LogicalThread__Group__027267 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__LogicalThread__Group__1_in_rule__LogicalThread__Group__027270 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_80_in_rule__LogicalThread__Group__0__Impl27298 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__LogicalThread__Group__1__Impl_in_rule__LogicalThread__Group__127329 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__LogicalThread__NameAssignment_1_in_rule__LogicalThread__Group__1__Impl27356 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group__0__Impl_in_rule__ActorInstanceMapping__Group__027390 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group__1_in_rule__ActorInstanceMapping__Group__027393 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_81_in_rule__ActorInstanceMapping__Group__0__Impl27421 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group__1__Impl_in_rule__ActorInstanceMapping__Group__127452 = new BitSet(new long[]{0x0000100000000000L});
-    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group__2_in_rule__ActorInstanceMapping__Group__127455 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorInstanceMapping__PathAssignment_1_in_rule__ActorInstanceMapping__Group__1__Impl27482 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group__2__Impl_in_rule__ActorInstanceMapping__Group__227512 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group__3_in_rule__ActorInstanceMapping__Group__227515 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_44_in_rule__ActorInstanceMapping__Group__2__Impl27543 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group__3__Impl_in_rule__ActorInstanceMapping__Group__327574 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group__4_in_rule__ActorInstanceMapping__Group__327577 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorInstanceMapping__ThreadAssignment_3_in_rule__ActorInstanceMapping__Group__3__Impl27604 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group__4__Impl_in_rule__ActorInstanceMapping__Group__427634 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group_4__0_in_rule__ActorInstanceMapping__Group__4__Impl27661 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group_4__0__Impl_in_rule__ActorInstanceMapping__Group_4__027702 = new BitSet(new long[]{0x0000020000000000L,0x0000000000020000L});
-    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group_4__1_in_rule__ActorInstanceMapping__Group_4__027705 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__ActorInstanceMapping__Group_4__0__Impl27733 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group_4__1__Impl_in_rule__ActorInstanceMapping__Group_4__127764 = new BitSet(new long[]{0x0000020000000000L,0x0000000000020000L});
-    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group_4__2_in_rule__ActorInstanceMapping__Group_4__127767 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorInstanceMapping__ActorInstanceMappingsAssignment_4_1_in_rule__ActorInstanceMapping__Group_4__1__Impl27794 = new BitSet(new long[]{0x0000000000000002L,0x0000000000020000L});
-    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group_4__2__Impl_in_rule__ActorInstanceMapping__Group_4__227825 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__ActorInstanceMapping__Group_4__2__Impl27853 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefPath__Group__0__Impl_in_rule__RefPath__Group__027890 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
-    public static final BitSet FOLLOW_rule__RefPath__Group__1_in_rule__RefPath__Group__027893 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefPath__RefsAssignment_0_in_rule__RefPath__Group__0__Impl27920 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefPath__Group__1__Impl_in_rule__RefPath__Group__127950 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefPath__Group_1__0_in_rule__RefPath__Group__1__Impl27977 = new BitSet(new long[]{0x0000000000000002L,0x0000000000040000L});
-    public static final BitSet FOLLOW_rule__RefPath__Group_1__0__Impl_in_rule__RefPath__Group_1__028012 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__RefPath__Group_1__1_in_rule__RefPath__Group_1__028015 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_82_in_rule__RefPath__Group_1__0__Impl28043 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefPath__Group_1__1__Impl_in_rule__RefPath__Group_1__128074 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefPath__RefsAssignment_1_1_in_rule__RefPath__Group_1__1__Impl28101 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefSegment__Group__0__Impl_in_rule__RefSegment__Group__028135 = new BitSet(new long[]{0x0000040000000000L});
-    public static final BitSet FOLLOW_rule__RefSegment__Group__1_in_rule__RefSegment__Group__028138 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefSegment__RefAssignment_0_in_rule__RefSegment__Group__0__Impl28165 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefSegment__Group__1__Impl_in_rule__RefSegment__Group__128195 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefSegment__Group_1__0_in_rule__RefSegment__Group__1__Impl28222 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefSegment__Group_1__0__Impl_in_rule__RefSegment__Group_1__028257 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_rule__RefSegment__Group_1__1_in_rule__RefSegment__Group_1__028260 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_42_in_rule__RefSegment__Group_1__0__Impl28288 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefSegment__Group_1__1__Impl_in_rule__RefSegment__Group_1__128319 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefSegment__IdxAssignment_1_1_in_rule__RefSegment__Group_1__1__Impl28346 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Binding__Group__0__Impl_in_rule__Binding__Group__028380 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__Binding__Group__1_in_rule__Binding__Group__028383 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_83_in_rule__Binding__Group__0__Impl28411 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Binding__Group__1__Impl_in_rule__Binding__Group__128442 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
-    public static final BitSet FOLLOW_rule__Binding__Group__2_in_rule__Binding__Group__128445 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Binding__Endpoint1Assignment_1_in_rule__Binding__Group__1__Impl28472 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Binding__Group__2__Impl_in_rule__Binding__Group__228502 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__Binding__Group__3_in_rule__Binding__Group__228505 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_84_in_rule__Binding__Group__2__Impl28533 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Binding__Group__3__Impl_in_rule__Binding__Group__328564 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Binding__Endpoint2Assignment_3_in_rule__Binding__Group__3__Impl28591 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__BindingEndPoint__Group__0__Impl_in_rule__BindingEndPoint__Group__028629 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__BindingEndPoint__Group__1_in_rule__BindingEndPoint__Group__028632 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__BindingEndPoint__Group_0__0_in_rule__BindingEndPoint__Group__0__Impl28659 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__BindingEndPoint__Group__1__Impl_in_rule__BindingEndPoint__Group__128690 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
-    public static final BitSet FOLLOW_rule__BindingEndPoint__Group__2_in_rule__BindingEndPoint__Group__128693 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__BindingEndPoint__PortAssignment_1_in_rule__BindingEndPoint__Group__1__Impl28720 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__BindingEndPoint__Group__2__Impl_in_rule__BindingEndPoint__Group__228750 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__BindingEndPoint__Group_2__0_in_rule__BindingEndPoint__Group__2__Impl28777 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__BindingEndPoint__Group_0__0__Impl_in_rule__BindingEndPoint__Group_0__028814 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_rule__BindingEndPoint__Group_0__1_in_rule__BindingEndPoint__Group_0__028817 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__BindingEndPoint__ActorRefAssignment_0_0_in_rule__BindingEndPoint__Group_0__0__Impl28844 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__BindingEndPoint__Group_0__1__Impl_in_rule__BindingEndPoint__Group_0__128874 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_85_in_rule__BindingEndPoint__Group_0__1__Impl28902 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__BindingEndPoint__Group_2__0__Impl_in_rule__BindingEndPoint__Group_2__028937 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__BindingEndPoint__Group_2__1_in_rule__BindingEndPoint__Group_2__028940 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_86_in_rule__BindingEndPoint__Group_2__0__Impl28968 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__BindingEndPoint__Group_2__1__Impl_in_rule__BindingEndPoint__Group_2__128999 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__BindingEndPoint__SubAssignment_2_1_in_rule__BindingEndPoint__Group_2__1__Impl29026 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__LayerConnection__Group__0__Impl_in_rule__LayerConnection__Group__029060 = new BitSet(new long[]{0x0000000000000000L,0x0000000006000000L});
-    public static final BitSet FOLLOW_rule__LayerConnection__Group__1_in_rule__LayerConnection__Group__029063 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_87_in_rule__LayerConnection__Group__0__Impl29091 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__LayerConnection__Group__1__Impl_in_rule__LayerConnection__Group__129122 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
-    public static final BitSet FOLLOW_rule__LayerConnection__Group__2_in_rule__LayerConnection__Group__129125 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__LayerConnection__FromAssignment_1_in_rule__LayerConnection__Group__1__Impl29152 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__LayerConnection__Group__2__Impl_in_rule__LayerConnection__Group__229182 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__LayerConnection__Group__3_in_rule__LayerConnection__Group__229185 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_88_in_rule__LayerConnection__Group__2__Impl29213 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__LayerConnection__Group__3__Impl_in_rule__LayerConnection__Group__329244 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__LayerConnection__ToAssignment_3_in_rule__LayerConnection__Group__3__Impl29271 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefSAPoint__Group__0__Impl_in_rule__RefSAPoint__Group__029309 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__RefSAPoint__Group__1_in_rule__RefSAPoint__Group__029312 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_89_in_rule__RefSAPoint__Group__0__Impl29340 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefSAPoint__Group__1__Impl_in_rule__RefSAPoint__Group__129371 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefSAPoint__RefAssignment_1_in_rule__RefSAPoint__Group__1__Impl29398 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RelaySAPoint__Group__0__Impl_in_rule__RelaySAPoint__Group__029432 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__RelaySAPoint__Group__1_in_rule__RelaySAPoint__Group__029435 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_90_in_rule__RelaySAPoint__Group__0__Impl29463 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RelaySAPoint__Group__1__Impl_in_rule__RelaySAPoint__Group__129494 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RelaySAPoint__RelayAssignment_1_in_rule__RelaySAPoint__Group__1__Impl29521 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SPPoint__Group__0__Impl_in_rule__SPPoint__Group__029555 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_rule__SPPoint__Group__1_in_rule__SPPoint__Group__029558 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SPPoint__RefAssignment_0_in_rule__SPPoint__Group__0__Impl29585 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SPPoint__Group__1__Impl_in_rule__SPPoint__Group__129615 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__SPPoint__Group__2_in_rule__SPPoint__Group__129618 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_85_in_rule__SPPoint__Group__1__Impl29646 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SPPoint__Group__2__Impl_in_rule__SPPoint__Group__229677 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SPPoint__ServiceAssignment_2_in_rule__SPPoint__Group__2__Impl29704 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorRef__Group__0__Impl_in_rule__ActorRef__Group__029740 = new BitSet(new long[]{0x0000000300000000L,0x0000000008000000L});
-    public static final BitSet FOLLOW_rule__ActorRef__Group__1_in_rule__ActorRef__Group__029743 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorRef__RefTypeAssignment_0_in_rule__ActorRef__Group__0__Impl29770 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorRef__Group__1__Impl_in_rule__ActorRef__Group__129801 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__ActorRef__Group__2_in_rule__ActorRef__Group__129804 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_91_in_rule__ActorRef__Group__1__Impl29832 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorRef__Group__2__Impl_in_rule__ActorRef__Group__229863 = new BitSet(new long[]{0x0400040000000000L});
-    public static final BitSet FOLLOW_rule__ActorRef__Group__3_in_rule__ActorRef__Group__229866 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorRef__NameAssignment_2_in_rule__ActorRef__Group__2__Impl29893 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorRef__Group__3__Impl_in_rule__ActorRef__Group__329923 = new BitSet(new long[]{0x0400040000000000L});
-    public static final BitSet FOLLOW_rule__ActorRef__Group__4_in_rule__ActorRef__Group__329926 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorRef__MultiplicityAssignment_3_in_rule__ActorRef__Group__3__Impl29953 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorRef__Group__4__Impl_in_rule__ActorRef__Group__429984 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__ActorRef__Group__5_in_rule__ActorRef__Group__429987 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_42_in_rule__ActorRef__Group__4__Impl30015 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorRef__Group__5__Impl_in_rule__ActorRef__Group__530046 = new BitSet(new long[]{0x0400000000000000L});
-    public static final BitSet FOLLOW_rule__ActorRef__Group__6_in_rule__ActorRef__Group__530049 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorRef__TypeAssignment_5_in_rule__ActorRef__Group__5__Impl30076 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorRef__Group__6__Impl_in_rule__ActorRef__Group__630106 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorRef__DocuAssignment_6_in_rule__ActorRef__Group__6__Impl30133 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__MULTIPLICITY__Group__0__Impl_in_rule__MULTIPLICITY__Group__030178 = new BitSet(new long[]{0x0000000000010020L});
-    public static final BitSet FOLLOW_rule__MULTIPLICITY__Group__1_in_rule__MULTIPLICITY__Group__030181 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_58_in_rule__MULTIPLICITY__Group__0__Impl30209 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__MULTIPLICITY__Group__1__Impl_in_rule__MULTIPLICITY__Group__130240 = new BitSet(new long[]{0x0800000000000000L});
-    public static final BitSet FOLLOW_rule__MULTIPLICITY__Group__2_in_rule__MULTIPLICITY__Group__130243 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__MULTIPLICITY__Alternatives_1_in_rule__MULTIPLICITY__Group__1__Impl30270 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__MULTIPLICITY__Group__2__Impl_in_rule__MULTIPLICITY__Group__230300 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_59_in_rule__MULTIPLICITY__Group__2__Impl30328 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StateGraph__Group__0__Impl_in_rule__StateGraph__Group__030365 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__StateGraph__Group__1_in_rule__StateGraph__Group__030368 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StateGraph__Group__1__Impl_in_rule__StateGraph__Group__130426 = new BitSet(new long[]{0x0000020000000000L,0x000040FC20000000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StateGraph__Group__2_in_rule__StateGraph__Group__130429 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__StateGraph__Group__1__Impl30457 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StateGraph__Group__2__Impl_in_rule__StateGraph__Group__230488 = new BitSet(new long[]{0x0000020000000000L,0x000040FC20000000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StateGraph__Group__3_in_rule__StateGraph__Group__230491 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StateGraph__Alternatives_2_in_rule__StateGraph__Group__2__Impl30518 = new BitSet(new long[]{0x0000000000000002L,0x000040FC20000000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StateGraph__Group__3__Impl_in_rule__StateGraph__Group__330549 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__StateGraph__Group__3__Impl30577 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StateMachine__Group__0__Impl_in_rule__StateMachine__Group__030616 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
-    public static final BitSet FOLLOW_rule__StateMachine__Group__1_in_rule__StateMachine__Group__030619 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StateMachine__Group__1__Impl_in_rule__StateMachine__Group__130677 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__StateMachine__Group__2_in_rule__StateMachine__Group__130680 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_92_in_rule__StateMachine__Group__1__Impl30708 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StateMachine__Group__2__Impl_in_rule__StateMachine__Group__230739 = new BitSet(new long[]{0x0000020000000000L,0x000040FC20000000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StateMachine__Group__3_in_rule__StateMachine__Group__230742 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__StateMachine__Group__2__Impl30770 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StateMachine__Group__3__Impl_in_rule__StateMachine__Group__330801 = new BitSet(new long[]{0x0000020000000000L,0x000040FC20000000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StateMachine__Group__4_in_rule__StateMachine__Group__330804 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StateMachine__Alternatives_3_in_rule__StateMachine__Group__3__Impl30831 = new BitSet(new long[]{0x0000000000000002L,0x000040FC20000000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StateMachine__Group__4__Impl_in_rule__StateMachine__Group__430862 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__StateMachine__Group__4__Impl30890 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group__0__Impl_in_rule__SimpleState__Group__030931 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group__1_in_rule__SimpleState__Group__030934 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_93_in_rule__SimpleState__Group__0__Impl30962 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group__1__Impl_in_rule__SimpleState__Group__130993 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group__2_in_rule__SimpleState__Group__130996 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__NameAssignment_1_in_rule__SimpleState__Group__1__Impl31023 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group__2__Impl_in_rule__SimpleState__Group__231053 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group__3_in_rule__SimpleState__Group__231056 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__DocuAssignment_2_in_rule__SimpleState__Group__2__Impl31083 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group__3__Impl_in_rule__SimpleState__Group__331114 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3__0_in_rule__SimpleState__Group__3__Impl31141 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3__0__Impl_in_rule__SimpleState__Group_3__031180 = new BitSet(new long[]{0x0000020000000000L,0x00000003C0000000L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3__1_in_rule__SimpleState__Group_3__031183 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__SimpleState__Group_3__0__Impl31211 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3__1__Impl_in_rule__SimpleState__Group_3__131242 = new BitSet(new long[]{0x0000020000000000L,0x00000003C0000000L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3__2_in_rule__SimpleState__Group_3__131245 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3_1__0_in_rule__SimpleState__Group_3__1__Impl31272 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3__2__Impl_in_rule__SimpleState__Group_3__231303 = new BitSet(new long[]{0x0000020000000000L,0x00000003C0000000L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3__3_in_rule__SimpleState__Group_3__231306 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3_2__0_in_rule__SimpleState__Group_3__2__Impl31333 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3__3__Impl_in_rule__SimpleState__Group_3__331364 = new BitSet(new long[]{0x0000020000000000L,0x00000003C0000000L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3__4_in_rule__SimpleState__Group_3__331367 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3_3__0_in_rule__SimpleState__Group_3__3__Impl31394 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3__4__Impl_in_rule__SimpleState__Group_3__431425 = new BitSet(new long[]{0x0000020000000000L,0x00000003C0000000L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3__5_in_rule__SimpleState__Group_3__431428 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3_4__0_in_rule__SimpleState__Group_3__4__Impl31455 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3__5__Impl_in_rule__SimpleState__Group_3__531486 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__SimpleState__Group_3__5__Impl31514 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3_1__0__Impl_in_rule__SimpleState__Group_3_1__031557 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3_1__1_in_rule__SimpleState__Group_3_1__031560 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_94_in_rule__SimpleState__Group_3_1__0__Impl31588 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3_1__1__Impl_in_rule__SimpleState__Group_3_1__131619 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__EntryCodeAssignment_3_1_1_in_rule__SimpleState__Group_3_1__1__Impl31646 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3_2__0__Impl_in_rule__SimpleState__Group_3_2__031680 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3_2__1_in_rule__SimpleState__Group_3_2__031683 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_95_in_rule__SimpleState__Group_3_2__0__Impl31711 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3_2__1__Impl_in_rule__SimpleState__Group_3_2__131742 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__ExitCodeAssignment_3_2_1_in_rule__SimpleState__Group_3_2__1__Impl31769 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3_3__0__Impl_in_rule__SimpleState__Group_3_3__031803 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3_3__1_in_rule__SimpleState__Group_3_3__031806 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_96_in_rule__SimpleState__Group_3_3__0__Impl31834 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3_3__1__Impl_in_rule__SimpleState__Group_3_3__131865 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__DoCodeAssignment_3_3_1_in_rule__SimpleState__Group_3_3__1__Impl31892 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3_4__0__Impl_in_rule__SimpleState__Group_3_4__031926 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3_4__1_in_rule__SimpleState__Group_3_4__031929 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_97_in_rule__SimpleState__Group_3_4__0__Impl31957 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__Group_3_4__1__Impl_in_rule__SimpleState__Group_3_4__131988 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleState__SubgraphAssignment_3_4_1_in_rule__SimpleState__Group_3_4__1__Impl32015 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group__0__Impl_in_rule__RefinedState__Group__032049 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group__1_in_rule__RefinedState__Group__032052 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_98_in_rule__RefinedState__Group__0__Impl32080 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group__1__Impl_in_rule__RefinedState__Group__132111 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group__2_in_rule__RefinedState__Group__132114 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__TargetAssignment_1_in_rule__RefinedState__Group__1__Impl32141 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group__2__Impl_in_rule__RefinedState__Group__232171 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group__3_in_rule__RefinedState__Group__232174 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__DocuAssignment_2_in_rule__RefinedState__Group__2__Impl32201 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group__3__Impl_in_rule__RefinedState__Group__332232 = new BitSet(new long[]{0x0000020000000000L,0x00000003C0000000L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group__4_in_rule__RefinedState__Group__332235 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__RefinedState__Group__3__Impl32263 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group__4__Impl_in_rule__RefinedState__Group__432294 = new BitSet(new long[]{0x0000020000000000L,0x00000003C0000000L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group__5_in_rule__RefinedState__Group__432297 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group_4__0_in_rule__RefinedState__Group__4__Impl32324 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group__5__Impl_in_rule__RefinedState__Group__532355 = new BitSet(new long[]{0x0000020000000000L,0x00000003C0000000L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group__6_in_rule__RefinedState__Group__532358 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group_5__0_in_rule__RefinedState__Group__5__Impl32385 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group__6__Impl_in_rule__RefinedState__Group__632416 = new BitSet(new long[]{0x0000020000000000L,0x00000003C0000000L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group__7_in_rule__RefinedState__Group__632419 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group_6__0_in_rule__RefinedState__Group__6__Impl32446 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group__7__Impl_in_rule__RefinedState__Group__732477 = new BitSet(new long[]{0x0000020000000000L,0x00000003C0000000L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group__8_in_rule__RefinedState__Group__732480 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group_7__0_in_rule__RefinedState__Group__7__Impl32507 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group__8__Impl_in_rule__RefinedState__Group__832538 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__RefinedState__Group__8__Impl32566 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group_4__0__Impl_in_rule__RefinedState__Group_4__032615 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group_4__1_in_rule__RefinedState__Group_4__032618 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_94_in_rule__RefinedState__Group_4__0__Impl32646 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group_4__1__Impl_in_rule__RefinedState__Group_4__132677 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__EntryCodeAssignment_4_1_in_rule__RefinedState__Group_4__1__Impl32704 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group_5__0__Impl_in_rule__RefinedState__Group_5__032738 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group_5__1_in_rule__RefinedState__Group_5__032741 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_95_in_rule__RefinedState__Group_5__0__Impl32769 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group_5__1__Impl_in_rule__RefinedState__Group_5__132800 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__ExitCodeAssignment_5_1_in_rule__RefinedState__Group_5__1__Impl32827 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group_6__0__Impl_in_rule__RefinedState__Group_6__032861 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group_6__1_in_rule__RefinedState__Group_6__032864 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_96_in_rule__RefinedState__Group_6__0__Impl32892 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group_6__1__Impl_in_rule__RefinedState__Group_6__132923 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__DoCodeAssignment_6_1_in_rule__RefinedState__Group_6__1__Impl32950 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group_7__0__Impl_in_rule__RefinedState__Group_7__032984 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group_7__1_in_rule__RefinedState__Group_7__032987 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_97_in_rule__RefinedState__Group_7__0__Impl33015 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__Group_7__1__Impl_in_rule__RefinedState__Group_7__133046 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedState__SubgraphAssignment_7_1_in_rule__RefinedState__Group_7__1__Impl33073 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DetailCode__Group__0__Impl_in_rule__DetailCode__Group__033107 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__DetailCode__Group__1_in_rule__DetailCode__Group__033110 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DetailCode__Group__1__Impl_in_rule__DetailCode__Group__133168 = new BitSet(new long[]{0x0000020000000100L});
-    public static final BitSet FOLLOW_rule__DetailCode__Group__2_in_rule__DetailCode__Group__133171 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DetailCode__UsedAssignment_1_in_rule__DetailCode__Group__1__Impl33198 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DetailCode__Group__2__Impl_in_rule__DetailCode__Group__233228 = new BitSet(new long[]{0x0000020000000100L});
-    public static final BitSet FOLLOW_rule__DetailCode__Group__3_in_rule__DetailCode__Group__233231 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DetailCode__LinesAssignment_2_in_rule__DetailCode__Group__2__Impl33258 = new BitSet(new long[]{0x0000000000000102L});
-    public static final BitSet FOLLOW_rule__DetailCode__Group__3__Impl_in_rule__DetailCode__Group__333289 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__DetailCode__Group__3__Impl33317 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TransitionPoint__Group__0__Impl_in_rule__TransitionPoint__Group__033356 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TransitionPoint__Group__1_in_rule__TransitionPoint__Group__033359 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TransitionPoint__HandlerAssignment_0_in_rule__TransitionPoint__Group__0__Impl33386 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TransitionPoint__Group__1__Impl_in_rule__TransitionPoint__Group__133417 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__TransitionPoint__Group__2_in_rule__TransitionPoint__Group__133420 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_99_in_rule__TransitionPoint__Group__1__Impl33448 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TransitionPoint__Group__2__Impl_in_rule__TransitionPoint__Group__233479 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TransitionPoint__NameAssignment_2_in_rule__TransitionPoint__Group__2__Impl33506 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EntryPoint__Group__0__Impl_in_rule__EntryPoint__Group__033542 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__EntryPoint__Group__1_in_rule__EntryPoint__Group__033545 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_100_in_rule__EntryPoint__Group__0__Impl33573 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EntryPoint__Group__1__Impl_in_rule__EntryPoint__Group__133604 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EntryPoint__NameAssignment_1_in_rule__EntryPoint__Group__1__Impl33631 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExitPoint__Group__0__Impl_in_rule__ExitPoint__Group__033665 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__ExitPoint__Group__1_in_rule__ExitPoint__Group__033668 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_101_in_rule__ExitPoint__Group__0__Impl33696 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExitPoint__Group__1__Impl_in_rule__ExitPoint__Group__133727 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ExitPoint__NameAssignment_1_in_rule__ExitPoint__Group__1__Impl33754 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ChoicePoint__Group__0__Impl_in_rule__ChoicePoint__Group__033788 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__ChoicePoint__Group__1_in_rule__ChoicePoint__Group__033791 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_102_in_rule__ChoicePoint__Group__0__Impl33819 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ChoicePoint__Group__1__Impl_in_rule__ChoicePoint__Group__133850 = new BitSet(new long[]{0x0400000000000000L});
-    public static final BitSet FOLLOW_rule__ChoicePoint__Group__2_in_rule__ChoicePoint__Group__133853 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ChoicePoint__NameAssignment_1_in_rule__ChoicePoint__Group__1__Impl33880 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ChoicePoint__Group__2__Impl_in_rule__ChoicePoint__Group__233910 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ChoicePoint__DocuAssignment_2_in_rule__ChoicePoint__Group__2__Impl33937 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group__0__Impl_in_rule__InitialTransition__Group__033974 = new BitSet(new long[]{0x0000040000000080L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group__1_in_rule__InitialTransition__Group__033977 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_103_in_rule__InitialTransition__Group__0__Impl34005 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group__1__Impl_in_rule__InitialTransition__Group__134036 = new BitSet(new long[]{0x0000040000000080L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group__2_in_rule__InitialTransition__Group__134039 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InitialTransition__NameAssignment_1_in_rule__InitialTransition__Group__1__Impl34066 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group__2__Impl_in_rule__InitialTransition__Group__234097 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group__3_in_rule__InitialTransition__Group__234100 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_42_in_rule__InitialTransition__Group__2__Impl34128 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group__3__Impl_in_rule__InitialTransition__Group__334159 = new BitSet(new long[]{0x0000100000000000L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group__4_in_rule__InitialTransition__Group__334162 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_104_in_rule__InitialTransition__Group__3__Impl34190 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group__4__Impl_in_rule__InitialTransition__Group__434221 = new BitSet(new long[]{0x0000000000000080L,0x0001800000000000L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group__5_in_rule__InitialTransition__Group__434224 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_44_in_rule__InitialTransition__Group__4__Impl34252 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group__5__Impl_in_rule__InitialTransition__Group__534283 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group__6_in_rule__InitialTransition__Group__534286 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InitialTransition__ToAssignment_5_in_rule__InitialTransition__Group__5__Impl34313 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group__6__Impl_in_rule__InitialTransition__Group__634343 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group__7_in_rule__InitialTransition__Group__634346 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InitialTransition__DocuAssignment_6_in_rule__InitialTransition__Group__6__Impl34373 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group__7__Impl_in_rule__InitialTransition__Group__734404 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group_7__0_in_rule__InitialTransition__Group__7__Impl34431 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group_7__0__Impl_in_rule__InitialTransition__Group_7__034478 = new BitSet(new long[]{0x0000020000000000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group_7__1_in_rule__InitialTransition__Group_7__034481 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__InitialTransition__Group_7__0__Impl34509 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group_7__1__Impl_in_rule__InitialTransition__Group_7__134540 = new BitSet(new long[]{0x0000020000000000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group_7__2_in_rule__InitialTransition__Group_7__134543 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group_7_1__0_in_rule__InitialTransition__Group_7__1__Impl34570 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group_7__2__Impl_in_rule__InitialTransition__Group_7__234601 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__InitialTransition__Group_7__2__Impl34629 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group_7_1__0__Impl_in_rule__InitialTransition__Group_7_1__034666 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group_7_1__1_in_rule__InitialTransition__Group_7_1__034669 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_105_in_rule__InitialTransition__Group_7_1__0__Impl34697 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InitialTransition__Group_7_1__1__Impl_in_rule__InitialTransition__Group_7_1__134728 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InitialTransition__ActionAssignment_7_1_1_in_rule__InitialTransition__Group_7_1__1__Impl34755 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__0__Impl_in_rule__ContinuationTransition__Group__034789 = new BitSet(new long[]{0x0000040000000080L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__1_in_rule__ContinuationTransition__Group__034792 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_103_in_rule__ContinuationTransition__Group__0__Impl34820 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__1__Impl_in_rule__ContinuationTransition__Group__134851 = new BitSet(new long[]{0x0000040000000080L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__2_in_rule__ContinuationTransition__Group__134854 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__NameAssignment_1_in_rule__ContinuationTransition__Group__1__Impl34881 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__2__Impl_in_rule__ContinuationTransition__Group__234912 = new BitSet(new long[]{0x0000000000000080L,0x0001800000000000L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__3_in_rule__ContinuationTransition__Group__234915 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_42_in_rule__ContinuationTransition__Group__2__Impl34943 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__3__Impl_in_rule__ContinuationTransition__Group__334974 = new BitSet(new long[]{0x0000100000000000L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__4_in_rule__ContinuationTransition__Group__334977 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__FromAssignment_3_in_rule__ContinuationTransition__Group__3__Impl35004 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__4__Impl_in_rule__ContinuationTransition__Group__435034 = new BitSet(new long[]{0x0000000000000080L,0x0001800000000000L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__5_in_rule__ContinuationTransition__Group__435037 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_44_in_rule__ContinuationTransition__Group__4__Impl35065 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__5__Impl_in_rule__ContinuationTransition__Group__535096 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__6_in_rule__ContinuationTransition__Group__535099 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__ToAssignment_5_in_rule__ContinuationTransition__Group__5__Impl35126 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__6__Impl_in_rule__ContinuationTransition__Group__635156 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__7_in_rule__ContinuationTransition__Group__635159 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__DocuAssignment_6_in_rule__ContinuationTransition__Group__6__Impl35186 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__7__Impl_in_rule__ContinuationTransition__Group__735217 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group_7__0_in_rule__ContinuationTransition__Group__7__Impl35244 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group_7__0__Impl_in_rule__ContinuationTransition__Group_7__035291 = new BitSet(new long[]{0x0000020000000000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group_7__1_in_rule__ContinuationTransition__Group_7__035294 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__ContinuationTransition__Group_7__0__Impl35322 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group_7__1__Impl_in_rule__ContinuationTransition__Group_7__135353 = new BitSet(new long[]{0x0000020000000000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group_7__2_in_rule__ContinuationTransition__Group_7__135356 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group_7_1__0_in_rule__ContinuationTransition__Group_7__1__Impl35383 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group_7__2__Impl_in_rule__ContinuationTransition__Group_7__235414 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__ContinuationTransition__Group_7__2__Impl35442 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group_7_1__0__Impl_in_rule__ContinuationTransition__Group_7_1__035479 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group_7_1__1_in_rule__ContinuationTransition__Group_7_1__035482 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_105_in_rule__ContinuationTransition__Group_7_1__0__Impl35510 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__Group_7_1__1__Impl_in_rule__ContinuationTransition__Group_7_1__135541 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ContinuationTransition__ActionAssignment_7_1_1_in_rule__ContinuationTransition__Group_7_1__1__Impl35568 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__0__Impl_in_rule__TriggeredTransition__Group__035602 = new BitSet(new long[]{0x0000040000000080L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__1_in_rule__TriggeredTransition__Group__035605 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_103_in_rule__TriggeredTransition__Group__0__Impl35633 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__1__Impl_in_rule__TriggeredTransition__Group__135664 = new BitSet(new long[]{0x0000040000000080L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__2_in_rule__TriggeredTransition__Group__135667 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__NameAssignment_1_in_rule__TriggeredTransition__Group__1__Impl35694 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__2__Impl_in_rule__TriggeredTransition__Group__235725 = new BitSet(new long[]{0x0000000000000080L,0x0001800000000000L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__3_in_rule__TriggeredTransition__Group__235728 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_42_in_rule__TriggeredTransition__Group__2__Impl35756 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__3__Impl_in_rule__TriggeredTransition__Group__335787 = new BitSet(new long[]{0x0000100000000000L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__4_in_rule__TriggeredTransition__Group__335790 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__FromAssignment_3_in_rule__TriggeredTransition__Group__3__Impl35817 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__4__Impl_in_rule__TriggeredTransition__Group__435847 = new BitSet(new long[]{0x0000000000000080L,0x0001800000000000L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__5_in_rule__TriggeredTransition__Group__435850 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_44_in_rule__TriggeredTransition__Group__4__Impl35878 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__5__Impl_in_rule__TriggeredTransition__Group__535909 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__6_in_rule__TriggeredTransition__Group__535912 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__ToAssignment_5_in_rule__TriggeredTransition__Group__5__Impl35939 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__6__Impl_in_rule__TriggeredTransition__Group__635969 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__7_in_rule__TriggeredTransition__Group__635972 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__DocuAssignment_6_in_rule__TriggeredTransition__Group__6__Impl35999 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__7__Impl_in_rule__TriggeredTransition__Group__736030 = new BitSet(new long[]{0x0000000000000000L,0x0000040000000000L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__8_in_rule__TriggeredTransition__Group__736033 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__TriggeredTransition__Group__7__Impl36061 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__8__Impl_in_rule__TriggeredTransition__Group__836092 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__9_in_rule__TriggeredTransition__Group__836095 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_106_in_rule__TriggeredTransition__Group__8__Impl36123 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__9__Impl_in_rule__TriggeredTransition__Group__936154 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__10_in_rule__TriggeredTransition__Group__936157 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__TriggeredTransition__Group__9__Impl36185 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__10__Impl_in_rule__TriggeredTransition__Group__1036216 = new BitSet(new long[]{0x0000020000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__11_in_rule__TriggeredTransition__Group__1036219 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__TriggersAssignment_10_in_rule__TriggeredTransition__Group__10__Impl36246 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__11__Impl_in_rule__TriggeredTransition__Group__1136276 = new BitSet(new long[]{0x0000020000000000L,0x0000080000000000L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__12_in_rule__TriggeredTransition__Group__1136279 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group_11__0_in_rule__TriggeredTransition__Group__11__Impl36306 = new BitSet(new long[]{0x0000000000000002L,0x0000080000000000L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__12__Impl_in_rule__TriggeredTransition__Group__1236337 = new BitSet(new long[]{0x0000020000000000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__13_in_rule__TriggeredTransition__Group__1236340 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__TriggeredTransition__Group__12__Impl36368 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__13__Impl_in_rule__TriggeredTransition__Group__1336399 = new BitSet(new long[]{0x0000020000000000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__14_in_rule__TriggeredTransition__Group__1336402 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group_13__0_in_rule__TriggeredTransition__Group__13__Impl36429 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__14__Impl_in_rule__TriggeredTransition__Group__1436460 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__TriggeredTransition__Group__14__Impl36488 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group_11__0__Impl_in_rule__TriggeredTransition__Group_11__036549 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group_11__1_in_rule__TriggeredTransition__Group_11__036552 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_107_in_rule__TriggeredTransition__Group_11__0__Impl36580 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group_11__1__Impl_in_rule__TriggeredTransition__Group_11__136611 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__TriggersAssignment_11_1_in_rule__TriggeredTransition__Group_11__1__Impl36638 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group_13__0__Impl_in_rule__TriggeredTransition__Group_13__036672 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group_13__1_in_rule__TriggeredTransition__Group_13__036675 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_105_in_rule__TriggeredTransition__Group_13__0__Impl36703 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__Group_13__1__Impl_in_rule__TriggeredTransition__Group_13__136734 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TriggeredTransition__ActionAssignment_13_1_in_rule__TriggeredTransition__Group_13__1__Impl36761 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group__0__Impl_in_rule__GuardedTransition__Group__036795 = new BitSet(new long[]{0x0000040000000080L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group__1_in_rule__GuardedTransition__Group__036798 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_103_in_rule__GuardedTransition__Group__0__Impl36826 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group__1__Impl_in_rule__GuardedTransition__Group__136857 = new BitSet(new long[]{0x0000040000000080L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group__2_in_rule__GuardedTransition__Group__136860 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__NameAssignment_1_in_rule__GuardedTransition__Group__1__Impl36887 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group__2__Impl_in_rule__GuardedTransition__Group__236918 = new BitSet(new long[]{0x0000000000000080L,0x0001800000000000L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group__3_in_rule__GuardedTransition__Group__236921 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_42_in_rule__GuardedTransition__Group__2__Impl36949 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group__3__Impl_in_rule__GuardedTransition__Group__336980 = new BitSet(new long[]{0x0000100000000000L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group__4_in_rule__GuardedTransition__Group__336983 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__FromAssignment_3_in_rule__GuardedTransition__Group__3__Impl37010 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group__4__Impl_in_rule__GuardedTransition__Group__437040 = new BitSet(new long[]{0x0000000000000080L,0x0001800000000000L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group__5_in_rule__GuardedTransition__Group__437043 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_44_in_rule__GuardedTransition__Group__4__Impl37071 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group__5__Impl_in_rule__GuardedTransition__Group__537102 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group__6_in_rule__GuardedTransition__Group__537105 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__ToAssignment_5_in_rule__GuardedTransition__Group__5__Impl37132 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group__6__Impl_in_rule__GuardedTransition__Group__637162 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group__7_in_rule__GuardedTransition__Group__637165 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__DocuAssignment_6_in_rule__GuardedTransition__Group__6__Impl37192 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group__7__Impl_in_rule__GuardedTransition__Group__737223 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group__8_in_rule__GuardedTransition__Group__737226 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__GuardedTransition__Group__7__Impl37254 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group__8__Impl_in_rule__GuardedTransition__Group__837285 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group__9_in_rule__GuardedTransition__Group__837288 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_108_in_rule__GuardedTransition__Group__8__Impl37316 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group__9__Impl_in_rule__GuardedTransition__Group__937347 = new BitSet(new long[]{0x0000020000000000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group__10_in_rule__GuardedTransition__Group__937350 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__GuardAssignment_9_in_rule__GuardedTransition__Group__9__Impl37377 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group__10__Impl_in_rule__GuardedTransition__Group__1037407 = new BitSet(new long[]{0x0000020000000000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group__11_in_rule__GuardedTransition__Group__1037410 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group_10__0_in_rule__GuardedTransition__Group__10__Impl37437 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group__11__Impl_in_rule__GuardedTransition__Group__1137468 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__GuardedTransition__Group__11__Impl37496 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group_10__0__Impl_in_rule__GuardedTransition__Group_10__037551 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group_10__1_in_rule__GuardedTransition__Group_10__037554 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_105_in_rule__GuardedTransition__Group_10__0__Impl37582 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__Group_10__1__Impl_in_rule__GuardedTransition__Group_10__137613 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__GuardedTransition__ActionAssignment_10_1_in_rule__GuardedTransition__Group_10__1__Impl37640 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__0__Impl_in_rule__CPBranchTransition__Group__037674 = new BitSet(new long[]{0x0000040000000080L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__1_in_rule__CPBranchTransition__Group__037677 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_103_in_rule__CPBranchTransition__Group__0__Impl37705 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__1__Impl_in_rule__CPBranchTransition__Group__137736 = new BitSet(new long[]{0x0000040000000080L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__2_in_rule__CPBranchTransition__Group__137739 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__NameAssignment_1_in_rule__CPBranchTransition__Group__1__Impl37766 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__2__Impl_in_rule__CPBranchTransition__Group__237797 = new BitSet(new long[]{0x0000000000000080L,0x0001800000000000L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__3_in_rule__CPBranchTransition__Group__237800 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_42_in_rule__CPBranchTransition__Group__2__Impl37828 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__3__Impl_in_rule__CPBranchTransition__Group__337859 = new BitSet(new long[]{0x0000100000000000L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__4_in_rule__CPBranchTransition__Group__337862 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__FromAssignment_3_in_rule__CPBranchTransition__Group__3__Impl37889 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__4__Impl_in_rule__CPBranchTransition__Group__437919 = new BitSet(new long[]{0x0000000000000080L,0x0001800000000000L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__5_in_rule__CPBranchTransition__Group__437922 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_44_in_rule__CPBranchTransition__Group__4__Impl37950 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__5__Impl_in_rule__CPBranchTransition__Group__537981 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__6_in_rule__CPBranchTransition__Group__537984 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__ToAssignment_5_in_rule__CPBranchTransition__Group__5__Impl38011 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__6__Impl_in_rule__CPBranchTransition__Group__638041 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__7_in_rule__CPBranchTransition__Group__638044 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__DocuAssignment_6_in_rule__CPBranchTransition__Group__6__Impl38071 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__7__Impl_in_rule__CPBranchTransition__Group__738102 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__8_in_rule__CPBranchTransition__Group__738105 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__CPBranchTransition__Group__7__Impl38133 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__8__Impl_in_rule__CPBranchTransition__Group__838164 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__9_in_rule__CPBranchTransition__Group__838167 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_109_in_rule__CPBranchTransition__Group__8__Impl38195 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__9__Impl_in_rule__CPBranchTransition__Group__938226 = new BitSet(new long[]{0x0000020000000000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__10_in_rule__CPBranchTransition__Group__938229 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__ConditionAssignment_9_in_rule__CPBranchTransition__Group__9__Impl38256 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__10__Impl_in_rule__CPBranchTransition__Group__1038286 = new BitSet(new long[]{0x0000020000000000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__11_in_rule__CPBranchTransition__Group__1038289 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group_10__0_in_rule__CPBranchTransition__Group__10__Impl38316 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__11__Impl_in_rule__CPBranchTransition__Group__1138347 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__CPBranchTransition__Group__11__Impl38375 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group_10__0__Impl_in_rule__CPBranchTransition__Group_10__038430 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group_10__1_in_rule__CPBranchTransition__Group_10__038433 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_105_in_rule__CPBranchTransition__Group_10__0__Impl38461 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__Group_10__1__Impl_in_rule__CPBranchTransition__Group_10__138492 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__CPBranchTransition__ActionAssignment_10_1_in_rule__CPBranchTransition__Group_10__1__Impl38519 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedTransition__Group__0__Impl_in_rule__RefinedTransition__Group__038553 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__RefinedTransition__Group__1_in_rule__RefinedTransition__Group__038556 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_110_in_rule__RefinedTransition__Group__0__Impl38584 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedTransition__Group__1__Impl_in_rule__RefinedTransition__Group__138615 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__RefinedTransition__Group__2_in_rule__RefinedTransition__Group__138618 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedTransition__TargetAssignment_1_in_rule__RefinedTransition__Group__1__Impl38645 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedTransition__Group__2__Impl_in_rule__RefinedTransition__Group__238675 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__RefinedTransition__Group__3_in_rule__RefinedTransition__Group__238678 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedTransition__DocuAssignment_2_in_rule__RefinedTransition__Group__2__Impl38705 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedTransition__Group__3__Impl_in_rule__RefinedTransition__Group__338736 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_rule__RefinedTransition__Group__4_in_rule__RefinedTransition__Group__338739 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__RefinedTransition__Group__3__Impl38767 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedTransition__Group__4__Impl_in_rule__RefinedTransition__Group__438798 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__RefinedTransition__Group__5_in_rule__RefinedTransition__Group__438801 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_105_in_rule__RefinedTransition__Group__4__Impl38829 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedTransition__Group__5__Impl_in_rule__RefinedTransition__Group__538860 = new BitSet(new long[]{0x0000020000000000L});
-    public static final BitSet FOLLOW_rule__RefinedTransition__Group__6_in_rule__RefinedTransition__Group__538863 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedTransition__ActionAssignment_5_in_rule__RefinedTransition__Group__5__Impl38890 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RefinedTransition__Group__6__Impl_in_rule__RefinedTransition__Group__638920 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__RefinedTransition__Group__6__Impl38948 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TrPointTerminal__Group__0__Impl_in_rule__TrPointTerminal__Group__038993 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__TrPointTerminal__Group__1_in_rule__TrPointTerminal__Group__038996 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_111_in_rule__TrPointTerminal__Group__0__Impl39024 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TrPointTerminal__Group__1__Impl_in_rule__TrPointTerminal__Group__139055 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__TrPointTerminal__TrPointAssignment_1_in_rule__TrPointTerminal__Group__1__Impl39082 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubStateTrPointTerminal__Group__0__Impl_in_rule__SubStateTrPointTerminal__Group__039116 = new BitSet(new long[]{0x0002000000000000L});
-    public static final BitSet FOLLOW_rule__SubStateTrPointTerminal__Group__1_in_rule__SubStateTrPointTerminal__Group__039119 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubStateTrPointTerminal__TrPointAssignment_0_in_rule__SubStateTrPointTerminal__Group__0__Impl39146 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubStateTrPointTerminal__Group__1__Impl_in_rule__SubStateTrPointTerminal__Group__139176 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__SubStateTrPointTerminal__Group__2_in_rule__SubStateTrPointTerminal__Group__139179 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_49_in_rule__SubStateTrPointTerminal__Group__1__Impl39207 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubStateTrPointTerminal__Group__2__Impl_in_rule__SubStateTrPointTerminal__Group__239238 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SubStateTrPointTerminal__StateAssignment_2_in_rule__SubStateTrPointTerminal__Group__2__Impl39265 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ChoicepointTerminal__Group__0__Impl_in_rule__ChoicepointTerminal__Group__039301 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__ChoicepointTerminal__Group__1_in_rule__ChoicepointTerminal__Group__039304 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_112_in_rule__ChoicepointTerminal__Group__0__Impl39332 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ChoicepointTerminal__Group__1__Impl_in_rule__ChoicepointTerminal__Group__139363 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ChoicepointTerminal__CpAssignment_1_in_rule__ChoicepointTerminal__Group__1__Impl39390 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Trigger__Group__0__Impl_in_rule__Trigger__Group__039424 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__Trigger__Group__1_in_rule__Trigger__Group__039427 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_113_in_rule__Trigger__Group__0__Impl39455 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Trigger__Group__1__Impl_in_rule__Trigger__Group__139486 = new BitSet(new long[]{0x0000000000000000L,0x000C100000000000L});
-    public static final BitSet FOLLOW_rule__Trigger__Group__2_in_rule__Trigger__Group__139489 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Trigger__MsgFromIfPairsAssignment_1_in_rule__Trigger__Group__1__Impl39516 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Trigger__Group__2__Impl_in_rule__Trigger__Group__239546 = new BitSet(new long[]{0x0000000000000000L,0x000C100000000000L});
-    public static final BitSet FOLLOW_rule__Trigger__Group__3_in_rule__Trigger__Group__239549 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Trigger__Group_2__0_in_rule__Trigger__Group__2__Impl39576 = new BitSet(new long[]{0x0000000000000002L,0x0008000000000000L});
-    public static final BitSet FOLLOW_rule__Trigger__Group__3__Impl_in_rule__Trigger__Group__339607 = new BitSet(new long[]{0x0000000000000000L,0x000C100000000000L});
-    public static final BitSet FOLLOW_rule__Trigger__Group__4_in_rule__Trigger__Group__339610 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Trigger__GuardAssignment_3_in_rule__Trigger__Group__3__Impl39637 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Trigger__Group__4__Impl_in_rule__Trigger__Group__439668 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_114_in_rule__Trigger__Group__4__Impl39696 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Trigger__Group_2__0__Impl_in_rule__Trigger__Group_2__039737 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__Trigger__Group_2__1_in_rule__Trigger__Group_2__039740 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_115_in_rule__Trigger__Group_2__0__Impl39768 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Trigger__Group_2__1__Impl_in_rule__Trigger__Group_2__139799 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Trigger__MsgFromIfPairsAssignment_2_1_in_rule__Trigger__Group_2__1__Impl39826 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__MessageFromIf__Group__0__Impl_in_rule__MessageFromIf__Group__039860 = new BitSet(new long[]{0x0000040000000000L});
-    public static final BitSet FOLLOW_rule__MessageFromIf__Group__1_in_rule__MessageFromIf__Group__039863 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__MessageFromIf__MessageAssignment_0_in_rule__MessageFromIf__Group__0__Impl39890 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__MessageFromIf__Group__1__Impl_in_rule__MessageFromIf__Group__139920 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__MessageFromIf__Group__2_in_rule__MessageFromIf__Group__139923 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_42_in_rule__MessageFromIf__Group__1__Impl39951 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__MessageFromIf__Group__2__Impl_in_rule__MessageFromIf__Group__239982 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__MessageFromIf__FromAssignment_2_in_rule__MessageFromIf__Group__2__Impl40009 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Guard__Group__0__Impl_in_rule__Guard__Group__040045 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__Guard__Group__1_in_rule__Guard__Group__040048 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_108_in_rule__Guard__Group__0__Impl40076 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Guard__Group__1__Impl_in_rule__Guard__Group__140107 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Guard__GuardAssignment_1_in_rule__Guard__Group__1__Impl40134 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolSemantics__Group__0__Impl_in_rule__ProtocolSemantics__Group__040168 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
-    public static final BitSet FOLLOW_rule__ProtocolSemantics__Group__1_in_rule__ProtocolSemantics__Group__040171 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolSemantics__Group__1__Impl_in_rule__ProtocolSemantics__Group__140229 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__ProtocolSemantics__Group__2_in_rule__ProtocolSemantics__Group__140232 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_116_in_rule__ProtocolSemantics__Group__1__Impl40260 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolSemantics__Group__2__Impl_in_rule__ProtocolSemantics__Group__240291 = new BitSet(new long[]{0x0000020000000000L,0x0060000000000000L});
-    public static final BitSet FOLLOW_rule__ProtocolSemantics__Group__3_in_rule__ProtocolSemantics__Group__240294 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__ProtocolSemantics__Group__2__Impl40322 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolSemantics__Group__3__Impl_in_rule__ProtocolSemantics__Group__340353 = new BitSet(new long[]{0x0000020000000000L,0x0060000000000000L});
-    public static final BitSet FOLLOW_rule__ProtocolSemantics__Group__4_in_rule__ProtocolSemantics__Group__340356 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ProtocolSemantics__RulesAssignment_3_in_rule__ProtocolSemantics__Group__3__Impl40383 = new BitSet(new long[]{0x0000000000000002L,0x0060000000000000L});
-    public static final BitSet FOLLOW_rule__ProtocolSemantics__Group__4__Impl_in_rule__ProtocolSemantics__Group__440414 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__ProtocolSemantics__Group__4__Impl40442 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Group__0__Impl_in_rule__InSemanticsRule__Group__040483 = new BitSet(new long[]{0x0000040000000000L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Group__1_in_rule__InSemanticsRule__Group__040486 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_117_in_rule__InSemanticsRule__Group__0__Impl40514 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Group__1__Impl_in_rule__InSemanticsRule__Group__140545 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Group__2_in_rule__InSemanticsRule__Group__140548 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_42_in_rule__InSemanticsRule__Group__1__Impl40576 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Group__2__Impl_in_rule__InSemanticsRule__Group__240607 = new BitSet(new long[]{0x0000100000000000L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Group__3_in_rule__InSemanticsRule__Group__240610 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__MsgAssignment_2_in_rule__InSemanticsRule__Group__2__Impl40637 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Group__3__Impl_in_rule__InSemanticsRule__Group__340667 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3__0_in_rule__InSemanticsRule__Group__3__Impl40694 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3__0__Impl_in_rule__InSemanticsRule__Group_3__040733 = new BitSet(new long[]{0x0000400000000000L,0x0060000000000000L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3__1_in_rule__InSemanticsRule__Group_3__040736 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_44_in_rule__InSemanticsRule__Group_3__0__Impl40764 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3__1__Impl_in_rule__InSemanticsRule__Group_3__140795 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Alternatives_3_1_in_rule__InSemanticsRule__Group_3__1__Impl40822 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1__0__Impl_in_rule__InSemanticsRule__Group_3_1_1__040856 = new BitSet(new long[]{0x0000000000000000L,0x0060000000000000L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1__1_in_rule__InSemanticsRule__Group_3_1_1__040859 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_46_in_rule__InSemanticsRule__Group_3_1_1__0__Impl40887 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1__1__Impl_in_rule__InSemanticsRule__Group_3_1_1__140918 = new BitSet(new long[]{0x0004000000000000L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1__2_in_rule__InSemanticsRule__Group_3_1_1__140921 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__FollowUpsAssignment_3_1_1_1_in_rule__InSemanticsRule__Group_3_1_1__1__Impl40948 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1__2__Impl_in_rule__InSemanticsRule__Group_3_1_1__240978 = new BitSet(new long[]{0x0000800000000000L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1__3_in_rule__InSemanticsRule__Group_3_1_1__240981 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1_2__0_in_rule__InSemanticsRule__Group_3_1_1__2__Impl41010 = new BitSet(new long[]{0x0004000000000002L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1_2__0_in_rule__InSemanticsRule__Group_3_1_1__2__Impl41022 = new BitSet(new long[]{0x0004000000000002L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1__3__Impl_in_rule__InSemanticsRule__Group_3_1_1__341055 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_47_in_rule__InSemanticsRule__Group_3_1_1__3__Impl41083 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1_2__0__Impl_in_rule__InSemanticsRule__Group_3_1_1_2__041122 = new BitSet(new long[]{0x0000000000000000L,0x0060000000000000L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1_2__1_in_rule__InSemanticsRule__Group_3_1_1_2__041125 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_50_in_rule__InSemanticsRule__Group_3_1_1_2__0__Impl41153 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1_2__1__Impl_in_rule__InSemanticsRule__Group_3_1_1_2__141184 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__InSemanticsRule__FollowUpsAssignment_3_1_1_2_1_in_rule__InSemanticsRule__Group_3_1_1_2__1__Impl41211 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group__0__Impl_in_rule__OutSemanticsRule__Group__041245 = new BitSet(new long[]{0x0000040000000000L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group__1_in_rule__OutSemanticsRule__Group__041248 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_118_in_rule__OutSemanticsRule__Group__0__Impl41276 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group__1__Impl_in_rule__OutSemanticsRule__Group__141307 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group__2_in_rule__OutSemanticsRule__Group__141310 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_42_in_rule__OutSemanticsRule__Group__1__Impl41338 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group__2__Impl_in_rule__OutSemanticsRule__Group__241369 = new BitSet(new long[]{0x0000100000000000L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group__3_in_rule__OutSemanticsRule__Group__241372 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__MsgAssignment_2_in_rule__OutSemanticsRule__Group__2__Impl41399 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group__3__Impl_in_rule__OutSemanticsRule__Group__341429 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3__0_in_rule__OutSemanticsRule__Group__3__Impl41456 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3__0__Impl_in_rule__OutSemanticsRule__Group_3__041495 = new BitSet(new long[]{0x0000400000000000L,0x0060000000000000L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3__1_in_rule__OutSemanticsRule__Group_3__041498 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_44_in_rule__OutSemanticsRule__Group_3__0__Impl41526 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3__1__Impl_in_rule__OutSemanticsRule__Group_3__141557 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Alternatives_3_1_in_rule__OutSemanticsRule__Group_3__1__Impl41584 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1__0__Impl_in_rule__OutSemanticsRule__Group_3_1_1__041618 = new BitSet(new long[]{0x0000000000000000L,0x0060000000000000L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1__1_in_rule__OutSemanticsRule__Group_3_1_1__041621 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_46_in_rule__OutSemanticsRule__Group_3_1_1__0__Impl41649 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1__1__Impl_in_rule__OutSemanticsRule__Group_3_1_1__141680 = new BitSet(new long[]{0x0004000000000000L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1__2_in_rule__OutSemanticsRule__Group_3_1_1__141683 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__FollowUpsAssignment_3_1_1_1_in_rule__OutSemanticsRule__Group_3_1_1__1__Impl41710 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1__2__Impl_in_rule__OutSemanticsRule__Group_3_1_1__241740 = new BitSet(new long[]{0x0000800000000000L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1__3_in_rule__OutSemanticsRule__Group_3_1_1__241743 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1_2__0_in_rule__OutSemanticsRule__Group_3_1_1__2__Impl41772 = new BitSet(new long[]{0x0004000000000002L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1_2__0_in_rule__OutSemanticsRule__Group_3_1_1__2__Impl41784 = new BitSet(new long[]{0x0004000000000002L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1__3__Impl_in_rule__OutSemanticsRule__Group_3_1_1__341817 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_47_in_rule__OutSemanticsRule__Group_3_1_1__3__Impl41845 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1_2__0__Impl_in_rule__OutSemanticsRule__Group_3_1_1_2__041884 = new BitSet(new long[]{0x0000000000000000L,0x0060000000000000L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1_2__1_in_rule__OutSemanticsRule__Group_3_1_1_2__041887 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_50_in_rule__OutSemanticsRule__Group_3_1_1_2__0__Impl41915 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1_2__1__Impl_in_rule__OutSemanticsRule__Group_3_1_1_2__141946 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__OutSemanticsRule__FollowUpsAssignment_3_1_1_2_1_in_rule__OutSemanticsRule__Group_3_1_1_2__1__Impl41973 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Annotation__Group__0__Impl_in_rule__Annotation__Group__042007 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__Annotation__Group__1_in_rule__Annotation__Group__042010 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_119_in_rule__Annotation__Group__0__Impl42038 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Annotation__Group__1__Impl_in_rule__Annotation__Group__142069 = new BitSet(new long[]{0x0000400000000000L});
-    public static final BitSet FOLLOW_rule__Annotation__Group__2_in_rule__Annotation__Group__142072 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Annotation__TypeAssignment_1_in_rule__Annotation__Group__1__Impl42099 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Annotation__Group__2__Impl_in_rule__Annotation__Group__242129 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Annotation__Group_2__0_in_rule__Annotation__Group__2__Impl42156 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Annotation__Group_2__0__Impl_in_rule__Annotation__Group_2__042193 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__Annotation__Group_2__1_in_rule__Annotation__Group_2__042196 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_46_in_rule__Annotation__Group_2__0__Impl42224 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Annotation__Group_2__1__Impl_in_rule__Annotation__Group_2__142255 = new BitSet(new long[]{0x0004800000000000L});
-    public static final BitSet FOLLOW_rule__Annotation__Group_2__2_in_rule__Annotation__Group_2__142258 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Annotation__AttributesAssignment_2_1_in_rule__Annotation__Group_2__1__Impl42285 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Annotation__Group_2__2__Impl_in_rule__Annotation__Group_2__242315 = new BitSet(new long[]{0x0004800000000000L});
-    public static final BitSet FOLLOW_rule__Annotation__Group_2__3_in_rule__Annotation__Group_2__242318 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Annotation__Group_2_2__0_in_rule__Annotation__Group_2__2__Impl42345 = new BitSet(new long[]{0x0004000000000002L});
-    public static final BitSet FOLLOW_rule__Annotation__Group_2__3__Impl_in_rule__Annotation__Group_2__342376 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_47_in_rule__Annotation__Group_2__3__Impl42404 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Annotation__Group_2_2__0__Impl_in_rule__Annotation__Group_2_2__042443 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__Annotation__Group_2_2__1_in_rule__Annotation__Group_2_2__042446 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_50_in_rule__Annotation__Group_2_2__0__Impl42474 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Annotation__Group_2_2__1__Impl_in_rule__Annotation__Group_2_2__142505 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Annotation__AttributesAssignment_2_2_1_in_rule__Annotation__Group_2_2__1__Impl42532 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__KeyValue__Group__0__Impl_in_rule__KeyValue__Group__042566 = new BitSet(new long[]{0x0008000000000000L});
-    public static final BitSet FOLLOW_rule__KeyValue__Group__1_in_rule__KeyValue__Group__042569 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__KeyValue__KeyAssignment_0_in_rule__KeyValue__Group__0__Impl42596 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__KeyValue__Group__1__Impl_in_rule__KeyValue__Group__142626 = new BitSet(new long[]{0x000000001C000130L,0x0000000000200000L,0x0000000000000004L});
-    public static final BitSet FOLLOW_rule__KeyValue__Group__2_in_rule__KeyValue__Group__142629 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_51_in_rule__KeyValue__Group__1__Impl42657 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__KeyValue__Group__2__Impl_in_rule__KeyValue__Group__242688 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__KeyValue__ValueAssignment_2_in_rule__KeyValue__Group__2__Impl42715 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group__0__Impl_in_rule__AnnotationType__Group__042751 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group__1_in_rule__AnnotationType__Group__042754 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_120_in_rule__AnnotationType__Group__0__Impl42782 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group__1__Impl_in_rule__AnnotationType__Group__142813 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group__2_in_rule__AnnotationType__Group__142816 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__AnnotationType__NameAssignment_1_in_rule__AnnotationType__Group__1__Impl42843 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group__2__Impl_in_rule__AnnotationType__Group__242873 = new BitSet(new long[]{0x0400010000000000L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group__3_in_rule__AnnotationType__Group__242876 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__AnnotationType__DocuAssignment_2_in_rule__AnnotationType__Group__2__Impl42903 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group__3__Impl_in_rule__AnnotationType__Group__342934 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group__4_in_rule__AnnotationType__Group__342937 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__AnnotationType__Group__3__Impl42965 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group__4__Impl_in_rule__AnnotationType__Group__442996 = new BitSet(new long[]{0x0008000000000000L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group__5_in_rule__AnnotationType__Group__442999 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_121_in_rule__AnnotationType__Group__4__Impl43027 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group__5__Impl_in_rule__AnnotationType__Group__543058 = new BitSet(new long[]{0x0000010000FE0000L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group__6_in_rule__AnnotationType__Group__543061 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_51_in_rule__AnnotationType__Group__5__Impl43089 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group__6__Impl_in_rule__AnnotationType__Group__643120 = new BitSet(new long[]{0x0000020201000000L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group__7_in_rule__AnnotationType__Group__643123 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Alternatives_6_in_rule__AnnotationType__Group__6__Impl43150 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group__7__Impl_in_rule__AnnotationType__Group__743180 = new BitSet(new long[]{0x0000020201000000L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group__8_in_rule__AnnotationType__Group__743183 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__AnnotationType__AttributesAssignment_7_in_rule__AnnotationType__Group__7__Impl43210 = new BitSet(new long[]{0x0000000201000002L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group__8__Impl_in_rule__AnnotationType__Group__843241 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__AnnotationType__Group__8__Impl43269 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group_6_1__0__Impl_in_rule__AnnotationType__Group_6_1__043318 = new BitSet(new long[]{0x0000000000FE0000L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group_6_1__1_in_rule__AnnotationType__Group_6_1__043321 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__AnnotationType__Group_6_1__0__Impl43349 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group_6_1__1__Impl_in_rule__AnnotationType__Group_6_1__143380 = new BitSet(new long[]{0x0004020000000000L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group_6_1__2_in_rule__AnnotationType__Group_6_1__143383 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__AnnotationType__TargetsAssignment_6_1_1_in_rule__AnnotationType__Group_6_1__1__Impl43410 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group_6_1__2__Impl_in_rule__AnnotationType__Group_6_1__243440 = new BitSet(new long[]{0x0004020000000000L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group_6_1__3_in_rule__AnnotationType__Group_6_1__243443 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group_6_1_2__0_in_rule__AnnotationType__Group_6_1__2__Impl43470 = new BitSet(new long[]{0x0004000000000002L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group_6_1__3__Impl_in_rule__AnnotationType__Group_6_1__343501 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__AnnotationType__Group_6_1__3__Impl43529 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group_6_1_2__0__Impl_in_rule__AnnotationType__Group_6_1_2__043568 = new BitSet(new long[]{0x0000000000FE0000L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group_6_1_2__1_in_rule__AnnotationType__Group_6_1_2__043571 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_50_in_rule__AnnotationType__Group_6_1_2__0__Impl43599 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__AnnotationType__Group_6_1_2__1__Impl_in_rule__AnnotationType__Group_6_1_2__143630 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__AnnotationType__TargetsAssignment_6_1_2_1_in_rule__AnnotationType__Group_6_1_2__1__Impl43657 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__Group__0__Impl_in_rule__SimpleAnnotationAttribute__Group__043691 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
-    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__Group__1_in_rule__SimpleAnnotationAttribute__Group__043694 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__Alternatives_0_in_rule__SimpleAnnotationAttribute__Group__0__Impl43721 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__Group__1__Impl_in_rule__SimpleAnnotationAttribute__Group__143751 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__Group__2_in_rule__SimpleAnnotationAttribute__Group__143754 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_122_in_rule__SimpleAnnotationAttribute__Group__1__Impl43782 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__Group__2__Impl_in_rule__SimpleAnnotationAttribute__Group__243813 = new BitSet(new long[]{0x0000040000000000L});
-    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__Group__3_in_rule__SimpleAnnotationAttribute__Group__243816 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__NameAssignment_2_in_rule__SimpleAnnotationAttribute__Group__2__Impl43843 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__Group__3__Impl_in_rule__SimpleAnnotationAttribute__Group__343873 = new BitSet(new long[]{0x0000007800000000L});
-    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__Group__4_in_rule__SimpleAnnotationAttribute__Group__343876 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_42_in_rule__SimpleAnnotationAttribute__Group__3__Impl43904 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__Group__4__Impl_in_rule__SimpleAnnotationAttribute__Group__443935 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__TypeAssignment_4_in_rule__SimpleAnnotationAttribute__Group__4__Impl43962 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__0__Impl_in_rule__EnumAnnotationAttribute__Group__044002 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
-    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__1_in_rule__EnumAnnotationAttribute__Group__044005 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Alternatives_0_in_rule__EnumAnnotationAttribute__Group__0__Impl44032 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__1__Impl_in_rule__EnumAnnotationAttribute__Group__144062 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__2_in_rule__EnumAnnotationAttribute__Group__144065 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_122_in_rule__EnumAnnotationAttribute__Group__1__Impl44093 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__2__Impl_in_rule__EnumAnnotationAttribute__Group__244124 = new BitSet(new long[]{0x0000040000000000L});
-    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__3_in_rule__EnumAnnotationAttribute__Group__244127 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__NameAssignment_2_in_rule__EnumAnnotationAttribute__Group__2__Impl44154 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__3__Impl_in_rule__EnumAnnotationAttribute__Group__344184 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__4_in_rule__EnumAnnotationAttribute__Group__344187 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_42_in_rule__EnumAnnotationAttribute__Group__3__Impl44215 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__4__Impl_in_rule__EnumAnnotationAttribute__Group__444246 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__5_in_rule__EnumAnnotationAttribute__Group__444249 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__EnumAnnotationAttribute__Group__4__Impl44277 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__5__Impl_in_rule__EnumAnnotationAttribute__Group__544308 = new BitSet(new long[]{0x0004020000000000L});
-    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__6_in_rule__EnumAnnotationAttribute__Group__544311 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__ValuesAssignment_5_in_rule__EnumAnnotationAttribute__Group__5__Impl44338 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__6__Impl_in_rule__EnumAnnotationAttribute__Group__644368 = new BitSet(new long[]{0x0004020000000000L});
-    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__7_in_rule__EnumAnnotationAttribute__Group__644371 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group_6__0_in_rule__EnumAnnotationAttribute__Group__6__Impl44398 = new BitSet(new long[]{0x0004000000000002L});
-    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__7__Impl_in_rule__EnumAnnotationAttribute__Group__744429 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_41_in_rule__EnumAnnotationAttribute__Group__7__Impl44457 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group_6__0__Impl_in_rule__EnumAnnotationAttribute__Group_6__044504 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group_6__1_in_rule__EnumAnnotationAttribute__Group_6__044507 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_50_in_rule__EnumAnnotationAttribute__Group_6__0__Impl44535 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group_6__1__Impl_in_rule__EnumAnnotationAttribute__Group_6__144566 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__ValuesAssignment_6_1_in_rule__EnumAnnotationAttribute__Group_6__1__Impl44593 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__Group__0__Impl_in_rule__Import__Group__044627 = new BitSet(new long[]{0x0000000002000080L});
-    public static final BitSet FOLLOW_rule__Import__Group__1_in_rule__Import__Group__044630 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_123_in_rule__Import__Group__0__Impl44658 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__Group__1__Impl_in_rule__Import__Group__144689 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_rule__Import__Group__2_in_rule__Import__Group__144692 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__Alternatives_1_in_rule__Import__Group__1__Impl44719 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__Group__2__Impl_in_rule__Import__Group__244749 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__ImportURIAssignment_2_in_rule__Import__Group__2__Impl44776 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__Group_1_0__0__Impl_in_rule__Import__Group_1_0__044812 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
-    public static final BitSet FOLLOW_rule__Import__Group_1_0__1_in_rule__Import__Group_1_0__044815 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__ImportedNamespaceAssignment_1_0_0_in_rule__Import__Group_1_0__0__Impl44842 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Import__Group_1_0__1__Impl_in_rule__Import__Group_1_0__144872 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_124_in_rule__Import__Group_1_0__1__Impl44900 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ImportedFQN__Group__0__Impl_in_rule__ImportedFQN__Group__044935 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
-    public static final BitSet FOLLOW_rule__ImportedFQN__Group__1_in_rule__ImportedFQN__Group__044938 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleFQN_in_rule__ImportedFQN__Group__0__Impl44965 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ImportedFQN__Group__1__Impl_in_rule__ImportedFQN__Group__144994 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_125_in_rule__ImportedFQN__Group__1__Impl45023 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Documentation__Group__0__Impl_in_rule__Documentation__Group__045060 = new BitSet(new long[]{0x0400000000000000L});
-    public static final BitSet FOLLOW_rule__Documentation__Group__1_in_rule__Documentation__Group__045063 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Documentation__Group__1__Impl_in_rule__Documentation__Group__145121 = new BitSet(new long[]{0x0800000000000100L});
-    public static final BitSet FOLLOW_rule__Documentation__Group__2_in_rule__Documentation__Group__145124 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_58_in_rule__Documentation__Group__1__Impl45152 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Documentation__Group__2__Impl_in_rule__Documentation__Group__245183 = new BitSet(new long[]{0x0800000000000100L});
-    public static final BitSet FOLLOW_rule__Documentation__Group__3_in_rule__Documentation__Group__245186 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Documentation__LinesAssignment_2_in_rule__Documentation__Group__2__Impl45213 = new BitSet(new long[]{0x0000000000000102L});
-    public static final BitSet FOLLOW_rule__Documentation__Group__3__Impl_in_rule__Documentation__Group__345244 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_59_in_rule__Documentation__Group__3__Impl45272 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__BooleanLiteral__Group__0__Impl_in_rule__BooleanLiteral__Group__045317 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000000L,0x0000000000000004L});
-    public static final BitSet FOLLOW_rule__BooleanLiteral__Group__1_in_rule__BooleanLiteral__Group__045320 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__BooleanLiteral__Group__1__Impl_in_rule__BooleanLiteral__Group__145378 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__BooleanLiteral__Alternatives_1_in_rule__BooleanLiteral__Group__1__Impl45405 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RealLiteral__Group__0__Impl_in_rule__RealLiteral__Group__045439 = new BitSet(new long[]{0x0000000018000030L,0x0000000000200000L});
-    public static final BitSet FOLLOW_rule__RealLiteral__Group__1_in_rule__RealLiteral__Group__045442 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RealLiteral__Group__1__Impl_in_rule__RealLiteral__Group__145500 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__RealLiteral__ValueAssignment_1_in_rule__RealLiteral__Group__1__Impl45527 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__IntLiteral__Group__0__Impl_in_rule__IntLiteral__Group__045561 = new BitSet(new long[]{0x0000000018000030L});
-    public static final BitSet FOLLOW_rule__IntLiteral__Group__1_in_rule__IntLiteral__Group__045564 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__IntLiteral__Group__1__Impl_in_rule__IntLiteral__Group__145622 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__IntLiteral__ValueAssignment_1_in_rule__IntLiteral__Group__1__Impl45649 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StringLiteral__Group__0__Impl_in_rule__StringLiteral__Group__045683 = new BitSet(new long[]{0x000000001C000130L,0x0000000000200000L,0x0000000000000004L});
-    public static final BitSet FOLLOW_rule__StringLiteral__Group__1_in_rule__StringLiteral__Group__045686 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StringLiteral__Group__1__Impl_in_rule__StringLiteral__Group__145744 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__StringLiteral__ValueAssignment_1_in_rule__StringLiteral__Group__1__Impl45771 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SignedInteger__Group__0__Impl_in_rule__SignedInteger__Group__045805 = new BitSet(new long[]{0x0000000018000020L});
-    public static final BitSet FOLLOW_rule__SignedInteger__Group__1_in_rule__SignedInteger__Group__045808 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SignedInteger__Alternatives_0_in_rule__SignedInteger__Group__0__Impl45835 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__SignedInteger__Group__1__Impl_in_rule__SignedInteger__Group__145866 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_INT_in_rule__SignedInteger__Group__1__Impl45893 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Decimal__Group__0__Impl_in_rule__Decimal__Group__045926 = new BitSet(new long[]{0x0000000018000020L});
-    public static final BitSet FOLLOW_rule__Decimal__Group__1_in_rule__Decimal__Group__045929 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Decimal__Alternatives_0_in_rule__Decimal__Group__0__Impl45956 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Decimal__Group__1__Impl_in_rule__Decimal__Group__145987 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_rule__Decimal__Group__2_in_rule__Decimal__Group__145990 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_INT_in_rule__Decimal__Group__1__Impl46017 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Decimal__Group__2__Impl_in_rule__Decimal__Group__246046 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_rule__Decimal__Group__3_in_rule__Decimal__Group__246049 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_85_in_rule__Decimal__Group__2__Impl46077 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__Decimal__Group__3__Impl_in_rule__Decimal__Group__346108 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_INT_in_rule__Decimal__Group__3__Impl46135 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DotDecimal__Group__0__Impl_in_rule__DotDecimal__Group__046172 = new BitSet(new long[]{0x0000000018000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_rule__DotDecimal__Group__1_in_rule__DotDecimal__Group__046175 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DotDecimal__Alternatives_0_in_rule__DotDecimal__Group__0__Impl46202 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DotDecimal__Group__1__Impl_in_rule__DotDecimal__Group__146233 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_rule__DotDecimal__Group__2_in_rule__DotDecimal__Group__146236 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_85_in_rule__DotDecimal__Group__1__Impl46264 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DotDecimal__Group__2__Impl_in_rule__DotDecimal__Group__246295 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_INT_in_rule__DotDecimal__Group__2__Impl46322 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DecimalDot__Group__0__Impl_in_rule__DecimalDot__Group__046357 = new BitSet(new long[]{0x0000000018000020L});
-    public static final BitSet FOLLOW_rule__DecimalDot__Group__1_in_rule__DecimalDot__Group__046360 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DecimalDot__Alternatives_0_in_rule__DecimalDot__Group__0__Impl46387 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DecimalDot__Group__1__Impl_in_rule__DecimalDot__Group__146418 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_rule__DecimalDot__Group__2_in_rule__DecimalDot__Group__146421 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_INT_in_rule__DecimalDot__Group__1__Impl46448 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DecimalDot__Group__2__Impl_in_rule__DecimalDot__Group__246477 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_85_in_rule__DecimalDot__Group__2__Impl46505 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DecimalExp__Group__0__Impl_in_rule__DecimalExp__Group__046542 = new BitSet(new long[]{0x0000000018000030L,0x0000000000200000L});
-    public static final BitSet FOLLOW_rule__DecimalExp__Group__1_in_rule__DecimalExp__Group__046545 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DecimalExp__Alternatives_0_in_rule__DecimalExp__Group__0__Impl46572 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DecimalExp__Group__1__Impl_in_rule__DecimalExp__Group__146603 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_rule__DecimalExp__Group__2_in_rule__DecimalExp__Group__146606 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_INT_in_rule__DecimalExp__Group__1__Impl46633 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DecimalExp__Group__2__Impl_in_rule__DecimalExp__Group__246662 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_rule__DecimalExp__Group__3_in_rule__DecimalExp__Group__246665 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_85_in_rule__DecimalExp__Group__2__Impl46693 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DecimalExp__Group__3__Impl_in_rule__DecimalExp__Group__346724 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_rule__DecimalExp__Group__4_in_rule__DecimalExp__Group__346727 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_INT_in_rule__DecimalExp__Group__3__Impl46754 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__DecimalExp__Group__4__Impl_in_rule__DecimalExp__Group__446783 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_EXP_in_rule__DecimalExp__Group__4__Impl46810 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__FQN__Group__0__Impl_in_rule__FQN__Group__046849 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_rule__FQN__Group__1_in_rule__FQN__Group__046852 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__FQN__Group__0__Impl46879 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__FQN__Group__1__Impl_in_rule__FQN__Group__146908 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__FQN__Group_1__0_in_rule__FQN__Group__1__Impl46935 = new BitSet(new long[]{0x0000000000000002L,0x0000000000200000L});
-    public static final BitSet FOLLOW_rule__FQN__Group_1__0__Impl_in_rule__FQN__Group_1__046970 = new BitSet(new long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_rule__FQN__Group_1__1_in_rule__FQN__Group_1__046973 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_85_in_rule__FQN__Group_1__0__Impl47001 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__FQN__Group_1__1__Impl_in_rule__FQN__Group_1__147032 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__FQN__Group_1__1__Impl47059 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__UnorderedGroup_0__0_in_rule__ActorClass__UnorderedGroup_047093 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__AbstractAssignment_0_0_in_rule__ActorClass__UnorderedGroup_0__Impl47180 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__CommTypeAssignment_0_1_in_rule__ActorClass__UnorderedGroup_0__Impl47271 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__UnorderedGroup_0__Impl_in_rule__ActorClass__UnorderedGroup_0__047330 = new BitSet(new long[]{0x00000004E0000002L,0x0000000000000000L,0x0000000000000001L});
-    public static final BitSet FOLLOW_rule__ActorClass__UnorderedGroup_0__1_in_rule__ActorClass__UnorderedGroup_0__047333 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ActorClass__UnorderedGroup_0__Impl_in_rule__ActorClass__UnorderedGroup_0__147358 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleFQN_in_rule__RoomModel__NameAssignment_147390 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__RoomModel__DocuAssignment_247421 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleImport_in_rule__RoomModel__ImportsAssignment_447452 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rulePrimitiveType_in_rule__RoomModel__PrimitiveTypesAssignment_5_047483 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleEnumerationType_in_rule__RoomModel__EnumerationTypesAssignment_5_147514 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleExternalType_in_rule__RoomModel__ExternalTypesAssignment_5_247545 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDataClass_in_rule__RoomModel__DataClassesAssignment_5_347576 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleGeneralProtocolClass_in_rule__RoomModel__ProtocolClassesAssignment_5_447607 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleActorClass_in_rule__RoomModel__ActorClassesAssignment_5_547638 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSubSystemClass_in_rule__RoomModel__SubSystemClassesAssignment_5_647669 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleLogicalSystem_in_rule__RoomModel__SystemsAssignment_5_747700 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleAnnotationType_in_rule__RoomModel__AnnotationTypesAssignment_5_847731 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__VarDecl__NameAssignment_047762 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRefableType_in_rule__VarDecl__RefTypeAssignment_247793 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleFQN_in_rule__RefableType__TypeAssignment_047828 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_89_in_rule__RefableType__RefAssignment_147868 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__PrimitiveType__NameAssignment_147907 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleLiteralType_in_rule__PrimitiveType__TypeAssignment_347938 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_STRING_in_rule__PrimitiveType__TargetNameAssignment_547969 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleFQN_in_rule__PrimitiveType__CastNameAssignment_6_148000 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_STRING_in_rule__PrimitiveType__DefaultValueLiteralAssignment_848031 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__PrimitiveType__DocuAssignment_948062 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__EnumerationType__NameAssignment_148093 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__EnumerationType__DocuAssignment_248124 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleFQN_in_rule__EnumerationType__PrimitiveTypeAssignment_3_148159 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleEnumLiteral_in_rule__EnumerationType__LiteralsAssignment_5_048194 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleEnumLiteral_in_rule__EnumerationType__LiteralsAssignment_5_1_148225 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__EnumLiteral__NameAssignment_048256 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleIntLiteral_in_rule__EnumLiteral__LiteralAssignment_1_148287 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__ExternalType__NameAssignment_148318 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_STRING_in_rule__ExternalType__TargetNameAssignment_348349 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_STRING_in_rule__ExternalType__DefaultValueLiteralAssignment_4_148380 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__ExternalType__DocuAssignment_548411 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__DataClass__NameAssignment_148442 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__DataClass__DocuAssignment_248473 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleFQN_in_rule__DataClass__BaseAssignment_3_148508 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleAnnotation_in_rule__DataClass__AnnotationsAssignment_548543 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__DataClass__UserCode1Assignment_6_148574 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__DataClass__UserCode2Assignment_7_148605 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__DataClass__UserCode3Assignment_8_148636 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleStandardOperation_in_rule__DataClass__OperationsAssignment_9_048667 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleClassStructor_in_rule__DataClass__StructorsAssignment_9_148698 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleAttribute_in_rule__DataClass__AttributesAssignment_9_248729 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__Attribute__NameAssignment_148760 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_INT_in_rule__Attribute__SizeAssignment_2_148791 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRefableType_in_rule__Attribute__TypeAssignment_448822 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_STRING_in_rule__Attribute__DefaultValueLiteralAssignment_5_148853 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__Attribute__DocuAssignment_648884 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_126_in_rule__StandardOperation__OverrideAssignment_048920 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__StandardOperation__NameAssignment_248959 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleVarDecl_in_rule__StandardOperation__ArgumentsAssignment_4_048990 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleVarDecl_in_rule__StandardOperation__ArgumentsAssignment_4_1_149021 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRefableType_in_rule__StandardOperation__ReturnTypeAssignment_6_1_149052 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__StandardOperation__DocuAssignment_749083 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__StandardOperation__DetailCodeAssignment_849114 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__PortOperation__NameAssignment_149145 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleVarDecl_in_rule__PortOperation__ArgumentsAssignment_3_049176 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleVarDecl_in_rule__PortOperation__ArgumentsAssignment_3_1_149207 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRefableType_in_rule__PortOperation__ReturnTypeAssignment_5_0_1_149238 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__PortOperation__SendsMsgAssignment_5_1_149273 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__PortOperation__DocuAssignment_649308 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__PortOperation__DetailCodeAssignment_749339 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rule__ClassStructor__NameAlternatives_0_0_in_rule__ClassStructor__NameAssignment_049370 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__ClassStructor__DetailCodeAssignment_149403 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleCommunicationType_in_rule__ProtocolClass__CommTypeAssignment_049434 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__ProtocolClass__NameAssignment_249465 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__ProtocolClass__DocuAssignment_349496 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleFQN_in_rule__ProtocolClass__BaseAssignment_4_149531 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleAnnotation_in_rule__ProtocolClass__AnnotationsAssignment_649566 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__ProtocolClass__UserCode1Assignment_7_149597 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__ProtocolClass__UserCode2Assignment_8_149628 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__ProtocolClass__UserCode3Assignment_9_149659 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleMessage_in_rule__ProtocolClass__IncomingMessagesAssignment_10_249690 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleMessage_in_rule__ProtocolClass__OutgoingMessagesAssignment_11_249721 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rulePortClass_in_rule__ProtocolClass__RegularAssignment_12_249752 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rulePortClass_in_rule__ProtocolClass__ConjugatedAssignment_13_249783 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleProtocolSemantics_in_rule__ProtocolClass__SemanticsAssignment_1449814 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__CompoundProtocolClass__NameAssignment_149845 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__CompoundProtocolClass__DocuAssignment_249876 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleAnnotation_in_rule__CompoundProtocolClass__AnnotationsAssignment_449907 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSubProtocol_in_rule__CompoundProtocolClass__SubProtocolsAssignment_549938 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__SubProtocol__NameAssignment_149969 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleFQN_in_rule__SubProtocol__ProtocolAssignment_350004 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_127_in_rule__Message__PrivAssignment_050044 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__Message__NameAssignment_250083 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleVarDecl_in_rule__Message__DataAssignment_450114 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__Message__DocuAssignment_650145 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__PortClass__UserCodeAssignment_2_150176 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleMessageHandler_in_rule__PortClass__MsgHandlersAssignment_3_050207 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rulePortOperation_in_rule__PortClass__OperationsAssignment_3_150238 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleAttribute_in_rule__PortClass__AttributesAssignment_3_250269 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__InMessageHandler__MsgAssignment_250304 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__InMessageHandler__DetailCodeAssignment_350339 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__OutMessageHandler__MsgAssignment_250374 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__OutMessageHandler__DetailCodeAssignment_350409 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_128_in_rule__ActorClass__AbstractAssignment_0_050445 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleComponentCommunicationType_in_rule__ActorClass__CommTypeAssignment_0_150484 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__ActorClass__NameAssignment_250515 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__ActorClass__DocuAssignment_350546 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleFQN_in_rule__ActorClass__BaseAssignment_4_150581 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleAnnotation_in_rule__ActorClass__AnnotationsAssignment_650616 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSPP_in_rule__ActorClass__ServiceProvisionPointsAssignment_7_2_050647 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rulePort_in_rule__ActorClass__InterfacePortsAssignment_7_2_150678 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__ActorClass__StructureDocuAssignment_8_150709 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__ActorClass__UserCode1Assignment_8_3_150740 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__ActorClass__UserCode2Assignment_8_4_150771 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__ActorClass__UserCode3Assignment_8_5_150802 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleLayerConnection_in_rule__ActorClass__ConnectionsAssignment_8_6_050833 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleBinding_in_rule__ActorClass__BindingsAssignment_8_6_150864 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleServiceImplementation_in_rule__ActorClass__ServiceImplementationsAssignment_8_6_250895 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleAttribute_in_rule__ActorClass__AttributesAssignment_8_6_350926 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleActorRef_in_rule__ActorClass__ActorRefsAssignment_8_6_450957 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSAP_in_rule__ActorClass__ServiceAccessPointsAssignment_8_6_550988 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rulePort_in_rule__ActorClass__InternalPortsAssignment_8_6_651019 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleExternalPort_in_rule__ActorClass__ExternalPortsAssignment_8_6_751050 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__ActorClass__BehaviorDocuAssignment_9_151081 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleAnnotation_in_rule__ActorClass__BehaviorAnnotationsAssignment_9_351112 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleStandardOperation_in_rule__ActorClass__OperationsAssignment_9_4_051143 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleClassStructor_in_rule__ActorClass__StructorsAssignment_9_4_151174 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleStateMachine_in_rule__ActorClass__StateMachineAssignment_9_551205 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_66_in_rule__Port__ConjugatedAssignment_051241 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__Port__NameAssignment_251280 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleMULTIPLICITY_in_rule__Port__MultiplicityAssignment_351311 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleFQN_in_rule__Port__ProtocolAssignment_551346 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__Port__DocuAssignment_651381 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__ExternalPort__InterfacePortAssignment_251416 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__SAP__NameAssignment_151451 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleFQN_in_rule__SAP__ProtocolAssignment_351486 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__SPP__NameAssignment_151521 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleFQN_in_rule__SPP__ProtocolAssignment_351556 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__ServiceImplementation__SppAssignment_251595 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__LogicalSystem__NameAssignment_151630 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__LogicalSystem__DocuAssignment_251661 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleAnnotation_in_rule__LogicalSystem__AnnotationsAssignment_451692 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleLayerConnection_in_rule__LogicalSystem__ConnectionsAssignment_5_051723 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleBinding_in_rule__LogicalSystem__BindingsAssignment_5_151754 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSubSystemRef_in_rule__LogicalSystem__SubSystemsAssignment_5_251785 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__SubSystemRef__NameAssignment_151816 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleFQN_in_rule__SubSystemRef__TypeAssignment_351851 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__SubSystemRef__DocuAssignment_451886 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__SubSystemClass__NameAssignment_151917 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__SubSystemClass__DocuAssignment_251948 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleAnnotation_in_rule__SubSystemClass__AnnotationsAssignment_451979 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__SubSystemClass__UserCode1Assignment_5_152010 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__SubSystemClass__UserCode2Assignment_6_152041 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__SubSystemClass__UserCode3Assignment_7_152072 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleActorInstanceMapping_in_rule__SubSystemClass__ActorInstanceMappingsAssignment_8_052103 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleLogicalThread_in_rule__SubSystemClass__ThreadsAssignment_8_152134 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleLayerConnection_in_rule__SubSystemClass__ConnectionsAssignment_8_252165 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleBinding_in_rule__SubSystemClass__BindingsAssignment_8_352196 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleActorRef_in_rule__SubSystemClass__ActorRefsAssignment_8_452227 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSPP_in_rule__SubSystemClass__ServiceProvisionPointsAssignment_8_552258 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rulePort_in_rule__SubSystemClass__RelayPortsAssignment_8_652289 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__LogicalThread__NameAssignment_152320 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRefPath_in_rule__ActorInstanceMapping__PathAssignment_152351 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__ActorInstanceMapping__ThreadAssignment_352386 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleActorInstanceMapping_in_rule__ActorInstanceMapping__ActorInstanceMappingsAssignment_4_152421 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRefSegment_in_rule__RefPath__RefsAssignment_052452 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRefSegment_in_rule__RefPath__RefsAssignment_1_152483 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__RefSegment__RefAssignment_052514 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_INT_in_rule__RefSegment__IdxAssignment_1_152545 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleBindingEndPoint_in_rule__Binding__Endpoint1Assignment_152576 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleBindingEndPoint_in_rule__Binding__Endpoint2Assignment_352607 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__BindingEndPoint__ActorRefAssignment_0_052642 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__BindingEndPoint__PortAssignment_152681 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__BindingEndPoint__SubAssignment_2_152720 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSAPoint_in_rule__LayerConnection__FromAssignment_152755 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSPPoint_in_rule__LayerConnection__ToAssignment_352786 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__RefSAPoint__RefAssignment_152821 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__RelaySAPoint__RelayAssignment_152860 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__SPPoint__RefAssignment_052899 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__SPPoint__ServiceAssignment_252938 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleReferenceType_in_rule__ActorRef__RefTypeAssignment_052973 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__ActorRef__NameAssignment_253004 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleMULTIPLICITY_in_rule__ActorRef__MultiplicityAssignment_353035 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleFQN_in_rule__ActorRef__TypeAssignment_553070 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__ActorRef__DocuAssignment_653105 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleState_in_rule__StateGraph__StatesAssignment_2_053137 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTrPoint_in_rule__StateGraph__TrPointsAssignment_2_153168 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleChoicePoint_in_rule__StateGraph__ChPointsAssignment_2_253199 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTransition_in_rule__StateGraph__TransitionsAssignment_2_353230 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRefinedTransition_in_rule__StateGraph__RefinedTransitionsAssignment_2_453261 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleState_in_rule__StateMachine__StatesAssignment_3_053292 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTrPoint_in_rule__StateMachine__TrPointsAssignment_3_153323 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleChoicePoint_in_rule__StateMachine__ChPointsAssignment_3_253354 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTransition_in_rule__StateMachine__TransitionsAssignment_3_353385 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRefinedTransition_in_rule__StateMachine__RefinedTransitionsAssignment_3_453416 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__SimpleState__NameAssignment_153447 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__SimpleState__DocuAssignment_253478 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__SimpleState__EntryCodeAssignment_3_1_153509 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__SimpleState__ExitCodeAssignment_3_2_153540 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__SimpleState__DoCodeAssignment_3_3_153571 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleStateGraph_in_rule__SimpleState__SubgraphAssignment_3_4_153602 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleFQN_in_rule__RefinedState__TargetAssignment_153637 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__RefinedState__DocuAssignment_253672 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__RefinedState__EntryCodeAssignment_4_153703 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__RefinedState__ExitCodeAssignment_5_153734 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__RefinedState__DoCodeAssignment_6_153765 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleStateGraph_in_rule__RefinedState__SubgraphAssignment_7_153796 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_rule__DetailCode__UsedAssignment_153832 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_STRING_in_rule__DetailCode__LinesAssignment_253871 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_129_in_rule__TransitionPoint__HandlerAssignment_053907 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__TransitionPoint__NameAssignment_253946 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__EntryPoint__NameAssignment_153977 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__ExitPoint__NameAssignment_154008 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__ChoicePoint__NameAssignment_154039 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__ChoicePoint__DocuAssignment_254070 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__InitialTransition__NameAssignment_154101 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTransitionTerminal_in_rule__InitialTransition__ToAssignment_554132 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__InitialTransition__DocuAssignment_654163 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__InitialTransition__ActionAssignment_7_1_154194 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__ContinuationTransition__NameAssignment_154225 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTransitionTerminal_in_rule__ContinuationTransition__FromAssignment_354256 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTransitionTerminal_in_rule__ContinuationTransition__ToAssignment_554287 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__ContinuationTransition__DocuAssignment_654318 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__ContinuationTransition__ActionAssignment_7_1_154349 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__TriggeredTransition__NameAssignment_154380 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTransitionTerminal_in_rule__TriggeredTransition__FromAssignment_354411 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTransitionTerminal_in_rule__TriggeredTransition__ToAssignment_554442 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__TriggeredTransition__DocuAssignment_654473 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTrigger_in_rule__TriggeredTransition__TriggersAssignment_1054504 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTrigger_in_rule__TriggeredTransition__TriggersAssignment_11_154535 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__TriggeredTransition__ActionAssignment_13_154566 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__GuardedTransition__NameAssignment_154597 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTransitionTerminal_in_rule__GuardedTransition__FromAssignment_354628 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTransitionTerminal_in_rule__GuardedTransition__ToAssignment_554659 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__GuardedTransition__DocuAssignment_654690 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__GuardedTransition__GuardAssignment_954721 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__GuardedTransition__ActionAssignment_10_154752 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__CPBranchTransition__NameAssignment_154783 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTransitionTerminal_in_rule__CPBranchTransition__FromAssignment_354814 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTransitionTerminal_in_rule__CPBranchTransition__ToAssignment_554845 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__CPBranchTransition__DocuAssignment_654876 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__CPBranchTransition__ConditionAssignment_954907 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__CPBranchTransition__ActionAssignment_10_154938 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleFQN_in_rule__RefinedTransition__TargetAssignment_154973 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__RefinedTransition__DocuAssignment_255008 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__RefinedTransition__ActionAssignment_555039 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__StateTerminal__StateAssignment55074 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__TrPointTerminal__TrPointAssignment_155113 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__SubStateTrPointTerminal__TrPointAssignment_055152 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__SubStateTrPointTerminal__StateAssignment_255191 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__ChoicepointTerminal__CpAssignment_155230 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleMessageFromIf_in_rule__Trigger__MsgFromIfPairsAssignment_155265 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleMessageFromIf_in_rule__Trigger__MsgFromIfPairsAssignment_2_155296 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleGuard_in_rule__Trigger__GuardAssignment_355327 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__MessageFromIf__MessageAssignment_055362 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__MessageFromIf__FromAssignment_255401 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rule__Guard__GuardAssignment_155436 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSemanticsRule_in_rule__ProtocolSemantics__RulesAssignment_355467 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__InSemanticsRule__MsgAssignment_255502 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSemanticsRule_in_rule__InSemanticsRule__FollowUpsAssignment_3_1_055537 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSemanticsRule_in_rule__InSemanticsRule__FollowUpsAssignment_3_1_1_155568 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSemanticsRule_in_rule__InSemanticsRule__FollowUpsAssignment_3_1_1_2_155599 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__OutSemanticsRule__MsgAssignment_255634 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSemanticsRule_in_rule__OutSemanticsRule__FollowUpsAssignment_3_1_055669 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSemanticsRule_in_rule__OutSemanticsRule__FollowUpsAssignment_3_1_1_155700 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSemanticsRule_in_rule__OutSemanticsRule__FollowUpsAssignment_3_1_1_2_155731 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleFQN_in_rule__Annotation__TypeAssignment_155766 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleKeyValue_in_rule__Annotation__AttributesAssignment_2_155801 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleKeyValue_in_rule__Annotation__AttributesAssignment_2_2_155832 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__KeyValue__KeyAssignment_055863 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleLiteral_in_rule__KeyValue__ValueAssignment_255894 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__AnnotationType__NameAssignment_155925 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rule__AnnotationType__DocuAssignment_255956 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleAnnotationTargetType_in_rule__AnnotationType__TargetsAssignment_6_055987 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleAnnotationTargetType_in_rule__AnnotationType__TargetsAssignment_6_1_156018 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleAnnotationTargetType_in_rule__AnnotationType__TargetsAssignment_6_1_2_156049 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleAnnotationAttribute_in_rule__AnnotationType__AttributesAssignment_756080 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_33_in_rule__SimpleAnnotationAttribute__OptionalAssignment_0_056116 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__SimpleAnnotationAttribute__NameAssignment_256155 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleLiteralType_in_rule__SimpleAnnotationAttribute__TypeAssignment_456186 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_33_in_rule__EnumAnnotationAttribute__OptionalAssignment_0_056222 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_rule__EnumAnnotationAttribute__NameAssignment_256261 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_STRING_in_rule__EnumAnnotationAttribute__ValuesAssignment_556292 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_STRING_in_rule__EnumAnnotationAttribute__ValuesAssignment_6_156323 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleImportedFQN_in_rule__Import__ImportedNamespaceAssignment_1_0_056354 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_STRING_in_rule__Import__ImportURIAssignment_256385 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_STRING_in_rule__Documentation__LinesAssignment_256416 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_130_in_rule__BooleanLiteral__IsTrueAssignment_1_156454 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleReal_in_rule__RealLiteral__ValueAssignment_156493 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleInteger_in_rule__IntLiteral__ValueAssignment_156524 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_STRING_in_rule__StringLiteral__ValueAssignment_156555 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Attribute__Group__5__Impl_in_rule__Attribute__Group__514897 = new BitSet(new long[]{0x0408000000000080L});
+    public static final BitSet FOLLOW_rule__Attribute__Group__6_in_rule__Attribute__Group__514900 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Attribute__Group_5__0_in_rule__Attribute__Group__5__Impl14927 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Attribute__Group__6__Impl_in_rule__Attribute__Group__614958 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Attribute__DocuAssignment_6_in_rule__Attribute__Group__6__Impl14985 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Attribute__Group_2__0__Impl_in_rule__Attribute__Group_2__015030 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_rule__Attribute__Group_2__1_in_rule__Attribute__Group_2__015033 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_58_in_rule__Attribute__Group_2__0__Impl15061 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Attribute__Group_2__1__Impl_in_rule__Attribute__Group_2__115092 = new BitSet(new long[]{0x0800000000000000L});
+    public static final BitSet FOLLOW_rule__Attribute__Group_2__2_in_rule__Attribute__Group_2__115095 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Attribute__SizeAssignment_2_1_in_rule__Attribute__Group_2__1__Impl15122 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Attribute__Group_2__2__Impl_in_rule__Attribute__Group_2__215152 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_59_in_rule__Attribute__Group_2__2__Impl15180 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Attribute__Group_5__0__Impl_in_rule__Attribute__Group_5__015217 = new BitSet(new long[]{0x0000000000000100L});
+    public static final BitSet FOLLOW_rule__Attribute__Group_5__1_in_rule__Attribute__Group_5__015220 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_51_in_rule__Attribute__Group_5__0__Impl15248 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Attribute__Group_5__1__Impl_in_rule__Attribute__Group_5__115279 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Attribute__DefaultValueLiteralAssignment_5_1_in_rule__Attribute__Group_5__1__Impl15306 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group__0__Impl_in_rule__StandardOperation__Group__015340 = new BitSet(new long[]{0x1000000000000000L,0x4000000000000000L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group__1_in_rule__StandardOperation__Group__015343 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__OverrideAssignment_0_in_rule__StandardOperation__Group__0__Impl15370 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group__1__Impl_in_rule__StandardOperation__Group__115401 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group__2_in_rule__StandardOperation__Group__115404 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_60_in_rule__StandardOperation__Group__1__Impl15432 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group__2__Impl_in_rule__StandardOperation__Group__215463 = new BitSet(new long[]{0x0000400000000000L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group__3_in_rule__StandardOperation__Group__215466 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__NameAssignment_2_in_rule__StandardOperation__Group__2__Impl15493 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group__3__Impl_in_rule__StandardOperation__Group__315523 = new BitSet(new long[]{0x0000800000000080L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group__4_in_rule__StandardOperation__Group__315526 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_46_in_rule__StandardOperation__Group__3__Impl15554 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group__4__Impl_in_rule__StandardOperation__Group__415585 = new BitSet(new long[]{0x0000800000000080L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group__5_in_rule__StandardOperation__Group__415588 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group_4__0_in_rule__StandardOperation__Group__4__Impl15615 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group__5__Impl_in_rule__StandardOperation__Group__515646 = new BitSet(new long[]{0x0400050000000000L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group__6_in_rule__StandardOperation__Group__515649 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_47_in_rule__StandardOperation__Group__5__Impl15677 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group__6__Impl_in_rule__StandardOperation__Group__615708 = new BitSet(new long[]{0x0400050000000000L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group__7_in_rule__StandardOperation__Group__615711 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group_6__0_in_rule__StandardOperation__Group__6__Impl15738 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group__7__Impl_in_rule__StandardOperation__Group__715769 = new BitSet(new long[]{0x0400050000000000L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group__8_in_rule__StandardOperation__Group__715772 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__DocuAssignment_7_in_rule__StandardOperation__Group__7__Impl15799 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group__8__Impl_in_rule__StandardOperation__Group__815830 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__DetailCodeAssignment_8_in_rule__StandardOperation__Group__8__Impl15857 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group_4__0__Impl_in_rule__StandardOperation__Group_4__015905 = new BitSet(new long[]{0x0004000000000000L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group_4__1_in_rule__StandardOperation__Group_4__015908 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__ArgumentsAssignment_4_0_in_rule__StandardOperation__Group_4__0__Impl15935 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group_4__1__Impl_in_rule__StandardOperation__Group_4__115965 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group_4_1__0_in_rule__StandardOperation__Group_4__1__Impl15992 = new BitSet(new long[]{0x0004000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group_4_1__0__Impl_in_rule__StandardOperation__Group_4_1__016027 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group_4_1__1_in_rule__StandardOperation__Group_4_1__016030 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_50_in_rule__StandardOperation__Group_4_1__0__Impl16058 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group_4_1__1__Impl_in_rule__StandardOperation__Group_4_1__116089 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__ArgumentsAssignment_4_1_1_in_rule__StandardOperation__Group_4_1__1__Impl16116 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group_6__0__Impl_in_rule__StandardOperation__Group_6__016150 = new BitSet(new long[]{0x0000000000002080L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group_6__1_in_rule__StandardOperation__Group_6__016153 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_42_in_rule__StandardOperation__Group_6__0__Impl16181 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Group_6__1__Impl_in_rule__StandardOperation__Group_6__116212 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StandardOperation__Alternatives_6_1_in_rule__StandardOperation__Group_6__1__Impl16239 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group__0__Impl_in_rule__PortOperation__Group__016273 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group__1_in_rule__PortOperation__Group__016276 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_60_in_rule__PortOperation__Group__0__Impl16304 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group__1__Impl_in_rule__PortOperation__Group__116335 = new BitSet(new long[]{0x0000400000000000L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group__2_in_rule__PortOperation__Group__116338 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__NameAssignment_1_in_rule__PortOperation__Group__1__Impl16365 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group__2__Impl_in_rule__PortOperation__Group__216395 = new BitSet(new long[]{0x0000800000000080L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group__3_in_rule__PortOperation__Group__216398 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_46_in_rule__PortOperation__Group__2__Impl16426 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group__3__Impl_in_rule__PortOperation__Group__316457 = new BitSet(new long[]{0x0000800000000080L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group__4_in_rule__PortOperation__Group__316460 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group_3__0_in_rule__PortOperation__Group__3__Impl16487 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group__4__Impl_in_rule__PortOperation__Group__416518 = new BitSet(new long[]{0x2400050000000000L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group__5_in_rule__PortOperation__Group__416521 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_47_in_rule__PortOperation__Group__4__Impl16549 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group__5__Impl_in_rule__PortOperation__Group__516580 = new BitSet(new long[]{0x2400050000000000L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group__6_in_rule__PortOperation__Group__516583 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__Alternatives_5_in_rule__PortOperation__Group__5__Impl16610 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group__6__Impl_in_rule__PortOperation__Group__616641 = new BitSet(new long[]{0x2400050000000000L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group__7_in_rule__PortOperation__Group__616644 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__DocuAssignment_6_in_rule__PortOperation__Group__6__Impl16671 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group__7__Impl_in_rule__PortOperation__Group__716702 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__DetailCodeAssignment_7_in_rule__PortOperation__Group__7__Impl16729 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group_3__0__Impl_in_rule__PortOperation__Group_3__016775 = new BitSet(new long[]{0x0004000000000000L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group_3__1_in_rule__PortOperation__Group_3__016778 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__ArgumentsAssignment_3_0_in_rule__PortOperation__Group_3__0__Impl16805 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group_3__1__Impl_in_rule__PortOperation__Group_3__116835 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group_3_1__0_in_rule__PortOperation__Group_3__1__Impl16862 = new BitSet(new long[]{0x0004000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group_3_1__0__Impl_in_rule__PortOperation__Group_3_1__016897 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group_3_1__1_in_rule__PortOperation__Group_3_1__016900 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_50_in_rule__PortOperation__Group_3_1__0__Impl16928 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group_3_1__1__Impl_in_rule__PortOperation__Group_3_1__116959 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__ArgumentsAssignment_3_1_1_in_rule__PortOperation__Group_3_1__1__Impl16986 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group_5_0__0__Impl_in_rule__PortOperation__Group_5_0__017020 = new BitSet(new long[]{0x0000000000002080L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group_5_0__1_in_rule__PortOperation__Group_5_0__017023 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_42_in_rule__PortOperation__Group_5_0__0__Impl17051 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group_5_0__1__Impl_in_rule__PortOperation__Group_5_0__117082 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__Alternatives_5_0_1_in_rule__PortOperation__Group_5_0__1__Impl17109 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group_5_1__0__Impl_in_rule__PortOperation__Group_5_1__017143 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group_5_1__1_in_rule__PortOperation__Group_5_1__017146 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_61_in_rule__PortOperation__Group_5_1__0__Impl17174 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__Group_5_1__1__Impl_in_rule__PortOperation__Group_5_1__117205 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortOperation__SendsMsgAssignment_5_1_1_in_rule__PortOperation__Group_5_1__1__Impl17232 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ClassStructor__Group__0__Impl_in_rule__ClassStructor__Group__017266 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__ClassStructor__Group__1_in_rule__ClassStructor__Group__017269 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ClassStructor__NameAssignment_0_in_rule__ClassStructor__Group__0__Impl17296 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ClassStructor__Group__1__Impl_in_rule__ClassStructor__Group__117326 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ClassStructor__DetailCodeAssignment_1_in_rule__ClassStructor__Group__1__Impl17353 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__0__Impl_in_rule__ProtocolClass__Group__017387 = new BitSet(new long[]{0x00000000E0100000L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__1_in_rule__ProtocolClass__Group__017390 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__CommTypeAssignment_0_in_rule__ProtocolClass__Group__0__Impl17417 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__1__Impl_in_rule__ProtocolClass__Group__117448 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__2_in_rule__ProtocolClass__Group__117451 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_20_in_rule__ProtocolClass__Group__1__Impl17479 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__2__Impl_in_rule__ProtocolClass__Group__217510 = new BitSet(new long[]{0x0420010000000000L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__3_in_rule__ProtocolClass__Group__217513 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__NameAssignment_2_in_rule__ProtocolClass__Group__2__Impl17540 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__3__Impl_in_rule__ProtocolClass__Group__317570 = new BitSet(new long[]{0x0420010000000000L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__4_in_rule__ProtocolClass__Group__317573 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__DocuAssignment_3_in_rule__ProtocolClass__Group__3__Impl17600 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__4__Impl_in_rule__ProtocolClass__Group__417631 = new BitSet(new long[]{0x0420010000000000L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__5_in_rule__ProtocolClass__Group__417634 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_4__0_in_rule__ProtocolClass__Group__4__Impl17661 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__5__Impl_in_rule__ProtocolClass__Group__517692 = new BitSet(new long[]{0xC1C0020000000000L,0x0090000000000005L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__6_in_rule__ProtocolClass__Group__517695 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__ProtocolClass__Group__5__Impl17723 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__6__Impl_in_rule__ProtocolClass__Group__617754 = new BitSet(new long[]{0xC1C0020000000000L,0x0090000000000005L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__7_in_rule__ProtocolClass__Group__617757 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__AnnotationsAssignment_6_in_rule__ProtocolClass__Group__6__Impl17784 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__7__Impl_in_rule__ProtocolClass__Group__717815 = new BitSet(new long[]{0xC1C0020000000000L,0x0090000000000005L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__8_in_rule__ProtocolClass__Group__717818 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_7__0_in_rule__ProtocolClass__Group__7__Impl17845 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__8__Impl_in_rule__ProtocolClass__Group__817876 = new BitSet(new long[]{0xC1C0020000000000L,0x0090000000000005L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__9_in_rule__ProtocolClass__Group__817879 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_8__0_in_rule__ProtocolClass__Group__8__Impl17906 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__9__Impl_in_rule__ProtocolClass__Group__917937 = new BitSet(new long[]{0xC1C0020000000000L,0x0090000000000005L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__10_in_rule__ProtocolClass__Group__917940 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_9__0_in_rule__ProtocolClass__Group__9__Impl17967 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__10__Impl_in_rule__ProtocolClass__Group__1017998 = new BitSet(new long[]{0xC1C0020000000000L,0x0090000000000005L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__11_in_rule__ProtocolClass__Group__1018001 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_10__0_in_rule__ProtocolClass__Group__10__Impl18028 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__11__Impl_in_rule__ProtocolClass__Group__1118059 = new BitSet(new long[]{0xC1C0020000000000L,0x0090000000000005L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__12_in_rule__ProtocolClass__Group__1118062 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_11__0_in_rule__ProtocolClass__Group__11__Impl18089 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__12__Impl_in_rule__ProtocolClass__Group__1218120 = new BitSet(new long[]{0xC1C0020000000000L,0x0090000000000005L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__13_in_rule__ProtocolClass__Group__1218123 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_12__0_in_rule__ProtocolClass__Group__12__Impl18150 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__13__Impl_in_rule__ProtocolClass__Group__1318181 = new BitSet(new long[]{0xC1C0020000000000L,0x0090000000000005L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__14_in_rule__ProtocolClass__Group__1318184 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_13__0_in_rule__ProtocolClass__Group__13__Impl18211 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__14__Impl_in_rule__ProtocolClass__Group__1418242 = new BitSet(new long[]{0xC1C0020000000000L,0x0090000000000005L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__15_in_rule__ProtocolClass__Group__1418245 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__SemanticsAssignment_14_in_rule__ProtocolClass__Group__14__Impl18272 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group__15__Impl_in_rule__ProtocolClass__Group__1518303 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__ProtocolClass__Group__15__Impl18331 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_4__0__Impl_in_rule__ProtocolClass__Group_4__018394 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_4__1_in_rule__ProtocolClass__Group_4__018397 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_53_in_rule__ProtocolClass__Group_4__0__Impl18425 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_4__1__Impl_in_rule__ProtocolClass__Group_4__118456 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__BaseAssignment_4_1_in_rule__ProtocolClass__Group_4__1__Impl18483 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_7__0__Impl_in_rule__ProtocolClass__Group_7__018517 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_7__1_in_rule__ProtocolClass__Group_7__018520 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_54_in_rule__ProtocolClass__Group_7__0__Impl18548 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_7__1__Impl_in_rule__ProtocolClass__Group_7__118579 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__UserCode1Assignment_7_1_in_rule__ProtocolClass__Group_7__1__Impl18606 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_8__0__Impl_in_rule__ProtocolClass__Group_8__018640 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_8__1_in_rule__ProtocolClass__Group_8__018643 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_55_in_rule__ProtocolClass__Group_8__0__Impl18671 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_8__1__Impl_in_rule__ProtocolClass__Group_8__118702 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__UserCode2Assignment_8_1_in_rule__ProtocolClass__Group_8__1__Impl18729 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_9__0__Impl_in_rule__ProtocolClass__Group_9__018763 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_9__1_in_rule__ProtocolClass__Group_9__018766 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_56_in_rule__ProtocolClass__Group_9__0__Impl18794 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_9__1__Impl_in_rule__ProtocolClass__Group_9__118825 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__UserCode3Assignment_9_1_in_rule__ProtocolClass__Group_9__1__Impl18852 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_10__0__Impl_in_rule__ProtocolClass__Group_10__018886 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_10__1_in_rule__ProtocolClass__Group_10__018889 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_62_in_rule__ProtocolClass__Group_10__0__Impl18917 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_10__1__Impl_in_rule__ProtocolClass__Group_10__118948 = new BitSet(new long[]{0x0000020000000000L,0x8000000000000010L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_10__2_in_rule__ProtocolClass__Group_10__118951 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__ProtocolClass__Group_10__1__Impl18979 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_10__2__Impl_in_rule__ProtocolClass__Group_10__219010 = new BitSet(new long[]{0x0000020000000000L,0x8000000000000010L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_10__3_in_rule__ProtocolClass__Group_10__219013 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__IncomingMessagesAssignment_10_2_in_rule__ProtocolClass__Group_10__2__Impl19040 = new BitSet(new long[]{0x0000000000000002L,0x8000000000000010L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_10__3__Impl_in_rule__ProtocolClass__Group_10__319071 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__ProtocolClass__Group_10__3__Impl19099 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_11__0__Impl_in_rule__ProtocolClass__Group_11__019138 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_11__1_in_rule__ProtocolClass__Group_11__019141 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_63_in_rule__ProtocolClass__Group_11__0__Impl19169 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_11__1__Impl_in_rule__ProtocolClass__Group_11__119200 = new BitSet(new long[]{0x0000020000000000L,0x8000000000000010L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_11__2_in_rule__ProtocolClass__Group_11__119203 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__ProtocolClass__Group_11__1__Impl19231 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_11__2__Impl_in_rule__ProtocolClass__Group_11__219262 = new BitSet(new long[]{0x0000020000000000L,0x8000000000000010L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_11__3_in_rule__ProtocolClass__Group_11__219265 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__OutgoingMessagesAssignment_11_2_in_rule__ProtocolClass__Group_11__2__Impl19292 = new BitSet(new long[]{0x0000000000000002L,0x8000000000000010L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_11__3__Impl_in_rule__ProtocolClass__Group_11__319323 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__ProtocolClass__Group_11__3__Impl19351 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_12__0__Impl_in_rule__ProtocolClass__Group_12__019390 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_12__1_in_rule__ProtocolClass__Group_12__019393 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_64_in_rule__ProtocolClass__Group_12__0__Impl19421 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_12__1__Impl_in_rule__ProtocolClass__Group_12__119452 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_12__2_in_rule__ProtocolClass__Group_12__119455 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_65_in_rule__ProtocolClass__Group_12__1__Impl19483 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_12__2__Impl_in_rule__ProtocolClass__Group_12__219514 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__RegularAssignment_12_2_in_rule__ProtocolClass__Group_12__2__Impl19541 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_13__0__Impl_in_rule__ProtocolClass__Group_13__019577 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_13__1_in_rule__ProtocolClass__Group_13__019580 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_66_in_rule__ProtocolClass__Group_13__0__Impl19608 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_13__1__Impl_in_rule__ProtocolClass__Group_13__119639 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_13__2_in_rule__ProtocolClass__Group_13__119642 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_65_in_rule__ProtocolClass__Group_13__1__Impl19670 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__Group_13__2__Impl_in_rule__ProtocolClass__Group_13__219701 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolClass__ConjugatedAssignment_13_2_in_rule__ProtocolClass__Group_13__2__Impl19728 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__0__Impl_in_rule__CompoundProtocolClass__Group__019764 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__1_in_rule__CompoundProtocolClass__Group__019767 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_21_in_rule__CompoundProtocolClass__Group__0__Impl19795 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__1__Impl_in_rule__CompoundProtocolClass__Group__119826 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__2_in_rule__CompoundProtocolClass__Group__119829 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CompoundProtocolClass__NameAssignment_1_in_rule__CompoundProtocolClass__Group__1__Impl19856 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__2__Impl_in_rule__CompoundProtocolClass__Group__219886 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__3_in_rule__CompoundProtocolClass__Group__219889 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CompoundProtocolClass__DocuAssignment_2_in_rule__CompoundProtocolClass__Group__2__Impl19916 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__3__Impl_in_rule__CompoundProtocolClass__Group__319947 = new BitSet(new long[]{0x0000020000000000L,0x0080000000000008L});
+    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__4_in_rule__CompoundProtocolClass__Group__319950 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__CompoundProtocolClass__Group__3__Impl19978 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__4__Impl_in_rule__CompoundProtocolClass__Group__420009 = new BitSet(new long[]{0x0000020000000000L,0x0080000000000008L});
+    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__5_in_rule__CompoundProtocolClass__Group__420012 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CompoundProtocolClass__AnnotationsAssignment_4_in_rule__CompoundProtocolClass__Group__4__Impl20039 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L});
+    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__5__Impl_in_rule__CompoundProtocolClass__Group__520070 = new BitSet(new long[]{0x0000020000000000L,0x0080000000000008L});
+    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__6_in_rule__CompoundProtocolClass__Group__520073 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CompoundProtocolClass__SubProtocolsAssignment_5_in_rule__CompoundProtocolClass__Group__5__Impl20100 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000008L});
+    public static final BitSet FOLLOW_rule__CompoundProtocolClass__Group__6__Impl_in_rule__CompoundProtocolClass__Group__620131 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__CompoundProtocolClass__Group__6__Impl20159 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubProtocol__Group__0__Impl_in_rule__SubProtocol__Group__020204 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__SubProtocol__Group__1_in_rule__SubProtocol__Group__020207 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_67_in_rule__SubProtocol__Group__0__Impl20235 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubProtocol__Group__1__Impl_in_rule__SubProtocol__Group__120266 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_rule__SubProtocol__Group__2_in_rule__SubProtocol__Group__120269 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubProtocol__NameAssignment_1_in_rule__SubProtocol__Group__1__Impl20296 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubProtocol__Group__2__Impl_in_rule__SubProtocol__Group__220326 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__SubProtocol__Group__3_in_rule__SubProtocol__Group__220329 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_42_in_rule__SubProtocol__Group__2__Impl20357 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubProtocol__Group__3__Impl_in_rule__SubProtocol__Group__320388 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubProtocol__ProtocolAssignment_3_in_rule__SubProtocol__Group__3__Impl20415 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Message__Group__0__Impl_in_rule__Message__Group__020453 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000010L});
+    public static final BitSet FOLLOW_rule__Message__Group__1_in_rule__Message__Group__020456 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Message__PrivAssignment_0_in_rule__Message__Group__0__Impl20483 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Message__Group__1__Impl_in_rule__Message__Group__120514 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__Message__Group__2_in_rule__Message__Group__120517 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_68_in_rule__Message__Group__1__Impl20545 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Message__Group__2__Impl_in_rule__Message__Group__220576 = new BitSet(new long[]{0x0000400000000000L});
+    public static final BitSet FOLLOW_rule__Message__Group__3_in_rule__Message__Group__220579 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Message__NameAssignment_2_in_rule__Message__Group__2__Impl20606 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Message__Group__3__Impl_in_rule__Message__Group__320636 = new BitSet(new long[]{0x0000800000000080L});
+    public static final BitSet FOLLOW_rule__Message__Group__4_in_rule__Message__Group__320639 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_46_in_rule__Message__Group__3__Impl20667 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Message__Group__4__Impl_in_rule__Message__Group__420698 = new BitSet(new long[]{0x0000800000000080L});
+    public static final BitSet FOLLOW_rule__Message__Group__5_in_rule__Message__Group__420701 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Message__DataAssignment_4_in_rule__Message__Group__4__Impl20728 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Message__Group__5__Impl_in_rule__Message__Group__520759 = new BitSet(new long[]{0x0400000000000000L});
+    public static final BitSet FOLLOW_rule__Message__Group__6_in_rule__Message__Group__520762 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_47_in_rule__Message__Group__5__Impl20790 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Message__Group__6__Impl_in_rule__Message__Group__620821 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Message__DocuAssignment_6_in_rule__Message__Group__6__Impl20848 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortClass__Group__0__Impl_in_rule__PortClass__Group__020893 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__PortClass__Group__1_in_rule__PortClass__Group__020896 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortClass__Group__1__Impl_in_rule__PortClass__Group__120954 = new BitSet(new long[]{0x120002000000C000L,0x4000000000000060L});
+    public static final BitSet FOLLOW_rule__PortClass__Group__2_in_rule__PortClass__Group__120957 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__PortClass__Group__1__Impl20985 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortClass__Group__2__Impl_in_rule__PortClass__Group__221016 = new BitSet(new long[]{0x120002000000C000L,0x4000000000000060L});
+    public static final BitSet FOLLOW_rule__PortClass__Group__3_in_rule__PortClass__Group__221019 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortClass__Group_2__0_in_rule__PortClass__Group__2__Impl21046 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortClass__Group__3__Impl_in_rule__PortClass__Group__321077 = new BitSet(new long[]{0x120002000000C000L,0x4000000000000060L});
+    public static final BitSet FOLLOW_rule__PortClass__Group__4_in_rule__PortClass__Group__321080 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortClass__Alternatives_3_in_rule__PortClass__Group__3__Impl21107 = new BitSet(new long[]{0x120000000000C002L,0x4000000000000040L});
+    public static final BitSet FOLLOW_rule__PortClass__Group__4__Impl_in_rule__PortClass__Group__421138 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__PortClass__Group__4__Impl21166 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortClass__Group_2__0__Impl_in_rule__PortClass__Group_2__021207 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__PortClass__Group_2__1_in_rule__PortClass__Group_2__021210 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_69_in_rule__PortClass__Group_2__0__Impl21238 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortClass__Group_2__1__Impl_in_rule__PortClass__Group_2__121269 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__PortClass__UserCodeAssignment_2_1_in_rule__PortClass__Group_2__1__Impl21296 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InMessageHandler__Group__0__Impl_in_rule__InMessageHandler__Group__021330 = new BitSet(new long[]{0x4000000000000000L});
+    public static final BitSet FOLLOW_rule__InMessageHandler__Group__1_in_rule__InMessageHandler__Group__021333 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_70_in_rule__InMessageHandler__Group__0__Impl21361 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InMessageHandler__Group__1__Impl_in_rule__InMessageHandler__Group__121392 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__InMessageHandler__Group__2_in_rule__InMessageHandler__Group__121395 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_62_in_rule__InMessageHandler__Group__1__Impl21423 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InMessageHandler__Group__2__Impl_in_rule__InMessageHandler__Group__221454 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__InMessageHandler__Group__3_in_rule__InMessageHandler__Group__221457 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InMessageHandler__MsgAssignment_2_in_rule__InMessageHandler__Group__2__Impl21484 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InMessageHandler__Group__3__Impl_in_rule__InMessageHandler__Group__321514 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InMessageHandler__DetailCodeAssignment_3_in_rule__InMessageHandler__Group__3__Impl21541 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OutMessageHandler__Group__0__Impl_in_rule__OutMessageHandler__Group__021579 = new BitSet(new long[]{0x8000000000000000L});
+    public static final BitSet FOLLOW_rule__OutMessageHandler__Group__1_in_rule__OutMessageHandler__Group__021582 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_70_in_rule__OutMessageHandler__Group__0__Impl21610 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OutMessageHandler__Group__1__Impl_in_rule__OutMessageHandler__Group__121641 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__OutMessageHandler__Group__2_in_rule__OutMessageHandler__Group__121644 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_63_in_rule__OutMessageHandler__Group__1__Impl21672 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OutMessageHandler__Group__2__Impl_in_rule__OutMessageHandler__Group__221703 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__OutMessageHandler__Group__3_in_rule__OutMessageHandler__Group__221706 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OutMessageHandler__MsgAssignment_2_in_rule__OutMessageHandler__Group__2__Impl21733 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OutMessageHandler__Group__3__Impl_in_rule__OutMessageHandler__Group__321763 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OutMessageHandler__DetailCodeAssignment_3_in_rule__OutMessageHandler__Group__3__Impl21790 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group__0__Impl_in_rule__ActorClass__Group__021828 = new BitSet(new long[]{0x0000000000040000L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group__1_in_rule__ActorClass__Group__021831 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__UnorderedGroup_0_in_rule__ActorClass__Group__0__Impl21858 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group__1__Impl_in_rule__ActorClass__Group__121888 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group__2_in_rule__ActorClass__Group__121891 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_18_in_rule__ActorClass__Group__1__Impl21919 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group__2__Impl_in_rule__ActorClass__Group__221950 = new BitSet(new long[]{0x0420010000000000L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group__3_in_rule__ActorClass__Group__221953 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__NameAssignment_2_in_rule__ActorClass__Group__2__Impl21980 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group__3__Impl_in_rule__ActorClass__Group__322010 = new BitSet(new long[]{0x0420010000000000L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group__4_in_rule__ActorClass__Group__322013 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__DocuAssignment_3_in_rule__ActorClass__Group__3__Impl22040 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group__4__Impl_in_rule__ActorClass__Group__422071 = new BitSet(new long[]{0x0420010000000000L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group__5_in_rule__ActorClass__Group__422074 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_4__0_in_rule__ActorClass__Group__4__Impl22101 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group__5__Impl_in_rule__ActorClass__Group__522132 = new BitSet(new long[]{0x0000020000000000L,0x0080000000000380L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group__6_in_rule__ActorClass__Group__522135 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__ActorClass__Group__5__Impl22163 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group__6__Impl_in_rule__ActorClass__Group__622194 = new BitSet(new long[]{0x0000020000000000L,0x0080000000000380L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group__7_in_rule__ActorClass__Group__622197 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__AnnotationsAssignment_6_in_rule__ActorClass__Group__6__Impl22224 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group__7__Impl_in_rule__ActorClass__Group__722255 = new BitSet(new long[]{0x0000020000000000L,0x0080000000000380L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group__8_in_rule__ActorClass__Group__722258 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_7__0_in_rule__ActorClass__Group__7__Impl22285 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group__8__Impl_in_rule__ActorClass__Group__822316 = new BitSet(new long[]{0x0000020000000000L,0x0080000000000380L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group__9_in_rule__ActorClass__Group__822319 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8__0_in_rule__ActorClass__Group__8__Impl22346 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group__9__Impl_in_rule__ActorClass__Group__922377 = new BitSet(new long[]{0x0000020000000000L,0x0080000000000380L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group__10_in_rule__ActorClass__Group__922380 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_9__0_in_rule__ActorClass__Group__9__Impl22407 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group__10__Impl_in_rule__ActorClass__Group__1022438 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__ActorClass__Group__10__Impl22466 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_4__0__Impl_in_rule__ActorClass__Group_4__022519 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_4__1_in_rule__ActorClass__Group_4__022522 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_53_in_rule__ActorClass__Group_4__0__Impl22550 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_4__1__Impl_in_rule__ActorClass__Group_4__122581 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__BaseAssignment_4_1_in_rule__ActorClass__Group_4__1__Impl22608 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_7__0__Impl_in_rule__ActorClass__Group_7__022642 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_7__1_in_rule__ActorClass__Group_7__022645 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_71_in_rule__ActorClass__Group_7__0__Impl22673 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_7__1__Impl_in_rule__ActorClass__Group_7__122704 = new BitSet(new long[]{0x0000020000000000L,0x0000000000002404L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_7__2_in_rule__ActorClass__Group_7__122707 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__ActorClass__Group_7__1__Impl22735 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_7__2__Impl_in_rule__ActorClass__Group_7__222766 = new BitSet(new long[]{0x0000020000000000L,0x0000000000002404L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_7__3_in_rule__ActorClass__Group_7__222769 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Alternatives_7_2_in_rule__ActorClass__Group_7__2__Impl22796 = new BitSet(new long[]{0x0000000000000002L,0x0000000000002404L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_7__3__Impl_in_rule__ActorClass__Group_7__322827 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__ActorClass__Group_7__3__Impl22855 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8__0__Impl_in_rule__ActorClass__Group_8__022894 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8__1_in_rule__ActorClass__Group_8__022897 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_72_in_rule__ActorClass__Group_8__0__Impl22925 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8__1__Impl_in_rule__ActorClass__Group_8__122956 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8__2_in_rule__ActorClass__Group_8__122959 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__StructureDocuAssignment_8_1_in_rule__ActorClass__Group_8__1__Impl22986 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8__2__Impl_in_rule__ActorClass__Group_8__223017 = new BitSet(new long[]{0x13C002030000C000L,0x4000000008887C04L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8__3_in_rule__ActorClass__Group_8__223020 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__ActorClass__Group_8__2__Impl23048 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8__3__Impl_in_rule__ActorClass__Group_8__323079 = new BitSet(new long[]{0x13C002030000C000L,0x4000000008887C04L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8__4_in_rule__ActorClass__Group_8__323082 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8_3__0_in_rule__ActorClass__Group_8__3__Impl23109 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8__4__Impl_in_rule__ActorClass__Group_8__423140 = new BitSet(new long[]{0x13C002030000C000L,0x4000000008887C04L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8__5_in_rule__ActorClass__Group_8__423143 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8_4__0_in_rule__ActorClass__Group_8__4__Impl23170 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8__5__Impl_in_rule__ActorClass__Group_8__523201 = new BitSet(new long[]{0x13C002030000C000L,0x4000000008887C04L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8__6_in_rule__ActorClass__Group_8__523204 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8_5__0_in_rule__ActorClass__Group_8__5__Impl23231 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8__6__Impl_in_rule__ActorClass__Group_8__623262 = new BitSet(new long[]{0x13C002030000C000L,0x4000000008887C04L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8__7_in_rule__ActorClass__Group_8__623265 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Alternatives_8_6_in_rule__ActorClass__Group_8__6__Impl23292 = new BitSet(new long[]{0x120000030000C002L,0x4000000008887C04L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8__7__Impl_in_rule__ActorClass__Group_8__723323 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__ActorClass__Group_8__7__Impl23351 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8_3__0__Impl_in_rule__ActorClass__Group_8_3__023398 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8_3__1_in_rule__ActorClass__Group_8_3__023401 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_54_in_rule__ActorClass__Group_8_3__0__Impl23429 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8_3__1__Impl_in_rule__ActorClass__Group_8_3__123460 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__UserCode1Assignment_8_3_1_in_rule__ActorClass__Group_8_3__1__Impl23487 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8_4__0__Impl_in_rule__ActorClass__Group_8_4__023521 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8_4__1_in_rule__ActorClass__Group_8_4__023524 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_55_in_rule__ActorClass__Group_8_4__0__Impl23552 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8_4__1__Impl_in_rule__ActorClass__Group_8_4__123583 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__UserCode2Assignment_8_4_1_in_rule__ActorClass__Group_8_4__1__Impl23610 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8_5__0__Impl_in_rule__ActorClass__Group_8_5__023644 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8_5__1_in_rule__ActorClass__Group_8_5__023647 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_56_in_rule__ActorClass__Group_8_5__0__Impl23675 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_8_5__1__Impl_in_rule__ActorClass__Group_8_5__123706 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__UserCode3Assignment_8_5_1_in_rule__ActorClass__Group_8_5__1__Impl23733 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_9__0__Impl_in_rule__ActorClass__Group_9__023767 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_9__1_in_rule__ActorClass__Group_9__023770 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_73_in_rule__ActorClass__Group_9__0__Impl23798 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_9__1__Impl_in_rule__ActorClass__Group_9__123829 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_9__2_in_rule__ActorClass__Group_9__123832 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__BehaviorDocuAssignment_9_1_in_rule__ActorClass__Group_9__1__Impl23859 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_9__2__Impl_in_rule__ActorClass__Group_9__223890 = new BitSet(new long[]{0x100002000000C000L,0x4080000010000000L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_9__3_in_rule__ActorClass__Group_9__223893 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__ActorClass__Group_9__2__Impl23921 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_9__3__Impl_in_rule__ActorClass__Group_9__323952 = new BitSet(new long[]{0x100002000000C000L,0x4080000010000000L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_9__4_in_rule__ActorClass__Group_9__323955 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__BehaviorAnnotationsAssignment_9_3_in_rule__ActorClass__Group_9__3__Impl23982 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_9__4__Impl_in_rule__ActorClass__Group_9__424013 = new BitSet(new long[]{0x100002000000C000L,0x4080000010000000L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_9__5_in_rule__ActorClass__Group_9__424016 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Alternatives_9_4_in_rule__ActorClass__Group_9__4__Impl24043 = new BitSet(new long[]{0x100000000000C002L,0x4000000000000000L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_9__5__Impl_in_rule__ActorClass__Group_9__524074 = new BitSet(new long[]{0x100002000000C000L,0x4080000010000000L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_9__6_in_rule__ActorClass__Group_9__524077 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__StateMachineAssignment_9_5_in_rule__ActorClass__Group_9__5__Impl24104 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__Group_9__6__Impl_in_rule__ActorClass__Group_9__624135 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__ActorClass__Group_9__6__Impl24163 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Port__Group__0__Impl_in_rule__Port__Group__024208 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002404L});
+    public static final BitSet FOLLOW_rule__Port__Group__1_in_rule__Port__Group__024211 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Port__ConjugatedAssignment_0_in_rule__Port__Group__0__Impl24238 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Port__Group__1__Impl_in_rule__Port__Group__124269 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__Port__Group__2_in_rule__Port__Group__124272 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_74_in_rule__Port__Group__1__Impl24300 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Port__Group__2__Impl_in_rule__Port__Group__224331 = new BitSet(new long[]{0x0400040000000000L});
+    public static final BitSet FOLLOW_rule__Port__Group__3_in_rule__Port__Group__224334 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Port__NameAssignment_2_in_rule__Port__Group__2__Impl24361 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Port__Group__3__Impl_in_rule__Port__Group__324391 = new BitSet(new long[]{0x0400040000000000L});
+    public static final BitSet FOLLOW_rule__Port__Group__4_in_rule__Port__Group__324394 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Port__MultiplicityAssignment_3_in_rule__Port__Group__3__Impl24421 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Port__Group__4__Impl_in_rule__Port__Group__424452 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__Port__Group__5_in_rule__Port__Group__424455 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_42_in_rule__Port__Group__4__Impl24483 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Port__Group__5__Impl_in_rule__Port__Group__524514 = new BitSet(new long[]{0x0400000000000000L});
+    public static final BitSet FOLLOW_rule__Port__Group__6_in_rule__Port__Group__524517 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Port__ProtocolAssignment_5_in_rule__Port__Group__5__Impl24544 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Port__Group__6__Impl_in_rule__Port__Group__624574 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Port__DocuAssignment_6_in_rule__Port__Group__6__Impl24601 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExternalPort__Group__0__Impl_in_rule__ExternalPort__Group__024646 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
+    public static final BitSet FOLLOW_rule__ExternalPort__Group__1_in_rule__ExternalPort__Group__024649 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_75_in_rule__ExternalPort__Group__0__Impl24677 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExternalPort__Group__1__Impl_in_rule__ExternalPort__Group__124708 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__ExternalPort__Group__2_in_rule__ExternalPort__Group__124711 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_74_in_rule__ExternalPort__Group__1__Impl24739 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExternalPort__Group__2__Impl_in_rule__ExternalPort__Group__224770 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExternalPort__InterfacePortAssignment_2_in_rule__ExternalPort__Group__2__Impl24797 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SAP__Group__0__Impl_in_rule__SAP__Group__024833 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__SAP__Group__1_in_rule__SAP__Group__024836 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_76_in_rule__SAP__Group__0__Impl24864 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SAP__Group__1__Impl_in_rule__SAP__Group__124895 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_rule__SAP__Group__2_in_rule__SAP__Group__124898 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SAP__NameAssignment_1_in_rule__SAP__Group__1__Impl24925 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SAP__Group__2__Impl_in_rule__SAP__Group__224955 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__SAP__Group__3_in_rule__SAP__Group__224958 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_42_in_rule__SAP__Group__2__Impl24986 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SAP__Group__3__Impl_in_rule__SAP__Group__325017 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SAP__ProtocolAssignment_3_in_rule__SAP__Group__3__Impl25044 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SPP__Group__0__Impl_in_rule__SPP__Group__025082 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__SPP__Group__1_in_rule__SPP__Group__025085 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_77_in_rule__SPP__Group__0__Impl25113 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SPP__Group__1__Impl_in_rule__SPP__Group__125144 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_rule__SPP__Group__2_in_rule__SPP__Group__125147 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SPP__NameAssignment_1_in_rule__SPP__Group__1__Impl25174 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SPP__Group__2__Impl_in_rule__SPP__Group__225204 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__SPP__Group__3_in_rule__SPP__Group__225207 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_42_in_rule__SPP__Group__2__Impl25235 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SPP__Group__3__Impl_in_rule__SPP__Group__325266 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SPP__ProtocolAssignment_3_in_rule__SPP__Group__3__Impl25293 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ServiceImplementation__Group__0__Impl_in_rule__ServiceImplementation__Group__025331 = new BitSet(new long[]{0x0002000000000000L});
+    public static final BitSet FOLLOW_rule__ServiceImplementation__Group__1_in_rule__ServiceImplementation__Group__025334 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_78_in_rule__ServiceImplementation__Group__0__Impl25362 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ServiceImplementation__Group__1__Impl_in_rule__ServiceImplementation__Group__125393 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__ServiceImplementation__Group__2_in_rule__ServiceImplementation__Group__125396 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_49_in_rule__ServiceImplementation__Group__1__Impl25424 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ServiceImplementation__Group__2__Impl_in_rule__ServiceImplementation__Group__225455 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ServiceImplementation__SppAssignment_2_in_rule__ServiceImplementation__Group__2__Impl25482 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__LogicalSystem__Group__0__Impl_in_rule__LogicalSystem__Group__025518 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__LogicalSystem__Group__1_in_rule__LogicalSystem__Group__025521 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_23_in_rule__LogicalSystem__Group__0__Impl25549 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__LogicalSystem__Group__1__Impl_in_rule__LogicalSystem__Group__125580 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__LogicalSystem__Group__2_in_rule__LogicalSystem__Group__125583 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__LogicalSystem__NameAssignment_1_in_rule__LogicalSystem__Group__1__Impl25610 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__LogicalSystem__Group__2__Impl_in_rule__LogicalSystem__Group__225640 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__LogicalSystem__Group__3_in_rule__LogicalSystem__Group__225643 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__LogicalSystem__DocuAssignment_2_in_rule__LogicalSystem__Group__2__Impl25670 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__LogicalSystem__Group__3__Impl_in_rule__LogicalSystem__Group__325701 = new BitSet(new long[]{0x0000020000000000L,0x0080000000888000L});
+    public static final BitSet FOLLOW_rule__LogicalSystem__Group__4_in_rule__LogicalSystem__Group__325704 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__LogicalSystem__Group__3__Impl25732 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__LogicalSystem__Group__4__Impl_in_rule__LogicalSystem__Group__425763 = new BitSet(new long[]{0x0000020000000000L,0x0080000000888000L});
+    public static final BitSet FOLLOW_rule__LogicalSystem__Group__5_in_rule__LogicalSystem__Group__425766 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__LogicalSystem__AnnotationsAssignment_4_in_rule__LogicalSystem__Group__4__Impl25793 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L});
+    public static final BitSet FOLLOW_rule__LogicalSystem__Group__5__Impl_in_rule__LogicalSystem__Group__525824 = new BitSet(new long[]{0x0000020000000000L,0x0080000000888000L});
+    public static final BitSet FOLLOW_rule__LogicalSystem__Group__6_in_rule__LogicalSystem__Group__525827 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__LogicalSystem__Alternatives_5_in_rule__LogicalSystem__Group__5__Impl25854 = new BitSet(new long[]{0x0000000000000002L,0x0000000000888000L});
+    public static final BitSet FOLLOW_rule__LogicalSystem__Group__6__Impl_in_rule__LogicalSystem__Group__625885 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__LogicalSystem__Group__6__Impl25913 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemRef__Group__0__Impl_in_rule__SubSystemRef__Group__025958 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__SubSystemRef__Group__1_in_rule__SubSystemRef__Group__025961 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_79_in_rule__SubSystemRef__Group__0__Impl25989 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemRef__Group__1__Impl_in_rule__SubSystemRef__Group__126020 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_rule__SubSystemRef__Group__2_in_rule__SubSystemRef__Group__126023 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemRef__NameAssignment_1_in_rule__SubSystemRef__Group__1__Impl26050 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemRef__Group__2__Impl_in_rule__SubSystemRef__Group__226080 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__SubSystemRef__Group__3_in_rule__SubSystemRef__Group__226083 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_42_in_rule__SubSystemRef__Group__2__Impl26111 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemRef__Group__3__Impl_in_rule__SubSystemRef__Group__326142 = new BitSet(new long[]{0x0400000000000000L});
+    public static final BitSet FOLLOW_rule__SubSystemRef__Group__4_in_rule__SubSystemRef__Group__326145 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemRef__TypeAssignment_3_in_rule__SubSystemRef__Group__3__Impl26172 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemRef__Group__4__Impl_in_rule__SubSystemRef__Group__426202 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemRef__DocuAssignment_4_in_rule__SubSystemRef__Group__4__Impl26229 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group__0__Impl_in_rule__SubSystemClass__Group__026270 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group__1_in_rule__SubSystemClass__Group__026273 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_22_in_rule__SubSystemClass__Group__0__Impl26301 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group__1__Impl_in_rule__SubSystemClass__Group__126332 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group__2_in_rule__SubSystemClass__Group__126335 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__NameAssignment_1_in_rule__SubSystemClass__Group__1__Impl26362 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group__2__Impl_in_rule__SubSystemClass__Group__226392 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group__3_in_rule__SubSystemClass__Group__226395 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__DocuAssignment_2_in_rule__SubSystemClass__Group__2__Impl26422 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group__3__Impl_in_rule__SubSystemClass__Group__326453 = new BitSet(new long[]{0x01C0020300000000L,0x00800000088B2404L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group__4_in_rule__SubSystemClass__Group__326456 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__SubSystemClass__Group__3__Impl26484 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group__4__Impl_in_rule__SubSystemClass__Group__426515 = new BitSet(new long[]{0x01C0020300000000L,0x00800000088B2404L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group__5_in_rule__SubSystemClass__Group__426518 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__AnnotationsAssignment_4_in_rule__SubSystemClass__Group__4__Impl26545 = new BitSet(new long[]{0x0000000000000002L,0x0080000000000000L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group__5__Impl_in_rule__SubSystemClass__Group__526576 = new BitSet(new long[]{0x01C0020300000000L,0x00800000088B2404L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group__6_in_rule__SubSystemClass__Group__526579 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group_5__0_in_rule__SubSystemClass__Group__5__Impl26606 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group__6__Impl_in_rule__SubSystemClass__Group__626637 = new BitSet(new long[]{0x01C0020300000000L,0x00800000088B2404L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group__7_in_rule__SubSystemClass__Group__626640 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group_6__0_in_rule__SubSystemClass__Group__6__Impl26667 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group__7__Impl_in_rule__SubSystemClass__Group__726698 = new BitSet(new long[]{0x01C0020300000000L,0x00800000088B2404L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group__8_in_rule__SubSystemClass__Group__726701 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group_7__0_in_rule__SubSystemClass__Group__7__Impl26728 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group__8__Impl_in_rule__SubSystemClass__Group__826759 = new BitSet(new long[]{0x01C0020300000000L,0x00800000088B2404L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group__9_in_rule__SubSystemClass__Group__826762 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Alternatives_8_in_rule__SubSystemClass__Group__8__Impl26789 = new BitSet(new long[]{0x0000000300000002L,0x00000000088B2404L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group__9__Impl_in_rule__SubSystemClass__Group__926820 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__SubSystemClass__Group__9__Impl26848 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group_5__0__Impl_in_rule__SubSystemClass__Group_5__026899 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group_5__1_in_rule__SubSystemClass__Group_5__026902 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_54_in_rule__SubSystemClass__Group_5__0__Impl26930 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group_5__1__Impl_in_rule__SubSystemClass__Group_5__126961 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__UserCode1Assignment_5_1_in_rule__SubSystemClass__Group_5__1__Impl26988 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group_6__0__Impl_in_rule__SubSystemClass__Group_6__027022 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group_6__1_in_rule__SubSystemClass__Group_6__027025 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_55_in_rule__SubSystemClass__Group_6__0__Impl27053 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group_6__1__Impl_in_rule__SubSystemClass__Group_6__127084 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__UserCode2Assignment_6_1_in_rule__SubSystemClass__Group_6__1__Impl27111 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group_7__0__Impl_in_rule__SubSystemClass__Group_7__027145 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group_7__1_in_rule__SubSystemClass__Group_7__027148 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_56_in_rule__SubSystemClass__Group_7__0__Impl27176 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__Group_7__1__Impl_in_rule__SubSystemClass__Group_7__127207 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubSystemClass__UserCode3Assignment_7_1_in_rule__SubSystemClass__Group_7__1__Impl27234 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__LogicalThread__Group__0__Impl_in_rule__LogicalThread__Group__027268 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__LogicalThread__Group__1_in_rule__LogicalThread__Group__027271 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_80_in_rule__LogicalThread__Group__0__Impl27299 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__LogicalThread__Group__1__Impl_in_rule__LogicalThread__Group__127330 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__LogicalThread__NameAssignment_1_in_rule__LogicalThread__Group__1__Impl27357 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group__0__Impl_in_rule__ActorInstanceMapping__Group__027391 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group__1_in_rule__ActorInstanceMapping__Group__027394 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_81_in_rule__ActorInstanceMapping__Group__0__Impl27422 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group__1__Impl_in_rule__ActorInstanceMapping__Group__127453 = new BitSet(new long[]{0x0000100000000000L});
+    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group__2_in_rule__ActorInstanceMapping__Group__127456 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorInstanceMapping__PathAssignment_1_in_rule__ActorInstanceMapping__Group__1__Impl27483 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group__2__Impl_in_rule__ActorInstanceMapping__Group__227513 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group__3_in_rule__ActorInstanceMapping__Group__227516 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_44_in_rule__ActorInstanceMapping__Group__2__Impl27544 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group__3__Impl_in_rule__ActorInstanceMapping__Group__327575 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group__4_in_rule__ActorInstanceMapping__Group__327578 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorInstanceMapping__ThreadAssignment_3_in_rule__ActorInstanceMapping__Group__3__Impl27605 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group__4__Impl_in_rule__ActorInstanceMapping__Group__427635 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group_4__0_in_rule__ActorInstanceMapping__Group__4__Impl27662 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group_4__0__Impl_in_rule__ActorInstanceMapping__Group_4__027703 = new BitSet(new long[]{0x0000020000000000L,0x0000000000020000L});
+    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group_4__1_in_rule__ActorInstanceMapping__Group_4__027706 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__ActorInstanceMapping__Group_4__0__Impl27734 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group_4__1__Impl_in_rule__ActorInstanceMapping__Group_4__127765 = new BitSet(new long[]{0x0000020000000000L,0x0000000000020000L});
+    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group_4__2_in_rule__ActorInstanceMapping__Group_4__127768 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorInstanceMapping__ActorInstanceMappingsAssignment_4_1_in_rule__ActorInstanceMapping__Group_4__1__Impl27795 = new BitSet(new long[]{0x0000000000000002L,0x0000000000020000L});
+    public static final BitSet FOLLOW_rule__ActorInstanceMapping__Group_4__2__Impl_in_rule__ActorInstanceMapping__Group_4__227826 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__ActorInstanceMapping__Group_4__2__Impl27854 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefPath__Group__0__Impl_in_rule__RefPath__Group__027891 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
+    public static final BitSet FOLLOW_rule__RefPath__Group__1_in_rule__RefPath__Group__027894 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefPath__RefsAssignment_0_in_rule__RefPath__Group__0__Impl27921 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefPath__Group__1__Impl_in_rule__RefPath__Group__127951 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefPath__Group_1__0_in_rule__RefPath__Group__1__Impl27978 = new BitSet(new long[]{0x0000000000000002L,0x0000000000040000L});
+    public static final BitSet FOLLOW_rule__RefPath__Group_1__0__Impl_in_rule__RefPath__Group_1__028013 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__RefPath__Group_1__1_in_rule__RefPath__Group_1__028016 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_82_in_rule__RefPath__Group_1__0__Impl28044 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefPath__Group_1__1__Impl_in_rule__RefPath__Group_1__128075 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefPath__RefsAssignment_1_1_in_rule__RefPath__Group_1__1__Impl28102 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefSegment__Group__0__Impl_in_rule__RefSegment__Group__028136 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_rule__RefSegment__Group__1_in_rule__RefSegment__Group__028139 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefSegment__RefAssignment_0_in_rule__RefSegment__Group__0__Impl28166 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefSegment__Group__1__Impl_in_rule__RefSegment__Group__128196 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefSegment__Group_1__0_in_rule__RefSegment__Group__1__Impl28223 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefSegment__Group_1__0__Impl_in_rule__RefSegment__Group_1__028258 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_rule__RefSegment__Group_1__1_in_rule__RefSegment__Group_1__028261 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_42_in_rule__RefSegment__Group_1__0__Impl28289 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefSegment__Group_1__1__Impl_in_rule__RefSegment__Group_1__128320 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefSegment__IdxAssignment_1_1_in_rule__RefSegment__Group_1__1__Impl28347 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Binding__Group__0__Impl_in_rule__Binding__Group__028381 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__Binding__Group__1_in_rule__Binding__Group__028384 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_83_in_rule__Binding__Group__0__Impl28412 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Binding__Group__1__Impl_in_rule__Binding__Group__128443 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
+    public static final BitSet FOLLOW_rule__Binding__Group__2_in_rule__Binding__Group__128446 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Binding__Endpoint1Assignment_1_in_rule__Binding__Group__1__Impl28473 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Binding__Group__2__Impl_in_rule__Binding__Group__228503 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__Binding__Group__3_in_rule__Binding__Group__228506 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_84_in_rule__Binding__Group__2__Impl28534 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Binding__Group__3__Impl_in_rule__Binding__Group__328565 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Binding__Endpoint2Assignment_3_in_rule__Binding__Group__3__Impl28592 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__BindingEndPoint__Group__0__Impl_in_rule__BindingEndPoint__Group__028630 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__BindingEndPoint__Group__1_in_rule__BindingEndPoint__Group__028633 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__BindingEndPoint__Group_0__0_in_rule__BindingEndPoint__Group__0__Impl28660 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__BindingEndPoint__Group__1__Impl_in_rule__BindingEndPoint__Group__128691 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
+    public static final BitSet FOLLOW_rule__BindingEndPoint__Group__2_in_rule__BindingEndPoint__Group__128694 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__BindingEndPoint__PortAssignment_1_in_rule__BindingEndPoint__Group__1__Impl28721 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__BindingEndPoint__Group__2__Impl_in_rule__BindingEndPoint__Group__228751 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__BindingEndPoint__Group_2__0_in_rule__BindingEndPoint__Group__2__Impl28778 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__BindingEndPoint__Group_0__0__Impl_in_rule__BindingEndPoint__Group_0__028815 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_rule__BindingEndPoint__Group_0__1_in_rule__BindingEndPoint__Group_0__028818 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__BindingEndPoint__ActorRefAssignment_0_0_in_rule__BindingEndPoint__Group_0__0__Impl28845 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__BindingEndPoint__Group_0__1__Impl_in_rule__BindingEndPoint__Group_0__128875 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_85_in_rule__BindingEndPoint__Group_0__1__Impl28903 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__BindingEndPoint__Group_2__0__Impl_in_rule__BindingEndPoint__Group_2__028938 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__BindingEndPoint__Group_2__1_in_rule__BindingEndPoint__Group_2__028941 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_86_in_rule__BindingEndPoint__Group_2__0__Impl28969 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__BindingEndPoint__Group_2__1__Impl_in_rule__BindingEndPoint__Group_2__129000 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__BindingEndPoint__SubAssignment_2_1_in_rule__BindingEndPoint__Group_2__1__Impl29027 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__LayerConnection__Group__0__Impl_in_rule__LayerConnection__Group__029061 = new BitSet(new long[]{0x0000000000000000L,0x0000000006000000L});
+    public static final BitSet FOLLOW_rule__LayerConnection__Group__1_in_rule__LayerConnection__Group__029064 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_87_in_rule__LayerConnection__Group__0__Impl29092 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__LayerConnection__Group__1__Impl_in_rule__LayerConnection__Group__129123 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
+    public static final BitSet FOLLOW_rule__LayerConnection__Group__2_in_rule__LayerConnection__Group__129126 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__LayerConnection__FromAssignment_1_in_rule__LayerConnection__Group__1__Impl29153 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__LayerConnection__Group__2__Impl_in_rule__LayerConnection__Group__229183 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__LayerConnection__Group__3_in_rule__LayerConnection__Group__229186 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_88_in_rule__LayerConnection__Group__2__Impl29214 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__LayerConnection__Group__3__Impl_in_rule__LayerConnection__Group__329245 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__LayerConnection__ToAssignment_3_in_rule__LayerConnection__Group__3__Impl29272 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefSAPoint__Group__0__Impl_in_rule__RefSAPoint__Group__029310 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__RefSAPoint__Group__1_in_rule__RefSAPoint__Group__029313 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_89_in_rule__RefSAPoint__Group__0__Impl29341 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefSAPoint__Group__1__Impl_in_rule__RefSAPoint__Group__129372 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefSAPoint__RefAssignment_1_in_rule__RefSAPoint__Group__1__Impl29399 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RelaySAPoint__Group__0__Impl_in_rule__RelaySAPoint__Group__029433 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__RelaySAPoint__Group__1_in_rule__RelaySAPoint__Group__029436 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_90_in_rule__RelaySAPoint__Group__0__Impl29464 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RelaySAPoint__Group__1__Impl_in_rule__RelaySAPoint__Group__129495 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RelaySAPoint__RelayAssignment_1_in_rule__RelaySAPoint__Group__1__Impl29522 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SPPoint__Group__0__Impl_in_rule__SPPoint__Group__029556 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_rule__SPPoint__Group__1_in_rule__SPPoint__Group__029559 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SPPoint__RefAssignment_0_in_rule__SPPoint__Group__0__Impl29586 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SPPoint__Group__1__Impl_in_rule__SPPoint__Group__129616 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__SPPoint__Group__2_in_rule__SPPoint__Group__129619 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_85_in_rule__SPPoint__Group__1__Impl29647 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SPPoint__Group__2__Impl_in_rule__SPPoint__Group__229678 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SPPoint__ServiceAssignment_2_in_rule__SPPoint__Group__2__Impl29705 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorRef__Group__0__Impl_in_rule__ActorRef__Group__029741 = new BitSet(new long[]{0x0000000300000000L,0x0000000008000000L});
+    public static final BitSet FOLLOW_rule__ActorRef__Group__1_in_rule__ActorRef__Group__029744 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorRef__RefTypeAssignment_0_in_rule__ActorRef__Group__0__Impl29771 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorRef__Group__1__Impl_in_rule__ActorRef__Group__129802 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__ActorRef__Group__2_in_rule__ActorRef__Group__129805 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_91_in_rule__ActorRef__Group__1__Impl29833 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorRef__Group__2__Impl_in_rule__ActorRef__Group__229864 = new BitSet(new long[]{0x0400040000000000L});
+    public static final BitSet FOLLOW_rule__ActorRef__Group__3_in_rule__ActorRef__Group__229867 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorRef__NameAssignment_2_in_rule__ActorRef__Group__2__Impl29894 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorRef__Group__3__Impl_in_rule__ActorRef__Group__329924 = new BitSet(new long[]{0x0400040000000000L});
+    public static final BitSet FOLLOW_rule__ActorRef__Group__4_in_rule__ActorRef__Group__329927 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorRef__MultiplicityAssignment_3_in_rule__ActorRef__Group__3__Impl29954 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorRef__Group__4__Impl_in_rule__ActorRef__Group__429985 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__ActorRef__Group__5_in_rule__ActorRef__Group__429988 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_42_in_rule__ActorRef__Group__4__Impl30016 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorRef__Group__5__Impl_in_rule__ActorRef__Group__530047 = new BitSet(new long[]{0x0400000000000000L});
+    public static final BitSet FOLLOW_rule__ActorRef__Group__6_in_rule__ActorRef__Group__530050 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorRef__TypeAssignment_5_in_rule__ActorRef__Group__5__Impl30077 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorRef__Group__6__Impl_in_rule__ActorRef__Group__630107 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorRef__DocuAssignment_6_in_rule__ActorRef__Group__6__Impl30134 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__MULTIPLICITY__Group__0__Impl_in_rule__MULTIPLICITY__Group__030179 = new BitSet(new long[]{0x0000000000010020L});
+    public static final BitSet FOLLOW_rule__MULTIPLICITY__Group__1_in_rule__MULTIPLICITY__Group__030182 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_58_in_rule__MULTIPLICITY__Group__0__Impl30210 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__MULTIPLICITY__Group__1__Impl_in_rule__MULTIPLICITY__Group__130241 = new BitSet(new long[]{0x0800000000000000L});
+    public static final BitSet FOLLOW_rule__MULTIPLICITY__Group__2_in_rule__MULTIPLICITY__Group__130244 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__MULTIPLICITY__Alternatives_1_in_rule__MULTIPLICITY__Group__1__Impl30271 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__MULTIPLICITY__Group__2__Impl_in_rule__MULTIPLICITY__Group__230301 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_59_in_rule__MULTIPLICITY__Group__2__Impl30329 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StateGraph__Group__0__Impl_in_rule__StateGraph__Group__030366 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__StateGraph__Group__1_in_rule__StateGraph__Group__030369 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StateGraph__Group__1__Impl_in_rule__StateGraph__Group__130427 = new BitSet(new long[]{0x0000020000000000L,0x000040FC20000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StateGraph__Group__2_in_rule__StateGraph__Group__130430 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__StateGraph__Group__1__Impl30458 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StateGraph__Group__2__Impl_in_rule__StateGraph__Group__230489 = new BitSet(new long[]{0x0000020000000000L,0x000040FC20000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StateGraph__Group__3_in_rule__StateGraph__Group__230492 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StateGraph__Alternatives_2_in_rule__StateGraph__Group__2__Impl30519 = new BitSet(new long[]{0x0000000000000002L,0x000040FC20000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StateGraph__Group__3__Impl_in_rule__StateGraph__Group__330550 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__StateGraph__Group__3__Impl30578 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StateMachine__Group__0__Impl_in_rule__StateMachine__Group__030617 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
+    public static final BitSet FOLLOW_rule__StateMachine__Group__1_in_rule__StateMachine__Group__030620 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StateMachine__Group__1__Impl_in_rule__StateMachine__Group__130678 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__StateMachine__Group__2_in_rule__StateMachine__Group__130681 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_92_in_rule__StateMachine__Group__1__Impl30709 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StateMachine__Group__2__Impl_in_rule__StateMachine__Group__230740 = new BitSet(new long[]{0x0000020000000000L,0x000040FC20000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StateMachine__Group__3_in_rule__StateMachine__Group__230743 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__StateMachine__Group__2__Impl30771 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StateMachine__Group__3__Impl_in_rule__StateMachine__Group__330802 = new BitSet(new long[]{0x0000020000000000L,0x000040FC20000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StateMachine__Group__4_in_rule__StateMachine__Group__330805 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StateMachine__Alternatives_3_in_rule__StateMachine__Group__3__Impl30832 = new BitSet(new long[]{0x0000000000000002L,0x000040FC20000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StateMachine__Group__4__Impl_in_rule__StateMachine__Group__430863 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__StateMachine__Group__4__Impl30891 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group__0__Impl_in_rule__SimpleState__Group__030932 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group__1_in_rule__SimpleState__Group__030935 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_93_in_rule__SimpleState__Group__0__Impl30963 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group__1__Impl_in_rule__SimpleState__Group__130994 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group__2_in_rule__SimpleState__Group__130997 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__NameAssignment_1_in_rule__SimpleState__Group__1__Impl31024 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group__2__Impl_in_rule__SimpleState__Group__231054 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group__3_in_rule__SimpleState__Group__231057 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__DocuAssignment_2_in_rule__SimpleState__Group__2__Impl31084 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group__3__Impl_in_rule__SimpleState__Group__331115 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3__0_in_rule__SimpleState__Group__3__Impl31142 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3__0__Impl_in_rule__SimpleState__Group_3__031181 = new BitSet(new long[]{0x0000020000000000L,0x00000003C0000000L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3__1_in_rule__SimpleState__Group_3__031184 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__SimpleState__Group_3__0__Impl31212 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3__1__Impl_in_rule__SimpleState__Group_3__131243 = new BitSet(new long[]{0x0000020000000000L,0x00000003C0000000L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3__2_in_rule__SimpleState__Group_3__131246 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3_1__0_in_rule__SimpleState__Group_3__1__Impl31273 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3__2__Impl_in_rule__SimpleState__Group_3__231304 = new BitSet(new long[]{0x0000020000000000L,0x00000003C0000000L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3__3_in_rule__SimpleState__Group_3__231307 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3_2__0_in_rule__SimpleState__Group_3__2__Impl31334 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3__3__Impl_in_rule__SimpleState__Group_3__331365 = new BitSet(new long[]{0x0000020000000000L,0x00000003C0000000L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3__4_in_rule__SimpleState__Group_3__331368 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3_3__0_in_rule__SimpleState__Group_3__3__Impl31395 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3__4__Impl_in_rule__SimpleState__Group_3__431426 = new BitSet(new long[]{0x0000020000000000L,0x00000003C0000000L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3__5_in_rule__SimpleState__Group_3__431429 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3_4__0_in_rule__SimpleState__Group_3__4__Impl31456 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3__5__Impl_in_rule__SimpleState__Group_3__531487 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__SimpleState__Group_3__5__Impl31515 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3_1__0__Impl_in_rule__SimpleState__Group_3_1__031558 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3_1__1_in_rule__SimpleState__Group_3_1__031561 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_94_in_rule__SimpleState__Group_3_1__0__Impl31589 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3_1__1__Impl_in_rule__SimpleState__Group_3_1__131620 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__EntryCodeAssignment_3_1_1_in_rule__SimpleState__Group_3_1__1__Impl31647 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3_2__0__Impl_in_rule__SimpleState__Group_3_2__031681 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3_2__1_in_rule__SimpleState__Group_3_2__031684 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_95_in_rule__SimpleState__Group_3_2__0__Impl31712 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3_2__1__Impl_in_rule__SimpleState__Group_3_2__131743 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__ExitCodeAssignment_3_2_1_in_rule__SimpleState__Group_3_2__1__Impl31770 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3_3__0__Impl_in_rule__SimpleState__Group_3_3__031804 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3_3__1_in_rule__SimpleState__Group_3_3__031807 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_96_in_rule__SimpleState__Group_3_3__0__Impl31835 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3_3__1__Impl_in_rule__SimpleState__Group_3_3__131866 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__DoCodeAssignment_3_3_1_in_rule__SimpleState__Group_3_3__1__Impl31893 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3_4__0__Impl_in_rule__SimpleState__Group_3_4__031927 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3_4__1_in_rule__SimpleState__Group_3_4__031930 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_97_in_rule__SimpleState__Group_3_4__0__Impl31958 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__Group_3_4__1__Impl_in_rule__SimpleState__Group_3_4__131989 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleState__SubgraphAssignment_3_4_1_in_rule__SimpleState__Group_3_4__1__Impl32016 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group__0__Impl_in_rule__RefinedState__Group__032050 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group__1_in_rule__RefinedState__Group__032053 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_98_in_rule__RefinedState__Group__0__Impl32081 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group__1__Impl_in_rule__RefinedState__Group__132112 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group__2_in_rule__RefinedState__Group__132115 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__TargetAssignment_1_in_rule__RefinedState__Group__1__Impl32142 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group__2__Impl_in_rule__RefinedState__Group__232172 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group__3_in_rule__RefinedState__Group__232175 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__DocuAssignment_2_in_rule__RefinedState__Group__2__Impl32202 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group__3__Impl_in_rule__RefinedState__Group__332233 = new BitSet(new long[]{0x0000020000000000L,0x00000003C0000000L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group__4_in_rule__RefinedState__Group__332236 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__RefinedState__Group__3__Impl32264 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group__4__Impl_in_rule__RefinedState__Group__432295 = new BitSet(new long[]{0x0000020000000000L,0x00000003C0000000L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group__5_in_rule__RefinedState__Group__432298 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group_4__0_in_rule__RefinedState__Group__4__Impl32325 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group__5__Impl_in_rule__RefinedState__Group__532356 = new BitSet(new long[]{0x0000020000000000L,0x00000003C0000000L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group__6_in_rule__RefinedState__Group__532359 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group_5__0_in_rule__RefinedState__Group__5__Impl32386 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group__6__Impl_in_rule__RefinedState__Group__632417 = new BitSet(new long[]{0x0000020000000000L,0x00000003C0000000L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group__7_in_rule__RefinedState__Group__632420 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group_6__0_in_rule__RefinedState__Group__6__Impl32447 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group__7__Impl_in_rule__RefinedState__Group__732478 = new BitSet(new long[]{0x0000020000000000L,0x00000003C0000000L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group__8_in_rule__RefinedState__Group__732481 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group_7__0_in_rule__RefinedState__Group__7__Impl32508 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group__8__Impl_in_rule__RefinedState__Group__832539 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__RefinedState__Group__8__Impl32567 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group_4__0__Impl_in_rule__RefinedState__Group_4__032616 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group_4__1_in_rule__RefinedState__Group_4__032619 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_94_in_rule__RefinedState__Group_4__0__Impl32647 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group_4__1__Impl_in_rule__RefinedState__Group_4__132678 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__EntryCodeAssignment_4_1_in_rule__RefinedState__Group_4__1__Impl32705 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group_5__0__Impl_in_rule__RefinedState__Group_5__032739 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group_5__1_in_rule__RefinedState__Group_5__032742 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_95_in_rule__RefinedState__Group_5__0__Impl32770 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group_5__1__Impl_in_rule__RefinedState__Group_5__132801 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__ExitCodeAssignment_5_1_in_rule__RefinedState__Group_5__1__Impl32828 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group_6__0__Impl_in_rule__RefinedState__Group_6__032862 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group_6__1_in_rule__RefinedState__Group_6__032865 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_96_in_rule__RefinedState__Group_6__0__Impl32893 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group_6__1__Impl_in_rule__RefinedState__Group_6__132924 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__DoCodeAssignment_6_1_in_rule__RefinedState__Group_6__1__Impl32951 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group_7__0__Impl_in_rule__RefinedState__Group_7__032985 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group_7__1_in_rule__RefinedState__Group_7__032988 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_97_in_rule__RefinedState__Group_7__0__Impl33016 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__Group_7__1__Impl_in_rule__RefinedState__Group_7__133047 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedState__SubgraphAssignment_7_1_in_rule__RefinedState__Group_7__1__Impl33074 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DetailCode__Group__0__Impl_in_rule__DetailCode__Group__033108 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__DetailCode__Group__1_in_rule__DetailCode__Group__033111 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DetailCode__Group__1__Impl_in_rule__DetailCode__Group__133169 = new BitSet(new long[]{0x0000020000000100L});
+    public static final BitSet FOLLOW_rule__DetailCode__Group__2_in_rule__DetailCode__Group__133172 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DetailCode__UsedAssignment_1_in_rule__DetailCode__Group__1__Impl33199 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DetailCode__Group__2__Impl_in_rule__DetailCode__Group__233229 = new BitSet(new long[]{0x0000020000000100L});
+    public static final BitSet FOLLOW_rule__DetailCode__Group__3_in_rule__DetailCode__Group__233232 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DetailCode__LinesAssignment_2_in_rule__DetailCode__Group__2__Impl33259 = new BitSet(new long[]{0x0000000000000102L});
+    public static final BitSet FOLLOW_rule__DetailCode__Group__3__Impl_in_rule__DetailCode__Group__333290 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__DetailCode__Group__3__Impl33318 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TransitionPoint__Group__0__Impl_in_rule__TransitionPoint__Group__033357 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TransitionPoint__Group__1_in_rule__TransitionPoint__Group__033360 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TransitionPoint__HandlerAssignment_0_in_rule__TransitionPoint__Group__0__Impl33387 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TransitionPoint__Group__1__Impl_in_rule__TransitionPoint__Group__133418 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__TransitionPoint__Group__2_in_rule__TransitionPoint__Group__133421 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_99_in_rule__TransitionPoint__Group__1__Impl33449 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TransitionPoint__Group__2__Impl_in_rule__TransitionPoint__Group__233480 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TransitionPoint__NameAssignment_2_in_rule__TransitionPoint__Group__2__Impl33507 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EntryPoint__Group__0__Impl_in_rule__EntryPoint__Group__033543 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__EntryPoint__Group__1_in_rule__EntryPoint__Group__033546 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_100_in_rule__EntryPoint__Group__0__Impl33574 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EntryPoint__Group__1__Impl_in_rule__EntryPoint__Group__133605 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EntryPoint__NameAssignment_1_in_rule__EntryPoint__Group__1__Impl33632 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExitPoint__Group__0__Impl_in_rule__ExitPoint__Group__033666 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__ExitPoint__Group__1_in_rule__ExitPoint__Group__033669 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_101_in_rule__ExitPoint__Group__0__Impl33697 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExitPoint__Group__1__Impl_in_rule__ExitPoint__Group__133728 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ExitPoint__NameAssignment_1_in_rule__ExitPoint__Group__1__Impl33755 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ChoicePoint__Group__0__Impl_in_rule__ChoicePoint__Group__033789 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__ChoicePoint__Group__1_in_rule__ChoicePoint__Group__033792 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_102_in_rule__ChoicePoint__Group__0__Impl33820 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ChoicePoint__Group__1__Impl_in_rule__ChoicePoint__Group__133851 = new BitSet(new long[]{0x0400000000000000L});
+    public static final BitSet FOLLOW_rule__ChoicePoint__Group__2_in_rule__ChoicePoint__Group__133854 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ChoicePoint__NameAssignment_1_in_rule__ChoicePoint__Group__1__Impl33881 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ChoicePoint__Group__2__Impl_in_rule__ChoicePoint__Group__233911 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ChoicePoint__DocuAssignment_2_in_rule__ChoicePoint__Group__2__Impl33938 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group__0__Impl_in_rule__InitialTransition__Group__033975 = new BitSet(new long[]{0x0000040000000080L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group__1_in_rule__InitialTransition__Group__033978 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_103_in_rule__InitialTransition__Group__0__Impl34006 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group__1__Impl_in_rule__InitialTransition__Group__134037 = new BitSet(new long[]{0x0000040000000080L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group__2_in_rule__InitialTransition__Group__134040 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InitialTransition__NameAssignment_1_in_rule__InitialTransition__Group__1__Impl34067 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group__2__Impl_in_rule__InitialTransition__Group__234098 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group__3_in_rule__InitialTransition__Group__234101 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_42_in_rule__InitialTransition__Group__2__Impl34129 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group__3__Impl_in_rule__InitialTransition__Group__334160 = new BitSet(new long[]{0x0000100000000000L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group__4_in_rule__InitialTransition__Group__334163 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_104_in_rule__InitialTransition__Group__3__Impl34191 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group__4__Impl_in_rule__InitialTransition__Group__434222 = new BitSet(new long[]{0x0000000000000080L,0x0001800000000000L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group__5_in_rule__InitialTransition__Group__434225 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_44_in_rule__InitialTransition__Group__4__Impl34253 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group__5__Impl_in_rule__InitialTransition__Group__534284 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group__6_in_rule__InitialTransition__Group__534287 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InitialTransition__ToAssignment_5_in_rule__InitialTransition__Group__5__Impl34314 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group__6__Impl_in_rule__InitialTransition__Group__634344 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group__7_in_rule__InitialTransition__Group__634347 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InitialTransition__DocuAssignment_6_in_rule__InitialTransition__Group__6__Impl34374 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group__7__Impl_in_rule__InitialTransition__Group__734405 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group_7__0_in_rule__InitialTransition__Group__7__Impl34432 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group_7__0__Impl_in_rule__InitialTransition__Group_7__034479 = new BitSet(new long[]{0x0000020000000000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group_7__1_in_rule__InitialTransition__Group_7__034482 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__InitialTransition__Group_7__0__Impl34510 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group_7__1__Impl_in_rule__InitialTransition__Group_7__134541 = new BitSet(new long[]{0x0000020000000000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group_7__2_in_rule__InitialTransition__Group_7__134544 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group_7_1__0_in_rule__InitialTransition__Group_7__1__Impl34571 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group_7__2__Impl_in_rule__InitialTransition__Group_7__234602 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__InitialTransition__Group_7__2__Impl34630 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group_7_1__0__Impl_in_rule__InitialTransition__Group_7_1__034667 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group_7_1__1_in_rule__InitialTransition__Group_7_1__034670 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_105_in_rule__InitialTransition__Group_7_1__0__Impl34698 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InitialTransition__Group_7_1__1__Impl_in_rule__InitialTransition__Group_7_1__134729 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InitialTransition__ActionAssignment_7_1_1_in_rule__InitialTransition__Group_7_1__1__Impl34756 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__0__Impl_in_rule__ContinuationTransition__Group__034790 = new BitSet(new long[]{0x0000040000000080L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__1_in_rule__ContinuationTransition__Group__034793 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_103_in_rule__ContinuationTransition__Group__0__Impl34821 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__1__Impl_in_rule__ContinuationTransition__Group__134852 = new BitSet(new long[]{0x0000040000000080L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__2_in_rule__ContinuationTransition__Group__134855 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__NameAssignment_1_in_rule__ContinuationTransition__Group__1__Impl34882 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__2__Impl_in_rule__ContinuationTransition__Group__234913 = new BitSet(new long[]{0x0000000000000080L,0x0001800000000000L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__3_in_rule__ContinuationTransition__Group__234916 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_42_in_rule__ContinuationTransition__Group__2__Impl34944 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__3__Impl_in_rule__ContinuationTransition__Group__334975 = new BitSet(new long[]{0x0000100000000000L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__4_in_rule__ContinuationTransition__Group__334978 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__FromAssignment_3_in_rule__ContinuationTransition__Group__3__Impl35005 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__4__Impl_in_rule__ContinuationTransition__Group__435035 = new BitSet(new long[]{0x0000000000000080L,0x0001800000000000L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__5_in_rule__ContinuationTransition__Group__435038 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_44_in_rule__ContinuationTransition__Group__4__Impl35066 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__5__Impl_in_rule__ContinuationTransition__Group__535097 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__6_in_rule__ContinuationTransition__Group__535100 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__ToAssignment_5_in_rule__ContinuationTransition__Group__5__Impl35127 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__6__Impl_in_rule__ContinuationTransition__Group__635157 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__7_in_rule__ContinuationTransition__Group__635160 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__DocuAssignment_6_in_rule__ContinuationTransition__Group__6__Impl35187 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group__7__Impl_in_rule__ContinuationTransition__Group__735218 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group_7__0_in_rule__ContinuationTransition__Group__7__Impl35245 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group_7__0__Impl_in_rule__ContinuationTransition__Group_7__035292 = new BitSet(new long[]{0x0000020000000000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group_7__1_in_rule__ContinuationTransition__Group_7__035295 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__ContinuationTransition__Group_7__0__Impl35323 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group_7__1__Impl_in_rule__ContinuationTransition__Group_7__135354 = new BitSet(new long[]{0x0000020000000000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group_7__2_in_rule__ContinuationTransition__Group_7__135357 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group_7_1__0_in_rule__ContinuationTransition__Group_7__1__Impl35384 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group_7__2__Impl_in_rule__ContinuationTransition__Group_7__235415 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__ContinuationTransition__Group_7__2__Impl35443 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group_7_1__0__Impl_in_rule__ContinuationTransition__Group_7_1__035480 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group_7_1__1_in_rule__ContinuationTransition__Group_7_1__035483 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_105_in_rule__ContinuationTransition__Group_7_1__0__Impl35511 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__Group_7_1__1__Impl_in_rule__ContinuationTransition__Group_7_1__135542 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ContinuationTransition__ActionAssignment_7_1_1_in_rule__ContinuationTransition__Group_7_1__1__Impl35569 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__0__Impl_in_rule__TriggeredTransition__Group__035603 = new BitSet(new long[]{0x0000040000000080L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__1_in_rule__TriggeredTransition__Group__035606 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_103_in_rule__TriggeredTransition__Group__0__Impl35634 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__1__Impl_in_rule__TriggeredTransition__Group__135665 = new BitSet(new long[]{0x0000040000000080L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__2_in_rule__TriggeredTransition__Group__135668 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__NameAssignment_1_in_rule__TriggeredTransition__Group__1__Impl35695 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__2__Impl_in_rule__TriggeredTransition__Group__235726 = new BitSet(new long[]{0x0000000000000080L,0x0001800000000000L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__3_in_rule__TriggeredTransition__Group__235729 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_42_in_rule__TriggeredTransition__Group__2__Impl35757 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__3__Impl_in_rule__TriggeredTransition__Group__335788 = new BitSet(new long[]{0x0000100000000000L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__4_in_rule__TriggeredTransition__Group__335791 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__FromAssignment_3_in_rule__TriggeredTransition__Group__3__Impl35818 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__4__Impl_in_rule__TriggeredTransition__Group__435848 = new BitSet(new long[]{0x0000000000000080L,0x0001800000000000L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__5_in_rule__TriggeredTransition__Group__435851 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_44_in_rule__TriggeredTransition__Group__4__Impl35879 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__5__Impl_in_rule__TriggeredTransition__Group__535910 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__6_in_rule__TriggeredTransition__Group__535913 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__ToAssignment_5_in_rule__TriggeredTransition__Group__5__Impl35940 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__6__Impl_in_rule__TriggeredTransition__Group__635970 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__7_in_rule__TriggeredTransition__Group__635973 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__DocuAssignment_6_in_rule__TriggeredTransition__Group__6__Impl36000 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__7__Impl_in_rule__TriggeredTransition__Group__736031 = new BitSet(new long[]{0x0000000000000000L,0x0000040000000000L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__8_in_rule__TriggeredTransition__Group__736034 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__TriggeredTransition__Group__7__Impl36062 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__8__Impl_in_rule__TriggeredTransition__Group__836093 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__9_in_rule__TriggeredTransition__Group__836096 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_106_in_rule__TriggeredTransition__Group__8__Impl36124 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__9__Impl_in_rule__TriggeredTransition__Group__936155 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__10_in_rule__TriggeredTransition__Group__936158 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__TriggeredTransition__Group__9__Impl36186 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__10__Impl_in_rule__TriggeredTransition__Group__1036217 = new BitSet(new long[]{0x0000020000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__11_in_rule__TriggeredTransition__Group__1036220 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__TriggersAssignment_10_in_rule__TriggeredTransition__Group__10__Impl36247 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__11__Impl_in_rule__TriggeredTransition__Group__1136277 = new BitSet(new long[]{0x0000020000000000L,0x0000080000000000L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__12_in_rule__TriggeredTransition__Group__1136280 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group_11__0_in_rule__TriggeredTransition__Group__11__Impl36307 = new BitSet(new long[]{0x0000000000000002L,0x0000080000000000L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__12__Impl_in_rule__TriggeredTransition__Group__1236338 = new BitSet(new long[]{0x0000020000000000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__13_in_rule__TriggeredTransition__Group__1236341 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__TriggeredTransition__Group__12__Impl36369 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__13__Impl_in_rule__TriggeredTransition__Group__1336400 = new BitSet(new long[]{0x0000020000000000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__14_in_rule__TriggeredTransition__Group__1336403 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group_13__0_in_rule__TriggeredTransition__Group__13__Impl36430 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group__14__Impl_in_rule__TriggeredTransition__Group__1436461 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__TriggeredTransition__Group__14__Impl36489 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group_11__0__Impl_in_rule__TriggeredTransition__Group_11__036550 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group_11__1_in_rule__TriggeredTransition__Group_11__036553 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_107_in_rule__TriggeredTransition__Group_11__0__Impl36581 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group_11__1__Impl_in_rule__TriggeredTransition__Group_11__136612 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__TriggersAssignment_11_1_in_rule__TriggeredTransition__Group_11__1__Impl36639 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group_13__0__Impl_in_rule__TriggeredTransition__Group_13__036673 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group_13__1_in_rule__TriggeredTransition__Group_13__036676 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_105_in_rule__TriggeredTransition__Group_13__0__Impl36704 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__Group_13__1__Impl_in_rule__TriggeredTransition__Group_13__136735 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TriggeredTransition__ActionAssignment_13_1_in_rule__TriggeredTransition__Group_13__1__Impl36762 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group__0__Impl_in_rule__GuardedTransition__Group__036796 = new BitSet(new long[]{0x0000040000000080L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group__1_in_rule__GuardedTransition__Group__036799 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_103_in_rule__GuardedTransition__Group__0__Impl36827 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group__1__Impl_in_rule__GuardedTransition__Group__136858 = new BitSet(new long[]{0x0000040000000080L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group__2_in_rule__GuardedTransition__Group__136861 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__NameAssignment_1_in_rule__GuardedTransition__Group__1__Impl36888 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group__2__Impl_in_rule__GuardedTransition__Group__236919 = new BitSet(new long[]{0x0000000000000080L,0x0001800000000000L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group__3_in_rule__GuardedTransition__Group__236922 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_42_in_rule__GuardedTransition__Group__2__Impl36950 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group__3__Impl_in_rule__GuardedTransition__Group__336981 = new BitSet(new long[]{0x0000100000000000L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group__4_in_rule__GuardedTransition__Group__336984 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__FromAssignment_3_in_rule__GuardedTransition__Group__3__Impl37011 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group__4__Impl_in_rule__GuardedTransition__Group__437041 = new BitSet(new long[]{0x0000000000000080L,0x0001800000000000L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group__5_in_rule__GuardedTransition__Group__437044 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_44_in_rule__GuardedTransition__Group__4__Impl37072 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group__5__Impl_in_rule__GuardedTransition__Group__537103 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group__6_in_rule__GuardedTransition__Group__537106 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__ToAssignment_5_in_rule__GuardedTransition__Group__5__Impl37133 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group__6__Impl_in_rule__GuardedTransition__Group__637163 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group__7_in_rule__GuardedTransition__Group__637166 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__DocuAssignment_6_in_rule__GuardedTransition__Group__6__Impl37193 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group__7__Impl_in_rule__GuardedTransition__Group__737224 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group__8_in_rule__GuardedTransition__Group__737227 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__GuardedTransition__Group__7__Impl37255 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group__8__Impl_in_rule__GuardedTransition__Group__837286 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group__9_in_rule__GuardedTransition__Group__837289 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_108_in_rule__GuardedTransition__Group__8__Impl37317 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group__9__Impl_in_rule__GuardedTransition__Group__937348 = new BitSet(new long[]{0x0000020000000000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group__10_in_rule__GuardedTransition__Group__937351 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__GuardAssignment_9_in_rule__GuardedTransition__Group__9__Impl37378 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group__10__Impl_in_rule__GuardedTransition__Group__1037408 = new BitSet(new long[]{0x0000020000000000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group__11_in_rule__GuardedTransition__Group__1037411 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group_10__0_in_rule__GuardedTransition__Group__10__Impl37438 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group__11__Impl_in_rule__GuardedTransition__Group__1137469 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__GuardedTransition__Group__11__Impl37497 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group_10__0__Impl_in_rule__GuardedTransition__Group_10__037552 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group_10__1_in_rule__GuardedTransition__Group_10__037555 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_105_in_rule__GuardedTransition__Group_10__0__Impl37583 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__Group_10__1__Impl_in_rule__GuardedTransition__Group_10__137614 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__GuardedTransition__ActionAssignment_10_1_in_rule__GuardedTransition__Group_10__1__Impl37641 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__0__Impl_in_rule__CPBranchTransition__Group__037675 = new BitSet(new long[]{0x0000040000000080L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__1_in_rule__CPBranchTransition__Group__037678 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_103_in_rule__CPBranchTransition__Group__0__Impl37706 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__1__Impl_in_rule__CPBranchTransition__Group__137737 = new BitSet(new long[]{0x0000040000000080L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__2_in_rule__CPBranchTransition__Group__137740 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__NameAssignment_1_in_rule__CPBranchTransition__Group__1__Impl37767 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__2__Impl_in_rule__CPBranchTransition__Group__237798 = new BitSet(new long[]{0x0000000000000080L,0x0001800000000000L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__3_in_rule__CPBranchTransition__Group__237801 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_42_in_rule__CPBranchTransition__Group__2__Impl37829 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__3__Impl_in_rule__CPBranchTransition__Group__337860 = new BitSet(new long[]{0x0000100000000000L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__4_in_rule__CPBranchTransition__Group__337863 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__FromAssignment_3_in_rule__CPBranchTransition__Group__3__Impl37890 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__4__Impl_in_rule__CPBranchTransition__Group__437920 = new BitSet(new long[]{0x0000000000000080L,0x0001800000000000L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__5_in_rule__CPBranchTransition__Group__437923 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_44_in_rule__CPBranchTransition__Group__4__Impl37951 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__5__Impl_in_rule__CPBranchTransition__Group__537982 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__6_in_rule__CPBranchTransition__Group__537985 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__ToAssignment_5_in_rule__CPBranchTransition__Group__5__Impl38012 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__6__Impl_in_rule__CPBranchTransition__Group__638042 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__7_in_rule__CPBranchTransition__Group__638045 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__DocuAssignment_6_in_rule__CPBranchTransition__Group__6__Impl38072 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__7__Impl_in_rule__CPBranchTransition__Group__738103 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__8_in_rule__CPBranchTransition__Group__738106 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__CPBranchTransition__Group__7__Impl38134 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__8__Impl_in_rule__CPBranchTransition__Group__838165 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__9_in_rule__CPBranchTransition__Group__838168 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_109_in_rule__CPBranchTransition__Group__8__Impl38196 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__9__Impl_in_rule__CPBranchTransition__Group__938227 = new BitSet(new long[]{0x0000020000000000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__10_in_rule__CPBranchTransition__Group__938230 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__ConditionAssignment_9_in_rule__CPBranchTransition__Group__9__Impl38257 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__10__Impl_in_rule__CPBranchTransition__Group__1038287 = new BitSet(new long[]{0x0000020000000000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__11_in_rule__CPBranchTransition__Group__1038290 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group_10__0_in_rule__CPBranchTransition__Group__10__Impl38317 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group__11__Impl_in_rule__CPBranchTransition__Group__1138348 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__CPBranchTransition__Group__11__Impl38376 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group_10__0__Impl_in_rule__CPBranchTransition__Group_10__038431 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group_10__1_in_rule__CPBranchTransition__Group_10__038434 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_105_in_rule__CPBranchTransition__Group_10__0__Impl38462 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__Group_10__1__Impl_in_rule__CPBranchTransition__Group_10__138493 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__CPBranchTransition__ActionAssignment_10_1_in_rule__CPBranchTransition__Group_10__1__Impl38520 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedTransition__Group__0__Impl_in_rule__RefinedTransition__Group__038554 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__RefinedTransition__Group__1_in_rule__RefinedTransition__Group__038557 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_110_in_rule__RefinedTransition__Group__0__Impl38585 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedTransition__Group__1__Impl_in_rule__RefinedTransition__Group__138616 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__RefinedTransition__Group__2_in_rule__RefinedTransition__Group__138619 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedTransition__TargetAssignment_1_in_rule__RefinedTransition__Group__1__Impl38646 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedTransition__Group__2__Impl_in_rule__RefinedTransition__Group__238676 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__RefinedTransition__Group__3_in_rule__RefinedTransition__Group__238679 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedTransition__DocuAssignment_2_in_rule__RefinedTransition__Group__2__Impl38706 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedTransition__Group__3__Impl_in_rule__RefinedTransition__Group__338737 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_rule__RefinedTransition__Group__4_in_rule__RefinedTransition__Group__338740 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__RefinedTransition__Group__3__Impl38768 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedTransition__Group__4__Impl_in_rule__RefinedTransition__Group__438799 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__RefinedTransition__Group__5_in_rule__RefinedTransition__Group__438802 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_105_in_rule__RefinedTransition__Group__4__Impl38830 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedTransition__Group__5__Impl_in_rule__RefinedTransition__Group__538861 = new BitSet(new long[]{0x0000020000000000L});
+    public static final BitSet FOLLOW_rule__RefinedTransition__Group__6_in_rule__RefinedTransition__Group__538864 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedTransition__ActionAssignment_5_in_rule__RefinedTransition__Group__5__Impl38891 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RefinedTransition__Group__6__Impl_in_rule__RefinedTransition__Group__638921 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__RefinedTransition__Group__6__Impl38949 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TrPointTerminal__Group__0__Impl_in_rule__TrPointTerminal__Group__038994 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__TrPointTerminal__Group__1_in_rule__TrPointTerminal__Group__038997 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_111_in_rule__TrPointTerminal__Group__0__Impl39025 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TrPointTerminal__Group__1__Impl_in_rule__TrPointTerminal__Group__139056 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__TrPointTerminal__TrPointAssignment_1_in_rule__TrPointTerminal__Group__1__Impl39083 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubStateTrPointTerminal__Group__0__Impl_in_rule__SubStateTrPointTerminal__Group__039117 = new BitSet(new long[]{0x0002000000000000L});
+    public static final BitSet FOLLOW_rule__SubStateTrPointTerminal__Group__1_in_rule__SubStateTrPointTerminal__Group__039120 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubStateTrPointTerminal__TrPointAssignment_0_in_rule__SubStateTrPointTerminal__Group__0__Impl39147 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubStateTrPointTerminal__Group__1__Impl_in_rule__SubStateTrPointTerminal__Group__139177 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__SubStateTrPointTerminal__Group__2_in_rule__SubStateTrPointTerminal__Group__139180 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_49_in_rule__SubStateTrPointTerminal__Group__1__Impl39208 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubStateTrPointTerminal__Group__2__Impl_in_rule__SubStateTrPointTerminal__Group__239239 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SubStateTrPointTerminal__StateAssignment_2_in_rule__SubStateTrPointTerminal__Group__2__Impl39266 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ChoicepointTerminal__Group__0__Impl_in_rule__ChoicepointTerminal__Group__039302 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__ChoicepointTerminal__Group__1_in_rule__ChoicepointTerminal__Group__039305 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_112_in_rule__ChoicepointTerminal__Group__0__Impl39333 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ChoicepointTerminal__Group__1__Impl_in_rule__ChoicepointTerminal__Group__139364 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ChoicepointTerminal__CpAssignment_1_in_rule__ChoicepointTerminal__Group__1__Impl39391 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Trigger__Group__0__Impl_in_rule__Trigger__Group__039425 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__Trigger__Group__1_in_rule__Trigger__Group__039428 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_113_in_rule__Trigger__Group__0__Impl39456 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Trigger__Group__1__Impl_in_rule__Trigger__Group__139487 = new BitSet(new long[]{0x0000000000000000L,0x000C100000000000L});
+    public static final BitSet FOLLOW_rule__Trigger__Group__2_in_rule__Trigger__Group__139490 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Trigger__MsgFromIfPairsAssignment_1_in_rule__Trigger__Group__1__Impl39517 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Trigger__Group__2__Impl_in_rule__Trigger__Group__239547 = new BitSet(new long[]{0x0000000000000000L,0x000C100000000000L});
+    public static final BitSet FOLLOW_rule__Trigger__Group__3_in_rule__Trigger__Group__239550 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Trigger__Group_2__0_in_rule__Trigger__Group__2__Impl39577 = new BitSet(new long[]{0x0000000000000002L,0x0008000000000000L});
+    public static final BitSet FOLLOW_rule__Trigger__Group__3__Impl_in_rule__Trigger__Group__339608 = new BitSet(new long[]{0x0000000000000000L,0x000C100000000000L});
+    public static final BitSet FOLLOW_rule__Trigger__Group__4_in_rule__Trigger__Group__339611 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Trigger__GuardAssignment_3_in_rule__Trigger__Group__3__Impl39638 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Trigger__Group__4__Impl_in_rule__Trigger__Group__439669 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_114_in_rule__Trigger__Group__4__Impl39697 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Trigger__Group_2__0__Impl_in_rule__Trigger__Group_2__039738 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__Trigger__Group_2__1_in_rule__Trigger__Group_2__039741 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_115_in_rule__Trigger__Group_2__0__Impl39769 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Trigger__Group_2__1__Impl_in_rule__Trigger__Group_2__139800 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Trigger__MsgFromIfPairsAssignment_2_1_in_rule__Trigger__Group_2__1__Impl39827 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__MessageFromIf__Group__0__Impl_in_rule__MessageFromIf__Group__039861 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_rule__MessageFromIf__Group__1_in_rule__MessageFromIf__Group__039864 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__MessageFromIf__MessageAssignment_0_in_rule__MessageFromIf__Group__0__Impl39891 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__MessageFromIf__Group__1__Impl_in_rule__MessageFromIf__Group__139921 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__MessageFromIf__Group__2_in_rule__MessageFromIf__Group__139924 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_42_in_rule__MessageFromIf__Group__1__Impl39952 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__MessageFromIf__Group__2__Impl_in_rule__MessageFromIf__Group__239983 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__MessageFromIf__FromAssignment_2_in_rule__MessageFromIf__Group__2__Impl40010 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Guard__Group__0__Impl_in_rule__Guard__Group__040046 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__Guard__Group__1_in_rule__Guard__Group__040049 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_108_in_rule__Guard__Group__0__Impl40077 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Guard__Group__1__Impl_in_rule__Guard__Group__140108 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Guard__GuardAssignment_1_in_rule__Guard__Group__1__Impl40135 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolSemantics__Group__0__Impl_in_rule__ProtocolSemantics__Group__040169 = new BitSet(new long[]{0x0000000000000000L,0x0010000000000000L});
+    public static final BitSet FOLLOW_rule__ProtocolSemantics__Group__1_in_rule__ProtocolSemantics__Group__040172 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolSemantics__Group__1__Impl_in_rule__ProtocolSemantics__Group__140230 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__ProtocolSemantics__Group__2_in_rule__ProtocolSemantics__Group__140233 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_116_in_rule__ProtocolSemantics__Group__1__Impl40261 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolSemantics__Group__2__Impl_in_rule__ProtocolSemantics__Group__240292 = new BitSet(new long[]{0x0000020000000000L,0x0060000000000000L});
+    public static final BitSet FOLLOW_rule__ProtocolSemantics__Group__3_in_rule__ProtocolSemantics__Group__240295 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__ProtocolSemantics__Group__2__Impl40323 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolSemantics__Group__3__Impl_in_rule__ProtocolSemantics__Group__340354 = new BitSet(new long[]{0x0000020000000000L,0x0060000000000000L});
+    public static final BitSet FOLLOW_rule__ProtocolSemantics__Group__4_in_rule__ProtocolSemantics__Group__340357 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ProtocolSemantics__RulesAssignment_3_in_rule__ProtocolSemantics__Group__3__Impl40384 = new BitSet(new long[]{0x0000000000000002L,0x0060000000000000L});
+    public static final BitSet FOLLOW_rule__ProtocolSemantics__Group__4__Impl_in_rule__ProtocolSemantics__Group__440415 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__ProtocolSemantics__Group__4__Impl40443 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Group__0__Impl_in_rule__InSemanticsRule__Group__040484 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Group__1_in_rule__InSemanticsRule__Group__040487 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_117_in_rule__InSemanticsRule__Group__0__Impl40515 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Group__1__Impl_in_rule__InSemanticsRule__Group__140546 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Group__2_in_rule__InSemanticsRule__Group__140549 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_42_in_rule__InSemanticsRule__Group__1__Impl40577 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Group__2__Impl_in_rule__InSemanticsRule__Group__240608 = new BitSet(new long[]{0x0000100000000000L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Group__3_in_rule__InSemanticsRule__Group__240611 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__MsgAssignment_2_in_rule__InSemanticsRule__Group__2__Impl40638 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Group__3__Impl_in_rule__InSemanticsRule__Group__340668 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3__0_in_rule__InSemanticsRule__Group__3__Impl40695 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3__0__Impl_in_rule__InSemanticsRule__Group_3__040734 = new BitSet(new long[]{0x0000400000000000L,0x0060000000000000L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3__1_in_rule__InSemanticsRule__Group_3__040737 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_44_in_rule__InSemanticsRule__Group_3__0__Impl40765 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3__1__Impl_in_rule__InSemanticsRule__Group_3__140796 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Alternatives_3_1_in_rule__InSemanticsRule__Group_3__1__Impl40823 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1__0__Impl_in_rule__InSemanticsRule__Group_3_1_1__040857 = new BitSet(new long[]{0x0000000000000000L,0x0060000000000000L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1__1_in_rule__InSemanticsRule__Group_3_1_1__040860 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_46_in_rule__InSemanticsRule__Group_3_1_1__0__Impl40888 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1__1__Impl_in_rule__InSemanticsRule__Group_3_1_1__140919 = new BitSet(new long[]{0x0004000000000000L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1__2_in_rule__InSemanticsRule__Group_3_1_1__140922 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__FollowUpsAssignment_3_1_1_1_in_rule__InSemanticsRule__Group_3_1_1__1__Impl40949 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1__2__Impl_in_rule__InSemanticsRule__Group_3_1_1__240979 = new BitSet(new long[]{0x0000800000000000L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1__3_in_rule__InSemanticsRule__Group_3_1_1__240982 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1_2__0_in_rule__InSemanticsRule__Group_3_1_1__2__Impl41011 = new BitSet(new long[]{0x0004000000000002L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1_2__0_in_rule__InSemanticsRule__Group_3_1_1__2__Impl41023 = new BitSet(new long[]{0x0004000000000002L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1__3__Impl_in_rule__InSemanticsRule__Group_3_1_1__341056 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_47_in_rule__InSemanticsRule__Group_3_1_1__3__Impl41084 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1_2__0__Impl_in_rule__InSemanticsRule__Group_3_1_1_2__041123 = new BitSet(new long[]{0x0000000000000000L,0x0060000000000000L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1_2__1_in_rule__InSemanticsRule__Group_3_1_1_2__041126 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_50_in_rule__InSemanticsRule__Group_3_1_1_2__0__Impl41154 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__Group_3_1_1_2__1__Impl_in_rule__InSemanticsRule__Group_3_1_1_2__141185 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__InSemanticsRule__FollowUpsAssignment_3_1_1_2_1_in_rule__InSemanticsRule__Group_3_1_1_2__1__Impl41212 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group__0__Impl_in_rule__OutSemanticsRule__Group__041246 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group__1_in_rule__OutSemanticsRule__Group__041249 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_118_in_rule__OutSemanticsRule__Group__0__Impl41277 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group__1__Impl_in_rule__OutSemanticsRule__Group__141308 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group__2_in_rule__OutSemanticsRule__Group__141311 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_42_in_rule__OutSemanticsRule__Group__1__Impl41339 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group__2__Impl_in_rule__OutSemanticsRule__Group__241370 = new BitSet(new long[]{0x0000100000000000L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group__3_in_rule__OutSemanticsRule__Group__241373 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__MsgAssignment_2_in_rule__OutSemanticsRule__Group__2__Impl41400 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group__3__Impl_in_rule__OutSemanticsRule__Group__341430 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3__0_in_rule__OutSemanticsRule__Group__3__Impl41457 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3__0__Impl_in_rule__OutSemanticsRule__Group_3__041496 = new BitSet(new long[]{0x0000400000000000L,0x0060000000000000L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3__1_in_rule__OutSemanticsRule__Group_3__041499 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_44_in_rule__OutSemanticsRule__Group_3__0__Impl41527 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3__1__Impl_in_rule__OutSemanticsRule__Group_3__141558 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Alternatives_3_1_in_rule__OutSemanticsRule__Group_3__1__Impl41585 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1__0__Impl_in_rule__OutSemanticsRule__Group_3_1_1__041619 = new BitSet(new long[]{0x0000000000000000L,0x0060000000000000L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1__1_in_rule__OutSemanticsRule__Group_3_1_1__041622 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_46_in_rule__OutSemanticsRule__Group_3_1_1__0__Impl41650 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1__1__Impl_in_rule__OutSemanticsRule__Group_3_1_1__141681 = new BitSet(new long[]{0x0004000000000000L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1__2_in_rule__OutSemanticsRule__Group_3_1_1__141684 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__FollowUpsAssignment_3_1_1_1_in_rule__OutSemanticsRule__Group_3_1_1__1__Impl41711 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1__2__Impl_in_rule__OutSemanticsRule__Group_3_1_1__241741 = new BitSet(new long[]{0x0000800000000000L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1__3_in_rule__OutSemanticsRule__Group_3_1_1__241744 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1_2__0_in_rule__OutSemanticsRule__Group_3_1_1__2__Impl41773 = new BitSet(new long[]{0x0004000000000002L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1_2__0_in_rule__OutSemanticsRule__Group_3_1_1__2__Impl41785 = new BitSet(new long[]{0x0004000000000002L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1__3__Impl_in_rule__OutSemanticsRule__Group_3_1_1__341818 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_47_in_rule__OutSemanticsRule__Group_3_1_1__3__Impl41846 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1_2__0__Impl_in_rule__OutSemanticsRule__Group_3_1_1_2__041885 = new BitSet(new long[]{0x0000000000000000L,0x0060000000000000L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1_2__1_in_rule__OutSemanticsRule__Group_3_1_1_2__041888 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_50_in_rule__OutSemanticsRule__Group_3_1_1_2__0__Impl41916 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__Group_3_1_1_2__1__Impl_in_rule__OutSemanticsRule__Group_3_1_1_2__141947 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__OutSemanticsRule__FollowUpsAssignment_3_1_1_2_1_in_rule__OutSemanticsRule__Group_3_1_1_2__1__Impl41974 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Annotation__Group__0__Impl_in_rule__Annotation__Group__042008 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__Annotation__Group__1_in_rule__Annotation__Group__042011 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_119_in_rule__Annotation__Group__0__Impl42039 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Annotation__Group__1__Impl_in_rule__Annotation__Group__142070 = new BitSet(new long[]{0x0000400000000000L});
+    public static final BitSet FOLLOW_rule__Annotation__Group__2_in_rule__Annotation__Group__142073 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Annotation__TypeAssignment_1_in_rule__Annotation__Group__1__Impl42100 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Annotation__Group__2__Impl_in_rule__Annotation__Group__242130 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Annotation__Group_2__0_in_rule__Annotation__Group__2__Impl42157 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Annotation__Group_2__0__Impl_in_rule__Annotation__Group_2__042194 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__Annotation__Group_2__1_in_rule__Annotation__Group_2__042197 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_46_in_rule__Annotation__Group_2__0__Impl42225 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Annotation__Group_2__1__Impl_in_rule__Annotation__Group_2__142256 = new BitSet(new long[]{0x0004800000000000L});
+    public static final BitSet FOLLOW_rule__Annotation__Group_2__2_in_rule__Annotation__Group_2__142259 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Annotation__AttributesAssignment_2_1_in_rule__Annotation__Group_2__1__Impl42286 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Annotation__Group_2__2__Impl_in_rule__Annotation__Group_2__242316 = new BitSet(new long[]{0x0004800000000000L});
+    public static final BitSet FOLLOW_rule__Annotation__Group_2__3_in_rule__Annotation__Group_2__242319 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Annotation__Group_2_2__0_in_rule__Annotation__Group_2__2__Impl42346 = new BitSet(new long[]{0x0004000000000002L});
+    public static final BitSet FOLLOW_rule__Annotation__Group_2__3__Impl_in_rule__Annotation__Group_2__342377 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_47_in_rule__Annotation__Group_2__3__Impl42405 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Annotation__Group_2_2__0__Impl_in_rule__Annotation__Group_2_2__042444 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__Annotation__Group_2_2__1_in_rule__Annotation__Group_2_2__042447 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_50_in_rule__Annotation__Group_2_2__0__Impl42475 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Annotation__Group_2_2__1__Impl_in_rule__Annotation__Group_2_2__142506 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Annotation__AttributesAssignment_2_2_1_in_rule__Annotation__Group_2_2__1__Impl42533 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__KeyValue__Group__0__Impl_in_rule__KeyValue__Group__042567 = new BitSet(new long[]{0x0008000000000000L});
+    public static final BitSet FOLLOW_rule__KeyValue__Group__1_in_rule__KeyValue__Group__042570 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__KeyValue__KeyAssignment_0_in_rule__KeyValue__Group__0__Impl42597 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__KeyValue__Group__1__Impl_in_rule__KeyValue__Group__142627 = new BitSet(new long[]{0x000000001C000130L,0x0000000000200000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_rule__KeyValue__Group__2_in_rule__KeyValue__Group__142630 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_51_in_rule__KeyValue__Group__1__Impl42658 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__KeyValue__Group__2__Impl_in_rule__KeyValue__Group__242689 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__KeyValue__ValueAssignment_2_in_rule__KeyValue__Group__2__Impl42716 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group__0__Impl_in_rule__AnnotationType__Group__042752 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group__1_in_rule__AnnotationType__Group__042755 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_120_in_rule__AnnotationType__Group__0__Impl42783 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group__1__Impl_in_rule__AnnotationType__Group__142814 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group__2_in_rule__AnnotationType__Group__142817 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__AnnotationType__NameAssignment_1_in_rule__AnnotationType__Group__1__Impl42844 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group__2__Impl_in_rule__AnnotationType__Group__242874 = new BitSet(new long[]{0x0400010000000000L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group__3_in_rule__AnnotationType__Group__242877 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__AnnotationType__DocuAssignment_2_in_rule__AnnotationType__Group__2__Impl42904 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group__3__Impl_in_rule__AnnotationType__Group__342935 = new BitSet(new long[]{0x0000000000000000L,0x0200000000000000L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group__4_in_rule__AnnotationType__Group__342938 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__AnnotationType__Group__3__Impl42966 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group__4__Impl_in_rule__AnnotationType__Group__442997 = new BitSet(new long[]{0x0008000000000000L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group__5_in_rule__AnnotationType__Group__443000 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_121_in_rule__AnnotationType__Group__4__Impl43028 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group__5__Impl_in_rule__AnnotationType__Group__543059 = new BitSet(new long[]{0x0000010000FE0000L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group__6_in_rule__AnnotationType__Group__543062 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_51_in_rule__AnnotationType__Group__5__Impl43090 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group__6__Impl_in_rule__AnnotationType__Group__643121 = new BitSet(new long[]{0x0000020201000000L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group__7_in_rule__AnnotationType__Group__643124 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Alternatives_6_in_rule__AnnotationType__Group__6__Impl43151 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group__7__Impl_in_rule__AnnotationType__Group__743181 = new BitSet(new long[]{0x0000020201000000L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group__8_in_rule__AnnotationType__Group__743184 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__AnnotationType__AttributesAssignment_7_in_rule__AnnotationType__Group__7__Impl43211 = new BitSet(new long[]{0x0000000201000002L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group__8__Impl_in_rule__AnnotationType__Group__843242 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__AnnotationType__Group__8__Impl43270 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group_6_1__0__Impl_in_rule__AnnotationType__Group_6_1__043319 = new BitSet(new long[]{0x0000000000FE0000L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group_6_1__1_in_rule__AnnotationType__Group_6_1__043322 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__AnnotationType__Group_6_1__0__Impl43350 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group_6_1__1__Impl_in_rule__AnnotationType__Group_6_1__143381 = new BitSet(new long[]{0x0004020000000000L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group_6_1__2_in_rule__AnnotationType__Group_6_1__143384 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__AnnotationType__TargetsAssignment_6_1_1_in_rule__AnnotationType__Group_6_1__1__Impl43411 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group_6_1__2__Impl_in_rule__AnnotationType__Group_6_1__243441 = new BitSet(new long[]{0x0004020000000000L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group_6_1__3_in_rule__AnnotationType__Group_6_1__243444 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group_6_1_2__0_in_rule__AnnotationType__Group_6_1__2__Impl43471 = new BitSet(new long[]{0x0004000000000002L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group_6_1__3__Impl_in_rule__AnnotationType__Group_6_1__343502 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__AnnotationType__Group_6_1__3__Impl43530 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group_6_1_2__0__Impl_in_rule__AnnotationType__Group_6_1_2__043569 = new BitSet(new long[]{0x0000000000FE0000L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group_6_1_2__1_in_rule__AnnotationType__Group_6_1_2__043572 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_50_in_rule__AnnotationType__Group_6_1_2__0__Impl43600 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__AnnotationType__Group_6_1_2__1__Impl_in_rule__AnnotationType__Group_6_1_2__143631 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__AnnotationType__TargetsAssignment_6_1_2_1_in_rule__AnnotationType__Group_6_1_2__1__Impl43658 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__Group__0__Impl_in_rule__SimpleAnnotationAttribute__Group__043692 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
+    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__Group__1_in_rule__SimpleAnnotationAttribute__Group__043695 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__Alternatives_0_in_rule__SimpleAnnotationAttribute__Group__0__Impl43722 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__Group__1__Impl_in_rule__SimpleAnnotationAttribute__Group__143752 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__Group__2_in_rule__SimpleAnnotationAttribute__Group__143755 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_122_in_rule__SimpleAnnotationAttribute__Group__1__Impl43783 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__Group__2__Impl_in_rule__SimpleAnnotationAttribute__Group__243814 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__Group__3_in_rule__SimpleAnnotationAttribute__Group__243817 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__NameAssignment_2_in_rule__SimpleAnnotationAttribute__Group__2__Impl43844 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__Group__3__Impl_in_rule__SimpleAnnotationAttribute__Group__343874 = new BitSet(new long[]{0x0000007800000000L});
+    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__Group__4_in_rule__SimpleAnnotationAttribute__Group__343877 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_42_in_rule__SimpleAnnotationAttribute__Group__3__Impl43905 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__Group__4__Impl_in_rule__SimpleAnnotationAttribute__Group__443936 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SimpleAnnotationAttribute__TypeAssignment_4_in_rule__SimpleAnnotationAttribute__Group__4__Impl43963 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__0__Impl_in_rule__EnumAnnotationAttribute__Group__044003 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
+    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__1_in_rule__EnumAnnotationAttribute__Group__044006 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Alternatives_0_in_rule__EnumAnnotationAttribute__Group__0__Impl44033 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__1__Impl_in_rule__EnumAnnotationAttribute__Group__144063 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__2_in_rule__EnumAnnotationAttribute__Group__144066 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_122_in_rule__EnumAnnotationAttribute__Group__1__Impl44094 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__2__Impl_in_rule__EnumAnnotationAttribute__Group__244125 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__3_in_rule__EnumAnnotationAttribute__Group__244128 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__NameAssignment_2_in_rule__EnumAnnotationAttribute__Group__2__Impl44155 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__3__Impl_in_rule__EnumAnnotationAttribute__Group__344185 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__4_in_rule__EnumAnnotationAttribute__Group__344188 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_42_in_rule__EnumAnnotationAttribute__Group__3__Impl44216 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__4__Impl_in_rule__EnumAnnotationAttribute__Group__444247 = new BitSet(new long[]{0x0000000000000100L});
+    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__5_in_rule__EnumAnnotationAttribute__Group__444250 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__EnumAnnotationAttribute__Group__4__Impl44278 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__5__Impl_in_rule__EnumAnnotationAttribute__Group__544309 = new BitSet(new long[]{0x0004020000000000L});
+    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__6_in_rule__EnumAnnotationAttribute__Group__544312 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__ValuesAssignment_5_in_rule__EnumAnnotationAttribute__Group__5__Impl44339 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__6__Impl_in_rule__EnumAnnotationAttribute__Group__644369 = new BitSet(new long[]{0x0004020000000000L});
+    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__7_in_rule__EnumAnnotationAttribute__Group__644372 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group_6__0_in_rule__EnumAnnotationAttribute__Group__6__Impl44399 = new BitSet(new long[]{0x0004000000000002L});
+    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group__7__Impl_in_rule__EnumAnnotationAttribute__Group__744430 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_41_in_rule__EnumAnnotationAttribute__Group__7__Impl44458 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group_6__0__Impl_in_rule__EnumAnnotationAttribute__Group_6__044505 = new BitSet(new long[]{0x0000000000000100L});
+    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group_6__1_in_rule__EnumAnnotationAttribute__Group_6__044508 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_50_in_rule__EnumAnnotationAttribute__Group_6__0__Impl44536 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__Group_6__1__Impl_in_rule__EnumAnnotationAttribute__Group_6__144567 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__EnumAnnotationAttribute__ValuesAssignment_6_1_in_rule__EnumAnnotationAttribute__Group_6__1__Impl44594 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__Group__0__Impl_in_rule__Import__Group__044628 = new BitSet(new long[]{0x0000000002000080L});
+    public static final BitSet FOLLOW_rule__Import__Group__1_in_rule__Import__Group__044631 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_123_in_rule__Import__Group__0__Impl44659 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__Group__1__Impl_in_rule__Import__Group__144690 = new BitSet(new long[]{0x0000000000000100L});
+    public static final BitSet FOLLOW_rule__Import__Group__2_in_rule__Import__Group__144693 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__Alternatives_1_in_rule__Import__Group__1__Impl44720 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__Group__2__Impl_in_rule__Import__Group__244750 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__ImportURIAssignment_2_in_rule__Import__Group__2__Impl44777 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__Group_1_0__0__Impl_in_rule__Import__Group_1_0__044813 = new BitSet(new long[]{0x0000000000000000L,0x1000000000000000L});
+    public static final BitSet FOLLOW_rule__Import__Group_1_0__1_in_rule__Import__Group_1_0__044816 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__ImportedNamespaceAssignment_1_0_0_in_rule__Import__Group_1_0__0__Impl44843 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Import__Group_1_0__1__Impl_in_rule__Import__Group_1_0__144873 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_124_in_rule__Import__Group_1_0__1__Impl44901 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ImportedFQN__Group__0__Impl_in_rule__ImportedFQN__Group__044936 = new BitSet(new long[]{0x0000000000000000L,0x2000000000000000L});
+    public static final BitSet FOLLOW_rule__ImportedFQN__Group__1_in_rule__ImportedFQN__Group__044939 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFQN_in_rule__ImportedFQN__Group__0__Impl44966 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ImportedFQN__Group__1__Impl_in_rule__ImportedFQN__Group__144995 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_125_in_rule__ImportedFQN__Group__1__Impl45024 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Documentation__Group__0__Impl_in_rule__Documentation__Group__045061 = new BitSet(new long[]{0x0400000000000000L});
+    public static final BitSet FOLLOW_rule__Documentation__Group__1_in_rule__Documentation__Group__045064 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Documentation__Group__1__Impl_in_rule__Documentation__Group__145122 = new BitSet(new long[]{0x0800000000000100L});
+    public static final BitSet FOLLOW_rule__Documentation__Group__2_in_rule__Documentation__Group__145125 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_58_in_rule__Documentation__Group__1__Impl45153 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Documentation__Group__2__Impl_in_rule__Documentation__Group__245184 = new BitSet(new long[]{0x0800000000000100L});
+    public static final BitSet FOLLOW_rule__Documentation__Group__3_in_rule__Documentation__Group__245187 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Documentation__LinesAssignment_2_in_rule__Documentation__Group__2__Impl45214 = new BitSet(new long[]{0x0000000000000102L});
+    public static final BitSet FOLLOW_rule__Documentation__Group__3__Impl_in_rule__Documentation__Group__345245 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_59_in_rule__Documentation__Group__3__Impl45273 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__BooleanLiteral__Group__0__Impl_in_rule__BooleanLiteral__Group__045318 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_rule__BooleanLiteral__Group__1_in_rule__BooleanLiteral__Group__045321 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__BooleanLiteral__Group__1__Impl_in_rule__BooleanLiteral__Group__145379 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__BooleanLiteral__Alternatives_1_in_rule__BooleanLiteral__Group__1__Impl45406 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RealLiteral__Group__0__Impl_in_rule__RealLiteral__Group__045440 = new BitSet(new long[]{0x0000000018000030L,0x0000000000200000L});
+    public static final BitSet FOLLOW_rule__RealLiteral__Group__1_in_rule__RealLiteral__Group__045443 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RealLiteral__Group__1__Impl_in_rule__RealLiteral__Group__145501 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__RealLiteral__ValueAssignment_1_in_rule__RealLiteral__Group__1__Impl45528 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__IntLiteral__Group__0__Impl_in_rule__IntLiteral__Group__045562 = new BitSet(new long[]{0x0000000018000030L});
+    public static final BitSet FOLLOW_rule__IntLiteral__Group__1_in_rule__IntLiteral__Group__045565 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__IntLiteral__Group__1__Impl_in_rule__IntLiteral__Group__145623 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__IntLiteral__ValueAssignment_1_in_rule__IntLiteral__Group__1__Impl45650 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StringLiteral__Group__0__Impl_in_rule__StringLiteral__Group__045684 = new BitSet(new long[]{0x000000001C000130L,0x0000000000200000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_rule__StringLiteral__Group__1_in_rule__StringLiteral__Group__045687 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StringLiteral__Group__1__Impl_in_rule__StringLiteral__Group__145745 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__StringLiteral__ValueAssignment_1_in_rule__StringLiteral__Group__1__Impl45772 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SignedInteger__Group__0__Impl_in_rule__SignedInteger__Group__045806 = new BitSet(new long[]{0x0000000018000020L});
+    public static final BitSet FOLLOW_rule__SignedInteger__Group__1_in_rule__SignedInteger__Group__045809 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SignedInteger__Alternatives_0_in_rule__SignedInteger__Group__0__Impl45836 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__SignedInteger__Group__1__Impl_in_rule__SignedInteger__Group__145867 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_INT_in_rule__SignedInteger__Group__1__Impl45894 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Decimal__Group__0__Impl_in_rule__Decimal__Group__045927 = new BitSet(new long[]{0x0000000018000020L});
+    public static final BitSet FOLLOW_rule__Decimal__Group__1_in_rule__Decimal__Group__045930 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Decimal__Alternatives_0_in_rule__Decimal__Group__0__Impl45957 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Decimal__Group__1__Impl_in_rule__Decimal__Group__145988 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_rule__Decimal__Group__2_in_rule__Decimal__Group__145991 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_INT_in_rule__Decimal__Group__1__Impl46018 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Decimal__Group__2__Impl_in_rule__Decimal__Group__246047 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_rule__Decimal__Group__3_in_rule__Decimal__Group__246050 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_85_in_rule__Decimal__Group__2__Impl46078 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__Decimal__Group__3__Impl_in_rule__Decimal__Group__346109 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_INT_in_rule__Decimal__Group__3__Impl46136 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DotDecimal__Group__0__Impl_in_rule__DotDecimal__Group__046173 = new BitSet(new long[]{0x0000000018000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_rule__DotDecimal__Group__1_in_rule__DotDecimal__Group__046176 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DotDecimal__Alternatives_0_in_rule__DotDecimal__Group__0__Impl46203 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DotDecimal__Group__1__Impl_in_rule__DotDecimal__Group__146234 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_rule__DotDecimal__Group__2_in_rule__DotDecimal__Group__146237 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_85_in_rule__DotDecimal__Group__1__Impl46265 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DotDecimal__Group__2__Impl_in_rule__DotDecimal__Group__246296 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_INT_in_rule__DotDecimal__Group__2__Impl46323 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DecimalDot__Group__0__Impl_in_rule__DecimalDot__Group__046358 = new BitSet(new long[]{0x0000000018000020L});
+    public static final BitSet FOLLOW_rule__DecimalDot__Group__1_in_rule__DecimalDot__Group__046361 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DecimalDot__Alternatives_0_in_rule__DecimalDot__Group__0__Impl46388 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DecimalDot__Group__1__Impl_in_rule__DecimalDot__Group__146419 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_rule__DecimalDot__Group__2_in_rule__DecimalDot__Group__146422 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_INT_in_rule__DecimalDot__Group__1__Impl46449 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DecimalDot__Group__2__Impl_in_rule__DecimalDot__Group__246478 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_85_in_rule__DecimalDot__Group__2__Impl46506 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DecimalExp__Group__0__Impl_in_rule__DecimalExp__Group__046543 = new BitSet(new long[]{0x0000000018000030L,0x0000000000200000L});
+    public static final BitSet FOLLOW_rule__DecimalExp__Group__1_in_rule__DecimalExp__Group__046546 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DecimalExp__Alternatives_0_in_rule__DecimalExp__Group__0__Impl46573 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DecimalExp__Group__1__Impl_in_rule__DecimalExp__Group__146604 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_rule__DecimalExp__Group__2_in_rule__DecimalExp__Group__146607 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_INT_in_rule__DecimalExp__Group__1__Impl46634 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DecimalExp__Group__2__Impl_in_rule__DecimalExp__Group__246663 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_rule__DecimalExp__Group__3_in_rule__DecimalExp__Group__246666 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_85_in_rule__DecimalExp__Group__2__Impl46694 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DecimalExp__Group__3__Impl_in_rule__DecimalExp__Group__346725 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_rule__DecimalExp__Group__4_in_rule__DecimalExp__Group__346728 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_INT_in_rule__DecimalExp__Group__3__Impl46755 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__DecimalExp__Group__4__Impl_in_rule__DecimalExp__Group__446784 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_EXP_in_rule__DecimalExp__Group__4__Impl46811 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__FQN__Group__0__Impl_in_rule__FQN__Group__046850 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_rule__FQN__Group__1_in_rule__FQN__Group__046853 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__FQN__Group__0__Impl46880 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__FQN__Group__1__Impl_in_rule__FQN__Group__146909 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__FQN__Group_1__0_in_rule__FQN__Group__1__Impl46936 = new BitSet(new long[]{0x0000000000000002L,0x0000000000200000L});
+    public static final BitSet FOLLOW_rule__FQN__Group_1__0__Impl_in_rule__FQN__Group_1__046971 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_rule__FQN__Group_1__1_in_rule__FQN__Group_1__046974 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_85_in_rule__FQN__Group_1__0__Impl47002 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__FQN__Group_1__1__Impl_in_rule__FQN__Group_1__147033 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__FQN__Group_1__1__Impl47060 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__UnorderedGroup_0__0_in_rule__ActorClass__UnorderedGroup_047094 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__AbstractAssignment_0_0_in_rule__ActorClass__UnorderedGroup_0__Impl47181 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__CommTypeAssignment_0_1_in_rule__ActorClass__UnorderedGroup_0__Impl47272 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__UnorderedGroup_0__Impl_in_rule__ActorClass__UnorderedGroup_0__047331 = new BitSet(new long[]{0x00000004E0000002L,0x0000000000000000L,0x0000000000000001L});
+    public static final BitSet FOLLOW_rule__ActorClass__UnorderedGroup_0__1_in_rule__ActorClass__UnorderedGroup_0__047334 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ActorClass__UnorderedGroup_0__Impl_in_rule__ActorClass__UnorderedGroup_0__147359 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFQN_in_rule__RoomModel__NameAssignment_147391 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__RoomModel__DocuAssignment_247422 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleImport_in_rule__RoomModel__ImportsAssignment_447453 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rulePrimitiveType_in_rule__RoomModel__PrimitiveTypesAssignment_5_047484 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleEnumerationType_in_rule__RoomModel__EnumerationTypesAssignment_5_147515 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleExternalType_in_rule__RoomModel__ExternalTypesAssignment_5_247546 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDataClass_in_rule__RoomModel__DataClassesAssignment_5_347577 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleGeneralProtocolClass_in_rule__RoomModel__ProtocolClassesAssignment_5_447608 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleActorClass_in_rule__RoomModel__ActorClassesAssignment_5_547639 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSubSystemClass_in_rule__RoomModel__SubSystemClassesAssignment_5_647670 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleLogicalSystem_in_rule__RoomModel__SystemsAssignment_5_747701 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleAnnotationType_in_rule__RoomModel__AnnotationTypesAssignment_5_847732 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__VarDecl__NameAssignment_047763 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRefableType_in_rule__VarDecl__RefTypeAssignment_247794 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFQN_in_rule__RefableType__TypeAssignment_047829 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_89_in_rule__RefableType__RefAssignment_147869 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__PrimitiveType__NameAssignment_147908 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleLiteralType_in_rule__PrimitiveType__TypeAssignment_347939 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_rule__PrimitiveType__TargetNameAssignment_547970 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFQN_in_rule__PrimitiveType__CastNameAssignment_6_148001 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_rule__PrimitiveType__DefaultValueLiteralAssignment_848032 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__PrimitiveType__DocuAssignment_948063 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__EnumerationType__NameAssignment_148094 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__EnumerationType__DocuAssignment_248125 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFQN_in_rule__EnumerationType__PrimitiveTypeAssignment_3_148160 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleEnumLiteral_in_rule__EnumerationType__LiteralsAssignment_5_048195 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleEnumLiteral_in_rule__EnumerationType__LiteralsAssignment_5_1_148226 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__EnumLiteral__NameAssignment_048257 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleIntLiteral_in_rule__EnumLiteral__LiteralAssignment_1_148288 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__ExternalType__NameAssignment_148319 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_rule__ExternalType__TargetNameAssignment_348350 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_rule__ExternalType__DefaultValueLiteralAssignment_4_148381 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__ExternalType__DocuAssignment_548412 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__DataClass__NameAssignment_148443 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__DataClass__DocuAssignment_248474 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFQN_in_rule__DataClass__BaseAssignment_3_148509 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleAnnotation_in_rule__DataClass__AnnotationsAssignment_548544 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__DataClass__UserCode1Assignment_6_148575 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__DataClass__UserCode2Assignment_7_148606 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__DataClass__UserCode3Assignment_8_148637 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleStandardOperation_in_rule__DataClass__OperationsAssignment_9_048668 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleClassStructor_in_rule__DataClass__StructorsAssignment_9_148699 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleAttribute_in_rule__DataClass__AttributesAssignment_9_248730 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__Attribute__NameAssignment_148761 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_INT_in_rule__Attribute__SizeAssignment_2_148792 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRefableType_in_rule__Attribute__TypeAssignment_448823 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_rule__Attribute__DefaultValueLiteralAssignment_5_148854 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__Attribute__DocuAssignment_648885 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_126_in_rule__StandardOperation__OverrideAssignment_048921 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__StandardOperation__NameAssignment_248960 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleVarDecl_in_rule__StandardOperation__ArgumentsAssignment_4_048991 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleVarDecl_in_rule__StandardOperation__ArgumentsAssignment_4_1_149022 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRefableType_in_rule__StandardOperation__ReturnTypeAssignment_6_1_149053 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__StandardOperation__DocuAssignment_749084 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__StandardOperation__DetailCodeAssignment_849115 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__PortOperation__NameAssignment_149146 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleVarDecl_in_rule__PortOperation__ArgumentsAssignment_3_049177 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleVarDecl_in_rule__PortOperation__ArgumentsAssignment_3_1_149208 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRefableType_in_rule__PortOperation__ReturnTypeAssignment_5_0_1_149239 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__PortOperation__SendsMsgAssignment_5_1_149274 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__PortOperation__DocuAssignment_649309 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__PortOperation__DetailCodeAssignment_749340 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rule__ClassStructor__NameAlternatives_0_0_in_rule__ClassStructor__NameAssignment_049371 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__ClassStructor__DetailCodeAssignment_149404 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleCommunicationType_in_rule__ProtocolClass__CommTypeAssignment_049435 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__ProtocolClass__NameAssignment_249466 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__ProtocolClass__DocuAssignment_349497 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFQN_in_rule__ProtocolClass__BaseAssignment_4_149532 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleAnnotation_in_rule__ProtocolClass__AnnotationsAssignment_649567 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__ProtocolClass__UserCode1Assignment_7_149598 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__ProtocolClass__UserCode2Assignment_8_149629 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__ProtocolClass__UserCode3Assignment_9_149660 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleMessage_in_rule__ProtocolClass__IncomingMessagesAssignment_10_249691 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleMessage_in_rule__ProtocolClass__OutgoingMessagesAssignment_11_249722 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rulePortClass_in_rule__ProtocolClass__RegularAssignment_12_249753 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rulePortClass_in_rule__ProtocolClass__ConjugatedAssignment_13_249784 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleProtocolSemantics_in_rule__ProtocolClass__SemanticsAssignment_1449815 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__CompoundProtocolClass__NameAssignment_149846 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__CompoundProtocolClass__DocuAssignment_249877 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleAnnotation_in_rule__CompoundProtocolClass__AnnotationsAssignment_449908 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSubProtocol_in_rule__CompoundProtocolClass__SubProtocolsAssignment_549939 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__SubProtocol__NameAssignment_149970 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFQN_in_rule__SubProtocol__ProtocolAssignment_350005 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_127_in_rule__Message__PrivAssignment_050045 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__Message__NameAssignment_250084 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleVarDecl_in_rule__Message__DataAssignment_450115 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__Message__DocuAssignment_650146 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__PortClass__UserCodeAssignment_2_150177 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleMessageHandler_in_rule__PortClass__MsgHandlersAssignment_3_050208 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rulePortOperation_in_rule__PortClass__OperationsAssignment_3_150239 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleAttribute_in_rule__PortClass__AttributesAssignment_3_250270 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__InMessageHandler__MsgAssignment_250305 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__InMessageHandler__DetailCodeAssignment_350340 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__OutMessageHandler__MsgAssignment_250375 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__OutMessageHandler__DetailCodeAssignment_350410 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_128_in_rule__ActorClass__AbstractAssignment_0_050446 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleComponentCommunicationType_in_rule__ActorClass__CommTypeAssignment_0_150485 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__ActorClass__NameAssignment_250516 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__ActorClass__DocuAssignment_350547 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFQN_in_rule__ActorClass__BaseAssignment_4_150582 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleAnnotation_in_rule__ActorClass__AnnotationsAssignment_650617 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSPP_in_rule__ActorClass__ServiceProvisionPointsAssignment_7_2_050648 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rulePort_in_rule__ActorClass__InterfacePortsAssignment_7_2_150679 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__ActorClass__StructureDocuAssignment_8_150710 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__ActorClass__UserCode1Assignment_8_3_150741 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__ActorClass__UserCode2Assignment_8_4_150772 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__ActorClass__UserCode3Assignment_8_5_150803 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleLayerConnection_in_rule__ActorClass__ConnectionsAssignment_8_6_050834 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleBinding_in_rule__ActorClass__BindingsAssignment_8_6_150865 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleServiceImplementation_in_rule__ActorClass__ServiceImplementationsAssignment_8_6_250896 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleAttribute_in_rule__ActorClass__AttributesAssignment_8_6_350927 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleActorRef_in_rule__ActorClass__ActorRefsAssignment_8_6_450958 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSAP_in_rule__ActorClass__ServiceAccessPointsAssignment_8_6_550989 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rulePort_in_rule__ActorClass__InternalPortsAssignment_8_6_651020 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleExternalPort_in_rule__ActorClass__ExternalPortsAssignment_8_6_751051 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__ActorClass__BehaviorDocuAssignment_9_151082 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleAnnotation_in_rule__ActorClass__BehaviorAnnotationsAssignment_9_351113 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleStandardOperation_in_rule__ActorClass__OperationsAssignment_9_4_051144 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleClassStructor_in_rule__ActorClass__StructorsAssignment_9_4_151175 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleStateMachine_in_rule__ActorClass__StateMachineAssignment_9_551206 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_66_in_rule__Port__ConjugatedAssignment_051242 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__Port__NameAssignment_251281 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleMULTIPLICITY_in_rule__Port__MultiplicityAssignment_351312 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFQN_in_rule__Port__ProtocolAssignment_551347 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__Port__DocuAssignment_651382 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__ExternalPort__InterfacePortAssignment_251417 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__SAP__NameAssignment_151452 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFQN_in_rule__SAP__ProtocolAssignment_351487 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__SPP__NameAssignment_151522 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFQN_in_rule__SPP__ProtocolAssignment_351557 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__ServiceImplementation__SppAssignment_251596 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__LogicalSystem__NameAssignment_151631 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__LogicalSystem__DocuAssignment_251662 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleAnnotation_in_rule__LogicalSystem__AnnotationsAssignment_451693 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleLayerConnection_in_rule__LogicalSystem__ConnectionsAssignment_5_051724 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleBinding_in_rule__LogicalSystem__BindingsAssignment_5_151755 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSubSystemRef_in_rule__LogicalSystem__SubSystemsAssignment_5_251786 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__SubSystemRef__NameAssignment_151817 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFQN_in_rule__SubSystemRef__TypeAssignment_351852 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__SubSystemRef__DocuAssignment_451887 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__SubSystemClass__NameAssignment_151918 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__SubSystemClass__DocuAssignment_251949 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleAnnotation_in_rule__SubSystemClass__AnnotationsAssignment_451980 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__SubSystemClass__UserCode1Assignment_5_152011 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__SubSystemClass__UserCode2Assignment_6_152042 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__SubSystemClass__UserCode3Assignment_7_152073 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleActorInstanceMapping_in_rule__SubSystemClass__ActorInstanceMappingsAssignment_8_052104 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleLogicalThread_in_rule__SubSystemClass__ThreadsAssignment_8_152135 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleLayerConnection_in_rule__SubSystemClass__ConnectionsAssignment_8_252166 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleBinding_in_rule__SubSystemClass__BindingsAssignment_8_352197 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleActorRef_in_rule__SubSystemClass__ActorRefsAssignment_8_452228 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSPP_in_rule__SubSystemClass__ServiceProvisionPointsAssignment_8_552259 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rulePort_in_rule__SubSystemClass__RelayPortsAssignment_8_652290 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__LogicalThread__NameAssignment_152321 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRefPath_in_rule__ActorInstanceMapping__PathAssignment_152352 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__ActorInstanceMapping__ThreadAssignment_352387 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleActorInstanceMapping_in_rule__ActorInstanceMapping__ActorInstanceMappingsAssignment_4_152422 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRefSegment_in_rule__RefPath__RefsAssignment_052453 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRefSegment_in_rule__RefPath__RefsAssignment_1_152484 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__RefSegment__RefAssignment_052515 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_INT_in_rule__RefSegment__IdxAssignment_1_152546 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleBindingEndPoint_in_rule__Binding__Endpoint1Assignment_152577 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleBindingEndPoint_in_rule__Binding__Endpoint2Assignment_352608 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__BindingEndPoint__ActorRefAssignment_0_052643 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__BindingEndPoint__PortAssignment_152682 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__BindingEndPoint__SubAssignment_2_152721 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSAPoint_in_rule__LayerConnection__FromAssignment_152756 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSPPoint_in_rule__LayerConnection__ToAssignment_352787 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__RefSAPoint__RefAssignment_152822 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__RelaySAPoint__RelayAssignment_152861 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__SPPoint__RefAssignment_052900 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__SPPoint__ServiceAssignment_252939 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleReferenceType_in_rule__ActorRef__RefTypeAssignment_052974 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__ActorRef__NameAssignment_253005 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleMULTIPLICITY_in_rule__ActorRef__MultiplicityAssignment_353036 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFQN_in_rule__ActorRef__TypeAssignment_553071 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__ActorRef__DocuAssignment_653106 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleState_in_rule__StateGraph__StatesAssignment_2_053138 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTrPoint_in_rule__StateGraph__TrPointsAssignment_2_153169 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleChoicePoint_in_rule__StateGraph__ChPointsAssignment_2_253200 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTransition_in_rule__StateGraph__TransitionsAssignment_2_353231 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRefinedTransition_in_rule__StateGraph__RefinedTransitionsAssignment_2_453262 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleState_in_rule__StateMachine__StatesAssignment_3_053293 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTrPoint_in_rule__StateMachine__TrPointsAssignment_3_153324 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleChoicePoint_in_rule__StateMachine__ChPointsAssignment_3_253355 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTransition_in_rule__StateMachine__TransitionsAssignment_3_353386 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRefinedTransition_in_rule__StateMachine__RefinedTransitionsAssignment_3_453417 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__SimpleState__NameAssignment_153448 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__SimpleState__DocuAssignment_253479 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__SimpleState__EntryCodeAssignment_3_1_153510 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__SimpleState__ExitCodeAssignment_3_2_153541 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__SimpleState__DoCodeAssignment_3_3_153572 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleStateGraph_in_rule__SimpleState__SubgraphAssignment_3_4_153603 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFQN_in_rule__RefinedState__TargetAssignment_153638 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__RefinedState__DocuAssignment_253673 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__RefinedState__EntryCodeAssignment_4_153704 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__RefinedState__ExitCodeAssignment_5_153735 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__RefinedState__DoCodeAssignment_6_153766 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleStateGraph_in_rule__RefinedState__SubgraphAssignment_7_153797 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_rule__DetailCode__UsedAssignment_153833 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_rule__DetailCode__LinesAssignment_253872 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_129_in_rule__TransitionPoint__HandlerAssignment_053908 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__TransitionPoint__NameAssignment_253947 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__EntryPoint__NameAssignment_153978 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__ExitPoint__NameAssignment_154009 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__ChoicePoint__NameAssignment_154040 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__ChoicePoint__DocuAssignment_254071 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__InitialTransition__NameAssignment_154102 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTransitionTerminal_in_rule__InitialTransition__ToAssignment_554133 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__InitialTransition__DocuAssignment_654164 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__InitialTransition__ActionAssignment_7_1_154195 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__ContinuationTransition__NameAssignment_154226 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTransitionTerminal_in_rule__ContinuationTransition__FromAssignment_354257 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTransitionTerminal_in_rule__ContinuationTransition__ToAssignment_554288 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__ContinuationTransition__DocuAssignment_654319 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__ContinuationTransition__ActionAssignment_7_1_154350 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__TriggeredTransition__NameAssignment_154381 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTransitionTerminal_in_rule__TriggeredTransition__FromAssignment_354412 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTransitionTerminal_in_rule__TriggeredTransition__ToAssignment_554443 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__TriggeredTransition__DocuAssignment_654474 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTrigger_in_rule__TriggeredTransition__TriggersAssignment_1054505 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTrigger_in_rule__TriggeredTransition__TriggersAssignment_11_154536 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__TriggeredTransition__ActionAssignment_13_154567 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__GuardedTransition__NameAssignment_154598 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTransitionTerminal_in_rule__GuardedTransition__FromAssignment_354629 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTransitionTerminal_in_rule__GuardedTransition__ToAssignment_554660 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__GuardedTransition__DocuAssignment_654691 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__GuardedTransition__GuardAssignment_954722 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__GuardedTransition__ActionAssignment_10_154753 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__CPBranchTransition__NameAssignment_154784 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTransitionTerminal_in_rule__CPBranchTransition__FromAssignment_354815 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTransitionTerminal_in_rule__CPBranchTransition__ToAssignment_554846 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__CPBranchTransition__DocuAssignment_654877 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__CPBranchTransition__ConditionAssignment_954908 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__CPBranchTransition__ActionAssignment_10_154939 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFQN_in_rule__RefinedTransition__TargetAssignment_154974 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__RefinedTransition__DocuAssignment_255009 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__RefinedTransition__ActionAssignment_555040 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__StateTerminal__StateAssignment55075 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__TrPointTerminal__TrPointAssignment_155114 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__SubStateTrPointTerminal__TrPointAssignment_055153 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__SubStateTrPointTerminal__StateAssignment_255192 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__ChoicepointTerminal__CpAssignment_155231 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleMessageFromIf_in_rule__Trigger__MsgFromIfPairsAssignment_155266 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleMessageFromIf_in_rule__Trigger__MsgFromIfPairsAssignment_2_155297 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleGuard_in_rule__Trigger__GuardAssignment_355328 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__MessageFromIf__MessageAssignment_055363 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__MessageFromIf__FromAssignment_255402 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rule__Guard__GuardAssignment_155437 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSemanticsRule_in_rule__ProtocolSemantics__RulesAssignment_355468 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__InSemanticsRule__MsgAssignment_255503 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSemanticsRule_in_rule__InSemanticsRule__FollowUpsAssignment_3_1_055538 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSemanticsRule_in_rule__InSemanticsRule__FollowUpsAssignment_3_1_1_155569 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSemanticsRule_in_rule__InSemanticsRule__FollowUpsAssignment_3_1_1_2_155600 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__OutSemanticsRule__MsgAssignment_255635 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSemanticsRule_in_rule__OutSemanticsRule__FollowUpsAssignment_3_1_055670 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSemanticsRule_in_rule__OutSemanticsRule__FollowUpsAssignment_3_1_1_155701 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSemanticsRule_in_rule__OutSemanticsRule__FollowUpsAssignment_3_1_1_2_155732 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFQN_in_rule__Annotation__TypeAssignment_155767 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleKeyValue_in_rule__Annotation__AttributesAssignment_2_155802 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleKeyValue_in_rule__Annotation__AttributesAssignment_2_2_155833 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__KeyValue__KeyAssignment_055864 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleLiteral_in_rule__KeyValue__ValueAssignment_255895 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__AnnotationType__NameAssignment_155926 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rule__AnnotationType__DocuAssignment_255957 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleAnnotationTargetType_in_rule__AnnotationType__TargetsAssignment_6_055988 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleAnnotationTargetType_in_rule__AnnotationType__TargetsAssignment_6_1_156019 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleAnnotationTargetType_in_rule__AnnotationType__TargetsAssignment_6_1_2_156050 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleAnnotationAttribute_in_rule__AnnotationType__AttributesAssignment_756081 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_33_in_rule__SimpleAnnotationAttribute__OptionalAssignment_0_056117 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__SimpleAnnotationAttribute__NameAssignment_256156 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleLiteralType_in_rule__SimpleAnnotationAttribute__TypeAssignment_456187 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_33_in_rule__EnumAnnotationAttribute__OptionalAssignment_0_056223 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_rule__EnumAnnotationAttribute__NameAssignment_256262 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_rule__EnumAnnotationAttribute__ValuesAssignment_556293 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_rule__EnumAnnotationAttribute__ValuesAssignment_6_156324 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleImportedFQN_in_rule__Import__ImportedNamespaceAssignment_1_0_056355 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_rule__Import__ImportURIAssignment_256386 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_rule__Documentation__LinesAssignment_256417 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_130_in_rule__BooleanLiteral__IsTrueAssignment_1_156455 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleReal_in_rule__RealLiteral__ValueAssignment_156494 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleInteger_in_rule__IntLiteral__ValueAssignment_156525 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_rule__StringLiteral__ValueAssignment_156556 = new BitSet(new long[]{0x0000000000000002L});
 
 }
diff --git a/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/Room.xtextbin b/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/Room.xtextbin
index 9f90241..500636b 100644
--- a/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/Room.xtextbin
+++ b/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/Room.xtextbin
Binary files differ
diff --git a/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g b/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g
index 2ac8adf..0ec2ee5 100644
--- a/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g
+++ b/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g
@@ -1364,7 +1364,7 @@
 	    }
 
 )
-)(	otherlv_7='=' 
+)?(	otherlv_7='=' 
     {
     	newLeafNode(otherlv_7, grammarAccess.getAttributeAccess().getEqualsSignKeyword_5_0());
     }
diff --git a/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoomParser.java b/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoomParser.java
index bbc5ff7..328106b 100644
--- a/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoomParser.java
+++ b/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoomParser.java
@@ -3185,7 +3185,7 @@
 
 
     // $ANTLR start "ruleAttribute"
-    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1293:1: ruleAttribute returns [EObject current=null] : (otherlv_0= 'Attribute' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_size_3_0= RULE_INT ) ) otherlv_4= ']' )? otherlv_5= ':' ( (lv_type_6_0= ruleRefableType ) ) (otherlv_7= '=' ( (lv_defaultValueLiteral_8_0= RULE_STRING ) ) )? ( (lv_docu_9_0= ruleDocumentation ) )? ) ;
+    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1293:1: ruleAttribute returns [EObject current=null] : (otherlv_0= 'Attribute' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_size_3_0= RULE_INT ) ) otherlv_4= ']' )? otherlv_5= ':' ( (lv_type_6_0= ruleRefableType ) )? (otherlv_7= '=' ( (lv_defaultValueLiteral_8_0= RULE_STRING ) ) )? ( (lv_docu_9_0= ruleDocumentation ) )? ) ;
     public final EObject ruleAttribute() throws RecognitionException {
         EObject current = null;
 
@@ -3205,11 +3205,11 @@
          enterRule(); 
             
         try {
-            // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1296:28: ( (otherlv_0= 'Attribute' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_size_3_0= RULE_INT ) ) otherlv_4= ']' )? otherlv_5= ':' ( (lv_type_6_0= ruleRefableType ) ) (otherlv_7= '=' ( (lv_defaultValueLiteral_8_0= RULE_STRING ) ) )? ( (lv_docu_9_0= ruleDocumentation ) )? ) )
-            // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1297:1: (otherlv_0= 'Attribute' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_size_3_0= RULE_INT ) ) otherlv_4= ']' )? otherlv_5= ':' ( (lv_type_6_0= ruleRefableType ) ) (otherlv_7= '=' ( (lv_defaultValueLiteral_8_0= RULE_STRING ) ) )? ( (lv_docu_9_0= ruleDocumentation ) )? )
+            // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1296:28: ( (otherlv_0= 'Attribute' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_size_3_0= RULE_INT ) ) otherlv_4= ']' )? otherlv_5= ':' ( (lv_type_6_0= ruleRefableType ) )? (otherlv_7= '=' ( (lv_defaultValueLiteral_8_0= RULE_STRING ) ) )? ( (lv_docu_9_0= ruleDocumentation ) )? ) )
+            // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1297:1: (otherlv_0= 'Attribute' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_size_3_0= RULE_INT ) ) otherlv_4= ']' )? otherlv_5= ':' ( (lv_type_6_0= ruleRefableType ) )? (otherlv_7= '=' ( (lv_defaultValueLiteral_8_0= RULE_STRING ) ) )? ( (lv_docu_9_0= ruleDocumentation ) )? )
             {
-            // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1297:1: (otherlv_0= 'Attribute' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_size_3_0= RULE_INT ) ) otherlv_4= ']' )? otherlv_5= ':' ( (lv_type_6_0= ruleRefableType ) ) (otherlv_7= '=' ( (lv_defaultValueLiteral_8_0= RULE_STRING ) ) )? ( (lv_docu_9_0= ruleDocumentation ) )? )
-            // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1297:3: otherlv_0= 'Attribute' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_size_3_0= RULE_INT ) ) otherlv_4= ']' )? otherlv_5= ':' ( (lv_type_6_0= ruleRefableType ) ) (otherlv_7= '=' ( (lv_defaultValueLiteral_8_0= RULE_STRING ) ) )? ( (lv_docu_9_0= ruleDocumentation ) )?
+            // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1297:1: (otherlv_0= 'Attribute' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_size_3_0= RULE_INT ) ) otherlv_4= ']' )? otherlv_5= ':' ( (lv_type_6_0= ruleRefableType ) )? (otherlv_7= '=' ( (lv_defaultValueLiteral_8_0= RULE_STRING ) ) )? ( (lv_docu_9_0= ruleDocumentation ) )? )
+            // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1297:3: otherlv_0= 'Attribute' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= '[' ( (lv_size_3_0= RULE_INT ) ) otherlv_4= ']' )? otherlv_5= ':' ( (lv_type_6_0= ruleRefableType ) )? (otherlv_7= '=' ( (lv_defaultValueLiteral_8_0= RULE_STRING ) ) )? ( (lv_docu_9_0= ruleDocumentation ) )?
             {
             otherlv_0=(Token)match(input,33,FOLLOW_33_in_ruleAttribute2540); 
 
@@ -3296,49 +3296,60 @@
 
                 	newLeafNode(otherlv_5, grammarAccess.getAttributeAccess().getColonKeyword_3());
                 
-            // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1349:1: ( (lv_type_6_0= ruleRefableType ) )
-            // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1350:1: (lv_type_6_0= ruleRefableType )
-            {
-            // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1350:1: (lv_type_6_0= ruleRefableType )
-            // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1351:3: lv_type_6_0= ruleRefableType
-            {
-             
-            	        newCompositeNode(grammarAccess.getAttributeAccess().getTypeRefableTypeParserRuleCall_4_0()); 
-            	    
-            pushFollow(FOLLOW_ruleRefableType_in_ruleAttribute2644);
-            lv_type_6_0=ruleRefableType();
-
-            state._fsp--;
-
-
-            	        if (current==null) {
-            	            current = createModelElementForParent(grammarAccess.getAttributeRule());
-            	        }
-                   		set(
-                   			current, 
-                   			"type",
-                    		lv_type_6_0, 
-                    		"RefableType");
-            	        afterParserOrEnumRuleCall();
-            	    
-
-            }
-
-
-            }
-
-            // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1367:2: (otherlv_7= '=' ( (lv_defaultValueLiteral_8_0= RULE_STRING ) ) )?
+            // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1349:1: ( (lv_type_6_0= ruleRefableType ) )?
             int alt26=2;
             int LA26_0 = input.LA(1);
 
-            if ( (LA26_0==26) ) {
+            if ( (LA26_0==RULE_ID) ) {
                 alt26=1;
             }
             switch (alt26) {
                 case 1 :
-                    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1367:4: otherlv_7= '=' ( (lv_defaultValueLiteral_8_0= RULE_STRING ) )
+                    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1350:1: (lv_type_6_0= ruleRefableType )
                     {
-                    otherlv_7=(Token)match(input,26,FOLLOW_26_in_ruleAttribute2657); 
+                    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1350:1: (lv_type_6_0= ruleRefableType )
+                    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1351:3: lv_type_6_0= ruleRefableType
+                    {
+                     
+                    	        newCompositeNode(grammarAccess.getAttributeAccess().getTypeRefableTypeParserRuleCall_4_0()); 
+                    	    
+                    pushFollow(FOLLOW_ruleRefableType_in_ruleAttribute2644);
+                    lv_type_6_0=ruleRefableType();
+
+                    state._fsp--;
+
+
+                    	        if (current==null) {
+                    	            current = createModelElementForParent(grammarAccess.getAttributeRule());
+                    	        }
+                           		set(
+                           			current, 
+                           			"type",
+                            		lv_type_6_0, 
+                            		"RefableType");
+                    	        afterParserOrEnumRuleCall();
+                    	    
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1367:3: (otherlv_7= '=' ( (lv_defaultValueLiteral_8_0= RULE_STRING ) ) )?
+            int alt27=2;
+            int LA27_0 = input.LA(1);
+
+            if ( (LA27_0==26) ) {
+                alt27=1;
+            }
+            switch (alt27) {
+                case 1 :
+                    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1367:5: otherlv_7= '=' ( (lv_defaultValueLiteral_8_0= RULE_STRING ) )
+                    {
+                    otherlv_7=(Token)match(input,26,FOLLOW_26_in_ruleAttribute2658); 
 
                         	newLeafNode(otherlv_7, grammarAccess.getAttributeAccess().getEqualsSignKeyword_5_0());
                         
@@ -3348,7 +3359,7 @@
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1372:1: (lv_defaultValueLiteral_8_0= RULE_STRING )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1373:3: lv_defaultValueLiteral_8_0= RULE_STRING
                     {
-                    lv_defaultValueLiteral_8_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleAttribute2674); 
+                    lv_defaultValueLiteral_8_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleAttribute2675); 
 
                     			newLeafNode(lv_defaultValueLiteral_8_0, grammarAccess.getAttributeAccess().getDefaultValueLiteralSTRINGTerminalRuleCall_5_1_0()); 
                     		
@@ -3375,13 +3386,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1389:4: ( (lv_docu_9_0= ruleDocumentation ) )?
-            int alt27=2;
-            int LA27_0 = input.LA(1);
+            int alt28=2;
+            int LA28_0 = input.LA(1);
 
-            if ( (LA27_0==34) ) {
-                alt27=1;
+            if ( (LA28_0==34) ) {
+                alt28=1;
             }
-            switch (alt27) {
+            switch (alt28) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1390:1: (lv_docu_9_0= ruleDocumentation )
                     {
@@ -3391,7 +3402,7 @@
                      
                     	        newCompositeNode(grammarAccess.getAttributeAccess().getDocuDocumentationParserRuleCall_6_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDocumentation_in_ruleAttribute2702);
+                    pushFollow(FOLLOW_ruleDocumentation_in_ruleAttribute2703);
                     lv_docu_9_0=ruleDocumentation();
 
                     state._fsp--;
@@ -3449,13 +3460,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1419:2: iv_ruleStandardOperation= ruleStandardOperation EOF
             {
              newCompositeNode(grammarAccess.getStandardOperationRule()); 
-            pushFollow(FOLLOW_ruleStandardOperation_in_entryRuleStandardOperation2741);
+            pushFollow(FOLLOW_ruleStandardOperation_in_entryRuleStandardOperation2742);
             iv_ruleStandardOperation=ruleStandardOperation();
 
             state._fsp--;
 
              current =iv_ruleStandardOperation; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleStandardOperation2751); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleStandardOperation2752); 
 
             }
 
@@ -3506,20 +3517,20 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1430:2: ( (lv_override_0_0= 'override' ) )? otherlv_1= 'Operation' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( ( (lv_arguments_4_0= ruleVarDecl ) ) (otherlv_5= ',' ( (lv_arguments_6_0= ruleVarDecl ) ) )* )? otherlv_7= ')' (otherlv_8= ':' (otherlv_9= 'void' | ( (lv_returnType_10_0= ruleRefableType ) ) ) )? ( (lv_docu_11_0= ruleDocumentation ) )? ( (lv_detailCode_12_0= ruleDetailCode ) )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1430:2: ( (lv_override_0_0= 'override' ) )?
-            int alt28=2;
-            int LA28_0 = input.LA(1);
+            int alt29=2;
+            int LA29_0 = input.LA(1);
 
-            if ( (LA28_0==36) ) {
-                alt28=1;
+            if ( (LA29_0==36) ) {
+                alt29=1;
             }
-            switch (alt28) {
+            switch (alt29) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1431:1: (lv_override_0_0= 'override' )
                     {
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1431:1: (lv_override_0_0= 'override' )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1432:3: lv_override_0_0= 'override'
                     {
-                    lv_override_0_0=(Token)match(input,36,FOLLOW_36_in_ruleStandardOperation2794); 
+                    lv_override_0_0=(Token)match(input,36,FOLLOW_36_in_ruleStandardOperation2795); 
 
                             newLeafNode(lv_override_0_0, grammarAccess.getStandardOperationAccess().getOverrideOverrideKeyword_0_0());
                         
@@ -3538,7 +3549,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,37,FOLLOW_37_in_ruleStandardOperation2820); 
+            otherlv_1=(Token)match(input,37,FOLLOW_37_in_ruleStandardOperation2821); 
 
                 	newLeafNode(otherlv_1, grammarAccess.getStandardOperationAccess().getOperationKeyword_1());
                 
@@ -3548,7 +3559,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1450:1: (lv_name_2_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1451:3: lv_name_2_0= RULE_ID
             {
-            lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleStandardOperation2837); 
+            lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleStandardOperation2838); 
 
             			newLeafNode(lv_name_2_0, grammarAccess.getStandardOperationAccess().getNameIDTerminalRuleCall_2_0()); 
             		
@@ -3568,18 +3579,18 @@
 
             }
 
-            otherlv_3=(Token)match(input,20,FOLLOW_20_in_ruleStandardOperation2854); 
+            otherlv_3=(Token)match(input,20,FOLLOW_20_in_ruleStandardOperation2855); 
 
                 	newLeafNode(otherlv_3, grammarAccess.getStandardOperationAccess().getLeftParenthesisKeyword_3());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1471:1: ( ( (lv_arguments_4_0= ruleVarDecl ) ) (otherlv_5= ',' ( (lv_arguments_6_0= ruleVarDecl ) ) )* )?
-            int alt30=2;
-            int LA30_0 = input.LA(1);
+            int alt31=2;
+            int LA31_0 = input.LA(1);
 
-            if ( (LA30_0==RULE_ID) ) {
-                alt30=1;
+            if ( (LA31_0==RULE_ID) ) {
+                alt31=1;
             }
-            switch (alt30) {
+            switch (alt31) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1471:2: ( (lv_arguments_4_0= ruleVarDecl ) ) (otherlv_5= ',' ( (lv_arguments_6_0= ruleVarDecl ) ) )*
                     {
@@ -3592,7 +3603,7 @@
                      
                     	        newCompositeNode(grammarAccess.getStandardOperationAccess().getArgumentsVarDeclParserRuleCall_4_0_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleVarDecl_in_ruleStandardOperation2876);
+                    pushFollow(FOLLOW_ruleVarDecl_in_ruleStandardOperation2877);
                     lv_arguments_4_0=ruleVarDecl();
 
                     state._fsp--;
@@ -3615,21 +3626,21 @@
                     }
 
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1489:2: (otherlv_5= ',' ( (lv_arguments_6_0= ruleVarDecl ) ) )*
-                    loop29:
+                    loop30:
                     do {
-                        int alt29=2;
-                        int LA29_0 = input.LA(1);
+                        int alt30=2;
+                        int LA30_0 = input.LA(1);
 
-                        if ( (LA29_0==25) ) {
-                            alt29=1;
+                        if ( (LA30_0==25) ) {
+                            alt30=1;
                         }
 
 
-                        switch (alt29) {
+                        switch (alt30) {
                     	case 1 :
                     	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1489:4: otherlv_5= ',' ( (lv_arguments_6_0= ruleVarDecl ) )
                     	    {
-                    	    otherlv_5=(Token)match(input,25,FOLLOW_25_in_ruleStandardOperation2889); 
+                    	    otherlv_5=(Token)match(input,25,FOLLOW_25_in_ruleStandardOperation2890); 
 
                     	        	newLeafNode(otherlv_5, grammarAccess.getStandardOperationAccess().getCommaKeyword_4_1_0());
                     	        
@@ -3642,7 +3653,7 @@
                     	     
                     	    	        newCompositeNode(grammarAccess.getStandardOperationAccess().getArgumentsVarDeclParserRuleCall_4_1_1_0()); 
                     	    	    
-                    	    pushFollow(FOLLOW_ruleVarDecl_in_ruleStandardOperation2910);
+                    	    pushFollow(FOLLOW_ruleVarDecl_in_ruleStandardOperation2911);
                     	    lv_arguments_6_0=ruleVarDecl();
 
                     	    state._fsp--;
@@ -3669,7 +3680,7 @@
                     	    break;
 
                     	default :
-                    	    break loop29;
+                    	    break loop30;
                         }
                     } while (true);
 
@@ -3679,46 +3690,46 @@
 
             }
 
-            otherlv_7=(Token)match(input,21,FOLLOW_21_in_ruleStandardOperation2926); 
+            otherlv_7=(Token)match(input,21,FOLLOW_21_in_ruleStandardOperation2927); 
 
                 	newLeafNode(otherlv_7, grammarAccess.getStandardOperationAccess().getRightParenthesisKeyword_5());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1515:1: (otherlv_8= ':' (otherlv_9= 'void' | ( (lv_returnType_10_0= ruleRefableType ) ) ) )?
-            int alt32=2;
-            int LA32_0 = input.LA(1);
+            int alt33=2;
+            int LA33_0 = input.LA(1);
 
-            if ( (LA32_0==16) ) {
-                alt32=1;
+            if ( (LA33_0==16) ) {
+                alt33=1;
             }
-            switch (alt32) {
+            switch (alt33) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1515:3: otherlv_8= ':' (otherlv_9= 'void' | ( (lv_returnType_10_0= ruleRefableType ) ) )
                     {
-                    otherlv_8=(Token)match(input,16,FOLLOW_16_in_ruleStandardOperation2939); 
+                    otherlv_8=(Token)match(input,16,FOLLOW_16_in_ruleStandardOperation2940); 
 
                         	newLeafNode(otherlv_8, grammarAccess.getStandardOperationAccess().getColonKeyword_6_0());
                         
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1519:1: (otherlv_9= 'void' | ( (lv_returnType_10_0= ruleRefableType ) ) )
-                    int alt31=2;
-                    int LA31_0 = input.LA(1);
+                    int alt32=2;
+                    int LA32_0 = input.LA(1);
 
-                    if ( (LA31_0==38) ) {
-                        alt31=1;
+                    if ( (LA32_0==38) ) {
+                        alt32=1;
                     }
-                    else if ( (LA31_0==RULE_ID) ) {
-                        alt31=2;
+                    else if ( (LA32_0==RULE_ID) ) {
+                        alt32=2;
                     }
                     else {
                         NoViableAltException nvae =
-                            new NoViableAltException("", 31, 0, input);
+                            new NoViableAltException("", 32, 0, input);
 
                         throw nvae;
                     }
-                    switch (alt31) {
+                    switch (alt32) {
                         case 1 :
                             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1519:3: otherlv_9= 'void'
                             {
-                            otherlv_9=(Token)match(input,38,FOLLOW_38_in_ruleStandardOperation2952); 
+                            otherlv_9=(Token)match(input,38,FOLLOW_38_in_ruleStandardOperation2953); 
 
                                 	newLeafNode(otherlv_9, grammarAccess.getStandardOperationAccess().getVoidKeyword_6_1_0());
                                 
@@ -3737,7 +3748,7 @@
                              
                             	        newCompositeNode(grammarAccess.getStandardOperationAccess().getReturnTypeRefableTypeParserRuleCall_6_1_1_0()); 
                             	    
-                            pushFollow(FOLLOW_ruleRefableType_in_ruleStandardOperation2979);
+                            pushFollow(FOLLOW_ruleRefableType_in_ruleStandardOperation2980);
                             lv_returnType_10_0=ruleRefableType();
 
                             state._fsp--;
@@ -3772,13 +3783,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1542:5: ( (lv_docu_11_0= ruleDocumentation ) )?
-            int alt33=2;
-            int LA33_0 = input.LA(1);
+            int alt34=2;
+            int LA34_0 = input.LA(1);
 
-            if ( (LA33_0==34) ) {
-                alt33=1;
+            if ( (LA34_0==34) ) {
+                alt34=1;
             }
-            switch (alt33) {
+            switch (alt34) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1543:1: (lv_docu_11_0= ruleDocumentation )
                     {
@@ -3788,7 +3799,7 @@
                      
                     	        newCompositeNode(grammarAccess.getStandardOperationAccess().getDocuDocumentationParserRuleCall_7_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDocumentation_in_ruleStandardOperation3003);
+                    pushFollow(FOLLOW_ruleDocumentation_in_ruleStandardOperation3004);
                     lv_docu_11_0=ruleDocumentation();
 
                     state._fsp--;
@@ -3822,7 +3833,7 @@
              
             	        newCompositeNode(grammarAccess.getStandardOperationAccess().getDetailCodeDetailCodeParserRuleCall_8_0()); 
             	    
-            pushFollow(FOLLOW_ruleDetailCode_in_ruleStandardOperation3025);
+            pushFollow(FOLLOW_ruleDetailCode_in_ruleStandardOperation3026);
             lv_detailCode_12_0=ruleDetailCode();
 
             state._fsp--;
@@ -3877,13 +3888,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1588:2: iv_rulePortOperation= rulePortOperation EOF
             {
              newCompositeNode(grammarAccess.getPortOperationRule()); 
-            pushFollow(FOLLOW_rulePortOperation_in_entryRulePortOperation3061);
+            pushFollow(FOLLOW_rulePortOperation_in_entryRulePortOperation3062);
             iv_rulePortOperation=rulePortOperation();
 
             state._fsp--;
 
              current =iv_rulePortOperation; 
-            match(input,EOF,FOLLOW_EOF_in_entryRulePortOperation3071); 
+            match(input,EOF,FOLLOW_EOF_in_entryRulePortOperation3072); 
 
             }
 
@@ -3934,7 +3945,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1599:1: (otherlv_0= 'Operation' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '(' ( ( (lv_arguments_3_0= ruleVarDecl ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleVarDecl ) ) )* )? otherlv_6= ')' ( (otherlv_7= ':' (otherlv_8= 'void' | ( (lv_returnType_9_0= ruleRefableType ) ) ) ) | (otherlv_10= 'sends' ( (otherlv_11= RULE_ID ) ) ) )? ( (lv_docu_12_0= ruleDocumentation ) )? ( (lv_detailCode_13_0= ruleDetailCode ) ) )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1599:3: otherlv_0= 'Operation' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '(' ( ( (lv_arguments_3_0= ruleVarDecl ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleVarDecl ) ) )* )? otherlv_6= ')' ( (otherlv_7= ':' (otherlv_8= 'void' | ( (lv_returnType_9_0= ruleRefableType ) ) ) ) | (otherlv_10= 'sends' ( (otherlv_11= RULE_ID ) ) ) )? ( (lv_docu_12_0= ruleDocumentation ) )? ( (lv_detailCode_13_0= ruleDetailCode ) )
             {
-            otherlv_0=(Token)match(input,37,FOLLOW_37_in_rulePortOperation3108); 
+            otherlv_0=(Token)match(input,37,FOLLOW_37_in_rulePortOperation3109); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getPortOperationAccess().getOperationKeyword_0());
                 
@@ -3944,7 +3955,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1604:1: (lv_name_1_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1605:3: lv_name_1_0= RULE_ID
             {
-            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_rulePortOperation3125); 
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_rulePortOperation3126); 
 
             			newLeafNode(lv_name_1_0, grammarAccess.getPortOperationAccess().getNameIDTerminalRuleCall_1_0()); 
             		
@@ -3964,18 +3975,18 @@
 
             }
 
-            otherlv_2=(Token)match(input,20,FOLLOW_20_in_rulePortOperation3142); 
+            otherlv_2=(Token)match(input,20,FOLLOW_20_in_rulePortOperation3143); 
 
                 	newLeafNode(otherlv_2, grammarAccess.getPortOperationAccess().getLeftParenthesisKeyword_2());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1625:1: ( ( (lv_arguments_3_0= ruleVarDecl ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleVarDecl ) ) )* )?
-            int alt35=2;
-            int LA35_0 = input.LA(1);
+            int alt36=2;
+            int LA36_0 = input.LA(1);
 
-            if ( (LA35_0==RULE_ID) ) {
-                alt35=1;
+            if ( (LA36_0==RULE_ID) ) {
+                alt36=1;
             }
-            switch (alt35) {
+            switch (alt36) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1625:2: ( (lv_arguments_3_0= ruleVarDecl ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleVarDecl ) ) )*
                     {
@@ -3988,7 +3999,7 @@
                      
                     	        newCompositeNode(grammarAccess.getPortOperationAccess().getArgumentsVarDeclParserRuleCall_3_0_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleVarDecl_in_rulePortOperation3164);
+                    pushFollow(FOLLOW_ruleVarDecl_in_rulePortOperation3165);
                     lv_arguments_3_0=ruleVarDecl();
 
                     state._fsp--;
@@ -4011,21 +4022,21 @@
                     }
 
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1643:2: (otherlv_4= ',' ( (lv_arguments_5_0= ruleVarDecl ) ) )*
-                    loop34:
+                    loop35:
                     do {
-                        int alt34=2;
-                        int LA34_0 = input.LA(1);
+                        int alt35=2;
+                        int LA35_0 = input.LA(1);
 
-                        if ( (LA34_0==25) ) {
-                            alt34=1;
+                        if ( (LA35_0==25) ) {
+                            alt35=1;
                         }
 
 
-                        switch (alt34) {
+                        switch (alt35) {
                     	case 1 :
                     	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1643:4: otherlv_4= ',' ( (lv_arguments_5_0= ruleVarDecl ) )
                     	    {
-                    	    otherlv_4=(Token)match(input,25,FOLLOW_25_in_rulePortOperation3177); 
+                    	    otherlv_4=(Token)match(input,25,FOLLOW_25_in_rulePortOperation3178); 
 
                     	        	newLeafNode(otherlv_4, grammarAccess.getPortOperationAccess().getCommaKeyword_3_1_0());
                     	        
@@ -4038,7 +4049,7 @@
                     	     
                     	    	        newCompositeNode(grammarAccess.getPortOperationAccess().getArgumentsVarDeclParserRuleCall_3_1_1_0()); 
                     	    	    
-                    	    pushFollow(FOLLOW_ruleVarDecl_in_rulePortOperation3198);
+                    	    pushFollow(FOLLOW_ruleVarDecl_in_rulePortOperation3199);
                     	    lv_arguments_5_0=ruleVarDecl();
 
                     	    state._fsp--;
@@ -4065,7 +4076,7 @@
                     	    break;
 
                     	default :
-                    	    break loop34;
+                    	    break loop35;
                         }
                     } while (true);
 
@@ -4075,52 +4086,52 @@
 
             }
 
-            otherlv_6=(Token)match(input,21,FOLLOW_21_in_rulePortOperation3214); 
+            otherlv_6=(Token)match(input,21,FOLLOW_21_in_rulePortOperation3215); 
 
                 	newLeafNode(otherlv_6, grammarAccess.getPortOperationAccess().getRightParenthesisKeyword_4());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1669:1: ( (otherlv_7= ':' (otherlv_8= 'void' | ( (lv_returnType_9_0= ruleRefableType ) ) ) ) | (otherlv_10= 'sends' ( (otherlv_11= RULE_ID ) ) ) )?
-            int alt37=3;
-            int LA37_0 = input.LA(1);
+            int alt38=3;
+            int LA38_0 = input.LA(1);
 
-            if ( (LA37_0==16) ) {
-                alt37=1;
+            if ( (LA38_0==16) ) {
+                alt38=1;
             }
-            else if ( (LA37_0==39) ) {
-                alt37=2;
+            else if ( (LA38_0==39) ) {
+                alt38=2;
             }
-            switch (alt37) {
+            switch (alt38) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1669:2: (otherlv_7= ':' (otherlv_8= 'void' | ( (lv_returnType_9_0= ruleRefableType ) ) ) )
                     {
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1669:2: (otherlv_7= ':' (otherlv_8= 'void' | ( (lv_returnType_9_0= ruleRefableType ) ) ) )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1669:4: otherlv_7= ':' (otherlv_8= 'void' | ( (lv_returnType_9_0= ruleRefableType ) ) )
                     {
-                    otherlv_7=(Token)match(input,16,FOLLOW_16_in_rulePortOperation3228); 
+                    otherlv_7=(Token)match(input,16,FOLLOW_16_in_rulePortOperation3229); 
 
                         	newLeafNode(otherlv_7, grammarAccess.getPortOperationAccess().getColonKeyword_5_0_0());
                         
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1673:1: (otherlv_8= 'void' | ( (lv_returnType_9_0= ruleRefableType ) ) )
-                    int alt36=2;
-                    int LA36_0 = input.LA(1);
+                    int alt37=2;
+                    int LA37_0 = input.LA(1);
 
-                    if ( (LA36_0==38) ) {
-                        alt36=1;
+                    if ( (LA37_0==38) ) {
+                        alt37=1;
                     }
-                    else if ( (LA36_0==RULE_ID) ) {
-                        alt36=2;
+                    else if ( (LA37_0==RULE_ID) ) {
+                        alt37=2;
                     }
                     else {
                         NoViableAltException nvae =
-                            new NoViableAltException("", 36, 0, input);
+                            new NoViableAltException("", 37, 0, input);
 
                         throw nvae;
                     }
-                    switch (alt36) {
+                    switch (alt37) {
                         case 1 :
                             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1673:3: otherlv_8= 'void'
                             {
-                            otherlv_8=(Token)match(input,38,FOLLOW_38_in_rulePortOperation3241); 
+                            otherlv_8=(Token)match(input,38,FOLLOW_38_in_rulePortOperation3242); 
 
                                 	newLeafNode(otherlv_8, grammarAccess.getPortOperationAccess().getVoidKeyword_5_0_1_0());
                                 
@@ -4139,7 +4150,7 @@
                              
                             	        newCompositeNode(grammarAccess.getPortOperationAccess().getReturnTypeRefableTypeParserRuleCall_5_0_1_1_0()); 
                             	    
-                            pushFollow(FOLLOW_ruleRefableType_in_rulePortOperation3268);
+                            pushFollow(FOLLOW_ruleRefableType_in_rulePortOperation3269);
                             lv_returnType_9_0=ruleRefableType();
 
                             state._fsp--;
@@ -4179,7 +4190,7 @@
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1697:6: (otherlv_10= 'sends' ( (otherlv_11= RULE_ID ) ) )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1697:8: otherlv_10= 'sends' ( (otherlv_11= RULE_ID ) )
                     {
-                    otherlv_10=(Token)match(input,39,FOLLOW_39_in_rulePortOperation3289); 
+                    otherlv_10=(Token)match(input,39,FOLLOW_39_in_rulePortOperation3290); 
 
                         	newLeafNode(otherlv_10, grammarAccess.getPortOperationAccess().getSendsKeyword_5_1_0());
                         
@@ -4194,7 +4205,7 @@
                     	            current = createModelElement(grammarAccess.getPortOperationRule());
                     	        }
                             
-                    otherlv_11=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_rulePortOperation3309); 
+                    otherlv_11=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_rulePortOperation3310); 
 
                     		newLeafNode(otherlv_11, grammarAccess.getPortOperationAccess().getSendsMsgMessageCrossReference_5_1_1_0()); 
                     	
@@ -4214,13 +4225,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1714:5: ( (lv_docu_12_0= ruleDocumentation ) )?
-            int alt38=2;
-            int LA38_0 = input.LA(1);
+            int alt39=2;
+            int LA39_0 = input.LA(1);
 
-            if ( (LA38_0==34) ) {
-                alt38=1;
+            if ( (LA39_0==34) ) {
+                alt39=1;
             }
-            switch (alt38) {
+            switch (alt39) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1715:1: (lv_docu_12_0= ruleDocumentation )
                     {
@@ -4230,7 +4241,7 @@
                      
                     	        newCompositeNode(grammarAccess.getPortOperationAccess().getDocuDocumentationParserRuleCall_6_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDocumentation_in_rulePortOperation3333);
+                    pushFollow(FOLLOW_ruleDocumentation_in_rulePortOperation3334);
                     lv_docu_12_0=ruleDocumentation();
 
                     state._fsp--;
@@ -4264,7 +4275,7 @@
              
             	        newCompositeNode(grammarAccess.getPortOperationAccess().getDetailCodeDetailCodeParserRuleCall_7_0()); 
             	    
-            pushFollow(FOLLOW_ruleDetailCode_in_rulePortOperation3355);
+            pushFollow(FOLLOW_ruleDetailCode_in_rulePortOperation3356);
             lv_detailCode_13_0=ruleDetailCode();
 
             state._fsp--;
@@ -4319,13 +4330,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1760:2: iv_ruleClassStructor= ruleClassStructor EOF
             {
              newCompositeNode(grammarAccess.getClassStructorRule()); 
-            pushFollow(FOLLOW_ruleClassStructor_in_entryRuleClassStructor3391);
+            pushFollow(FOLLOW_ruleClassStructor_in_entryRuleClassStructor3392);
             iv_ruleClassStructor=ruleClassStructor();
 
             state._fsp--;
 
              current =iv_ruleClassStructor; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleClassStructor3401); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleClassStructor3402); 
 
             }
 
@@ -4368,26 +4379,26 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1773:1: (lv_name_0_1= 'ctor' | lv_name_0_2= 'dtor' )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1773:1: (lv_name_0_1= 'ctor' | lv_name_0_2= 'dtor' )
-            int alt39=2;
-            int LA39_0 = input.LA(1);
+            int alt40=2;
+            int LA40_0 = input.LA(1);
 
-            if ( (LA39_0==40) ) {
-                alt39=1;
+            if ( (LA40_0==40) ) {
+                alt40=1;
             }
-            else if ( (LA39_0==41) ) {
-                alt39=2;
+            else if ( (LA40_0==41) ) {
+                alt40=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 39, 0, input);
+                    new NoViableAltException("", 40, 0, input);
 
                 throw nvae;
             }
-            switch (alt39) {
+            switch (alt40) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1774:3: lv_name_0_1= 'ctor'
                     {
-                    lv_name_0_1=(Token)match(input,40,FOLLOW_40_in_ruleClassStructor3446); 
+                    lv_name_0_1=(Token)match(input,40,FOLLOW_40_in_ruleClassStructor3447); 
 
                             newLeafNode(lv_name_0_1, grammarAccess.getClassStructorAccess().getNameCtorKeyword_0_0_0());
                         
@@ -4403,7 +4414,7 @@
                 case 2 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1786:8: lv_name_0_2= 'dtor'
                     {
-                    lv_name_0_2=(Token)match(input,41,FOLLOW_41_in_ruleClassStructor3475); 
+                    lv_name_0_2=(Token)match(input,41,FOLLOW_41_in_ruleClassStructor3476); 
 
                             newLeafNode(lv_name_0_2, grammarAccess.getClassStructorAccess().getNameDtorKeyword_0_0_1());
                         
@@ -4434,7 +4445,7 @@
              
             	        newCompositeNode(grammarAccess.getClassStructorAccess().getDetailCodeDetailCodeParserRuleCall_1_0()); 
             	    
-            pushFollow(FOLLOW_ruleDetailCode_in_ruleClassStructor3512);
+            pushFollow(FOLLOW_ruleDetailCode_in_ruleClassStructor3513);
             lv_detailCode_1_0=ruleDetailCode();
 
             state._fsp--;
@@ -4489,13 +4500,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1829:2: iv_ruleGeneralProtocolClass= ruleGeneralProtocolClass EOF
             {
              newCompositeNode(grammarAccess.getGeneralProtocolClassRule()); 
-            pushFollow(FOLLOW_ruleGeneralProtocolClass_in_entryRuleGeneralProtocolClass3548);
+            pushFollow(FOLLOW_ruleGeneralProtocolClass_in_entryRuleGeneralProtocolClass3549);
             iv_ruleGeneralProtocolClass=ruleGeneralProtocolClass();
 
             state._fsp--;
 
              current =iv_ruleGeneralProtocolClass; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleGeneralProtocolClass3558); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleGeneralProtocolClass3559); 
 
             }
 
@@ -4529,29 +4540,29 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1840:1: (this_ProtocolClass_0= ruleProtocolClass | this_CompoundProtocolClass_1= ruleCompoundProtocolClass )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1840:1: (this_ProtocolClass_0= ruleProtocolClass | this_CompoundProtocolClass_1= ruleCompoundProtocolClass )
-            int alt40=2;
-            int LA40_0 = input.LA(1);
+            int alt41=2;
+            int LA41_0 = input.LA(1);
 
-            if ( (LA40_0==42||(LA40_0>=122 && LA40_0<=124)) ) {
-                alt40=1;
+            if ( (LA41_0==42||(LA41_0>=122 && LA41_0<=124)) ) {
+                alt41=1;
             }
-            else if ( (LA40_0==48) ) {
-                alt40=2;
+            else if ( (LA41_0==48) ) {
+                alt41=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 40, 0, input);
+                    new NoViableAltException("", 41, 0, input);
 
                 throw nvae;
             }
-            switch (alt40) {
+            switch (alt41) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1841:5: this_ProtocolClass_0= ruleProtocolClass
                     {
                      
                             newCompositeNode(grammarAccess.getGeneralProtocolClassAccess().getProtocolClassParserRuleCall_0()); 
                         
-                    pushFollow(FOLLOW_ruleProtocolClass_in_ruleGeneralProtocolClass3605);
+                    pushFollow(FOLLOW_ruleProtocolClass_in_ruleGeneralProtocolClass3606);
                     this_ProtocolClass_0=ruleProtocolClass();
 
                     state._fsp--;
@@ -4569,7 +4580,7 @@
                      
                             newCompositeNode(grammarAccess.getGeneralProtocolClassAccess().getCompoundProtocolClassParserRuleCall_1()); 
                         
-                    pushFollow(FOLLOW_ruleCompoundProtocolClass_in_ruleGeneralProtocolClass3632);
+                    pushFollow(FOLLOW_ruleCompoundProtocolClass_in_ruleGeneralProtocolClass3633);
                     this_CompoundProtocolClass_1=ruleCompoundProtocolClass();
 
                     state._fsp--;
@@ -4614,13 +4625,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1869:2: iv_ruleProtocolClass= ruleProtocolClass EOF
             {
              newCompositeNode(grammarAccess.getProtocolClassRule()); 
-            pushFollow(FOLLOW_ruleProtocolClass_in_entryRuleProtocolClass3667);
+            pushFollow(FOLLOW_ruleProtocolClass_in_entryRuleProtocolClass3668);
             iv_ruleProtocolClass=ruleProtocolClass();
 
             state._fsp--;
 
              current =iv_ruleProtocolClass; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleProtocolClass3677); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleProtocolClass3678); 
 
             }
 
@@ -4693,13 +4704,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1880:2: ( (lv_commType_0_0= ruleCommunicationType ) )? otherlv_1= 'ProtocolClass' ( (lv_name_2_0= RULE_ID ) ) ( (lv_docu_3_0= ruleDocumentation ) )? (otherlv_4= 'extends' ( ( ruleFQN ) ) )? otherlv_6= '{' ( (lv_annotations_7_0= ruleAnnotation ) )* (otherlv_8= 'usercode1' ( (lv_userCode1_9_0= ruleDetailCode ) ) )? (otherlv_10= 'usercode2' ( (lv_userCode2_11_0= ruleDetailCode ) ) )? (otherlv_12= 'usercode3' ( (lv_userCode3_13_0= ruleDetailCode ) ) )? (otherlv_14= 'incoming' otherlv_15= '{' ( (lv_incomingMessages_16_0= ruleMessage ) )* otherlv_17= '}' )? (otherlv_18= 'outgoing' otherlv_19= '{' ( (lv_outgoingMessages_20_0= ruleMessage ) )* otherlv_21= '}' )? (otherlv_22= 'regular' otherlv_23= 'PortClass' ( (lv_regular_24_0= rulePortClass ) ) )? (otherlv_25= 'conjugated' otherlv_26= 'PortClass' ( (lv_conjugated_27_0= rulePortClass ) ) )? ( (lv_semantics_28_0= ruleProtocolSemantics ) )? otherlv_29= '}'
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1880:2: ( (lv_commType_0_0= ruleCommunicationType ) )?
-            int alt41=2;
-            int LA41_0 = input.LA(1);
+            int alt42=2;
+            int LA42_0 = input.LA(1);
 
-            if ( ((LA41_0>=122 && LA41_0<=124)) ) {
-                alt41=1;
+            if ( ((LA42_0>=122 && LA42_0<=124)) ) {
+                alt42=1;
             }
-            switch (alt41) {
+            switch (alt42) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1881:1: (lv_commType_0_0= ruleCommunicationType )
                     {
@@ -4709,7 +4720,7 @@
                      
                     	        newCompositeNode(grammarAccess.getProtocolClassAccess().getCommTypeCommunicationTypeEnumRuleCall_0_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleCommunicationType_in_ruleProtocolClass3723);
+                    pushFollow(FOLLOW_ruleCommunicationType_in_ruleProtocolClass3724);
                     lv_commType_0_0=ruleCommunicationType();
 
                     state._fsp--;
@@ -4734,7 +4745,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,42,FOLLOW_42_in_ruleProtocolClass3736); 
+            otherlv_1=(Token)match(input,42,FOLLOW_42_in_ruleProtocolClass3737); 
 
                 	newLeafNode(otherlv_1, grammarAccess.getProtocolClassAccess().getProtocolClassKeyword_1());
                 
@@ -4744,7 +4755,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1903:1: (lv_name_2_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1904:3: lv_name_2_0= RULE_ID
             {
-            lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleProtocolClass3753); 
+            lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleProtocolClass3754); 
 
             			newLeafNode(lv_name_2_0, grammarAccess.getProtocolClassAccess().getNameIDTerminalRuleCall_2_0()); 
             		
@@ -4765,13 +4776,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1920:2: ( (lv_docu_3_0= ruleDocumentation ) )?
-            int alt42=2;
-            int LA42_0 = input.LA(1);
+            int alt43=2;
+            int LA43_0 = input.LA(1);
 
-            if ( (LA42_0==34) ) {
-                alt42=1;
+            if ( (LA43_0==34) ) {
+                alt43=1;
             }
-            switch (alt42) {
+            switch (alt43) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1921:1: (lv_docu_3_0= ruleDocumentation )
                     {
@@ -4781,7 +4792,7 @@
                      
                     	        newCompositeNode(grammarAccess.getProtocolClassAccess().getDocuDocumentationParserRuleCall_3_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDocumentation_in_ruleProtocolClass3779);
+                    pushFollow(FOLLOW_ruleDocumentation_in_ruleProtocolClass3780);
                     lv_docu_3_0=ruleDocumentation();
 
                     state._fsp--;
@@ -4807,17 +4818,17 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1938:3: (otherlv_4= 'extends' ( ( ruleFQN ) ) )?
-            int alt43=2;
-            int LA43_0 = input.LA(1);
+            int alt44=2;
+            int LA44_0 = input.LA(1);
 
-            if ( (LA43_0==29) ) {
-                alt43=1;
+            if ( (LA44_0==29) ) {
+                alt44=1;
             }
-            switch (alt43) {
+            switch (alt44) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1938:5: otherlv_4= 'extends' ( ( ruleFQN ) )
                     {
-                    otherlv_4=(Token)match(input,29,FOLLOW_29_in_ruleProtocolClass3793); 
+                    otherlv_4=(Token)match(input,29,FOLLOW_29_in_ruleProtocolClass3794); 
 
                         	newLeafNode(otherlv_4, grammarAccess.getProtocolClassAccess().getExtendsKeyword_4_0());
                         
@@ -4835,7 +4846,7 @@
                      
                     	        newCompositeNode(grammarAccess.getProtocolClassAccess().getBaseProtocolClassCrossReference_4_1_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleFQN_in_ruleProtocolClass3816);
+                    pushFollow(FOLLOW_ruleFQN_in_ruleProtocolClass3817);
                     ruleFQN();
 
                     state._fsp--;
@@ -4855,22 +4866,22 @@
 
             }
 
-            otherlv_6=(Token)match(input,14,FOLLOW_14_in_ruleProtocolClass3830); 
+            otherlv_6=(Token)match(input,14,FOLLOW_14_in_ruleProtocolClass3831); 
 
                 	newLeafNode(otherlv_6, grammarAccess.getProtocolClassAccess().getLeftCurlyBracketKeyword_5());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1961:1: ( (lv_annotations_7_0= ruleAnnotation ) )*
-            loop44:
+            loop45:
             do {
-                int alt44=2;
-                int LA44_0 = input.LA(1);
+                int alt45=2;
+                int LA45_0 = input.LA(1);
 
-                if ( (LA44_0==108) ) {
-                    alt44=1;
+                if ( (LA45_0==108) ) {
+                    alt45=1;
                 }
 
 
-                switch (alt44) {
+                switch (alt45) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1962:1: (lv_annotations_7_0= ruleAnnotation )
             	    {
@@ -4880,7 +4891,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getProtocolClassAccess().getAnnotationsAnnotationParserRuleCall_6_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleAnnotation_in_ruleProtocolClass3851);
+            	    pushFollow(FOLLOW_ruleAnnotation_in_ruleProtocolClass3852);
             	    lv_annotations_7_0=ruleAnnotation();
 
             	    state._fsp--;
@@ -4904,22 +4915,22 @@
             	    break;
 
             	default :
-            	    break loop44;
+            	    break loop45;
                 }
             } while (true);
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1979:3: (otherlv_8= 'usercode1' ( (lv_userCode1_9_0= ruleDetailCode ) ) )?
-            int alt45=2;
-            int LA45_0 = input.LA(1);
+            int alt46=2;
+            int LA46_0 = input.LA(1);
 
-            if ( (LA45_0==30) ) {
-                alt45=1;
+            if ( (LA46_0==30) ) {
+                alt46=1;
             }
-            switch (alt45) {
+            switch (alt46) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:1979:5: otherlv_8= 'usercode1' ( (lv_userCode1_9_0= ruleDetailCode ) )
                     {
-                    otherlv_8=(Token)match(input,30,FOLLOW_30_in_ruleProtocolClass3865); 
+                    otherlv_8=(Token)match(input,30,FOLLOW_30_in_ruleProtocolClass3866); 
 
                         	newLeafNode(otherlv_8, grammarAccess.getProtocolClassAccess().getUsercode1Keyword_7_0());
                         
@@ -4932,7 +4943,7 @@
                      
                     	        newCompositeNode(grammarAccess.getProtocolClassAccess().getUserCode1DetailCodeParserRuleCall_7_1_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDetailCode_in_ruleProtocolClass3886);
+                    pushFollow(FOLLOW_ruleDetailCode_in_ruleProtocolClass3887);
                     lv_userCode1_9_0=ruleDetailCode();
 
                     state._fsp--;
@@ -4961,17 +4972,17 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2001:4: (otherlv_10= 'usercode2' ( (lv_userCode2_11_0= ruleDetailCode ) ) )?
-            int alt46=2;
-            int LA46_0 = input.LA(1);
+            int alt47=2;
+            int LA47_0 = input.LA(1);
 
-            if ( (LA46_0==31) ) {
-                alt46=1;
+            if ( (LA47_0==31) ) {
+                alt47=1;
             }
-            switch (alt46) {
+            switch (alt47) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2001:6: otherlv_10= 'usercode2' ( (lv_userCode2_11_0= ruleDetailCode ) )
                     {
-                    otherlv_10=(Token)match(input,31,FOLLOW_31_in_ruleProtocolClass3901); 
+                    otherlv_10=(Token)match(input,31,FOLLOW_31_in_ruleProtocolClass3902); 
 
                         	newLeafNode(otherlv_10, grammarAccess.getProtocolClassAccess().getUsercode2Keyword_8_0());
                         
@@ -4984,7 +4995,7 @@
                      
                     	        newCompositeNode(grammarAccess.getProtocolClassAccess().getUserCode2DetailCodeParserRuleCall_8_1_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDetailCode_in_ruleProtocolClass3922);
+                    pushFollow(FOLLOW_ruleDetailCode_in_ruleProtocolClass3923);
                     lv_userCode2_11_0=ruleDetailCode();
 
                     state._fsp--;
@@ -5013,17 +5024,17 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2023:4: (otherlv_12= 'usercode3' ( (lv_userCode3_13_0= ruleDetailCode ) ) )?
-            int alt47=2;
-            int LA47_0 = input.LA(1);
+            int alt48=2;
+            int LA48_0 = input.LA(1);
 
-            if ( (LA47_0==32) ) {
-                alt47=1;
+            if ( (LA48_0==32) ) {
+                alt48=1;
             }
-            switch (alt47) {
+            switch (alt48) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2023:6: otherlv_12= 'usercode3' ( (lv_userCode3_13_0= ruleDetailCode ) )
                     {
-                    otherlv_12=(Token)match(input,32,FOLLOW_32_in_ruleProtocolClass3937); 
+                    otherlv_12=(Token)match(input,32,FOLLOW_32_in_ruleProtocolClass3938); 
 
                         	newLeafNode(otherlv_12, grammarAccess.getProtocolClassAccess().getUsercode3Keyword_9_0());
                         
@@ -5036,7 +5047,7 @@
                      
                     	        newCompositeNode(grammarAccess.getProtocolClassAccess().getUserCode3DetailCodeParserRuleCall_9_1_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDetailCode_in_ruleProtocolClass3958);
+                    pushFollow(FOLLOW_ruleDetailCode_in_ruleProtocolClass3959);
                     lv_userCode3_13_0=ruleDetailCode();
 
                     state._fsp--;
@@ -5065,36 +5076,36 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2045:4: (otherlv_14= 'incoming' otherlv_15= '{' ( (lv_incomingMessages_16_0= ruleMessage ) )* otherlv_17= '}' )?
-            int alt49=2;
-            int LA49_0 = input.LA(1);
+            int alt50=2;
+            int LA50_0 = input.LA(1);
 
-            if ( (LA49_0==43) ) {
-                alt49=1;
+            if ( (LA50_0==43) ) {
+                alt50=1;
             }
-            switch (alt49) {
+            switch (alt50) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2045:6: otherlv_14= 'incoming' otherlv_15= '{' ( (lv_incomingMessages_16_0= ruleMessage ) )* otherlv_17= '}'
                     {
-                    otherlv_14=(Token)match(input,43,FOLLOW_43_in_ruleProtocolClass3973); 
+                    otherlv_14=(Token)match(input,43,FOLLOW_43_in_ruleProtocolClass3974); 
 
                         	newLeafNode(otherlv_14, grammarAccess.getProtocolClassAccess().getIncomingKeyword_10_0());
                         
-                    otherlv_15=(Token)match(input,14,FOLLOW_14_in_ruleProtocolClass3985); 
+                    otherlv_15=(Token)match(input,14,FOLLOW_14_in_ruleProtocolClass3986); 
 
                         	newLeafNode(otherlv_15, grammarAccess.getProtocolClassAccess().getLeftCurlyBracketKeyword_10_1());
                         
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2053:1: ( (lv_incomingMessages_16_0= ruleMessage ) )*
-                    loop48:
+                    loop49:
                     do {
-                        int alt48=2;
-                        int LA48_0 = input.LA(1);
+                        int alt49=2;
+                        int LA49_0 = input.LA(1);
 
-                        if ( ((LA48_0>=50 && LA48_0<=51)) ) {
-                            alt48=1;
+                        if ( ((LA49_0>=50 && LA49_0<=51)) ) {
+                            alt49=1;
                         }
 
 
-                        switch (alt48) {
+                        switch (alt49) {
                     	case 1 :
                     	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2054:1: (lv_incomingMessages_16_0= ruleMessage )
                     	    {
@@ -5104,7 +5115,7 @@
                     	     
                     	    	        newCompositeNode(grammarAccess.getProtocolClassAccess().getIncomingMessagesMessageParserRuleCall_10_2_0()); 
                     	    	    
-                    	    pushFollow(FOLLOW_ruleMessage_in_ruleProtocolClass4006);
+                    	    pushFollow(FOLLOW_ruleMessage_in_ruleProtocolClass4007);
                     	    lv_incomingMessages_16_0=ruleMessage();
 
                     	    state._fsp--;
@@ -5128,11 +5139,11 @@
                     	    break;
 
                     	default :
-                    	    break loop48;
+                    	    break loop49;
                         }
                     } while (true);
 
-                    otherlv_17=(Token)match(input,15,FOLLOW_15_in_ruleProtocolClass4019); 
+                    otherlv_17=(Token)match(input,15,FOLLOW_15_in_ruleProtocolClass4020); 
 
                         	newLeafNode(otherlv_17, grammarAccess.getProtocolClassAccess().getRightCurlyBracketKeyword_10_3());
                         
@@ -5143,36 +5154,36 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2075:3: (otherlv_18= 'outgoing' otherlv_19= '{' ( (lv_outgoingMessages_20_0= ruleMessage ) )* otherlv_21= '}' )?
-            int alt51=2;
-            int LA51_0 = input.LA(1);
+            int alt52=2;
+            int LA52_0 = input.LA(1);
 
-            if ( (LA51_0==44) ) {
-                alt51=1;
+            if ( (LA52_0==44) ) {
+                alt52=1;
             }
-            switch (alt51) {
+            switch (alt52) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2075:5: otherlv_18= 'outgoing' otherlv_19= '{' ( (lv_outgoingMessages_20_0= ruleMessage ) )* otherlv_21= '}'
                     {
-                    otherlv_18=(Token)match(input,44,FOLLOW_44_in_ruleProtocolClass4034); 
+                    otherlv_18=(Token)match(input,44,FOLLOW_44_in_ruleProtocolClass4035); 
 
                         	newLeafNode(otherlv_18, grammarAccess.getProtocolClassAccess().getOutgoingKeyword_11_0());
                         
-                    otherlv_19=(Token)match(input,14,FOLLOW_14_in_ruleProtocolClass4046); 
+                    otherlv_19=(Token)match(input,14,FOLLOW_14_in_ruleProtocolClass4047); 
 
                         	newLeafNode(otherlv_19, grammarAccess.getProtocolClassAccess().getLeftCurlyBracketKeyword_11_1());
                         
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2083:1: ( (lv_outgoingMessages_20_0= ruleMessage ) )*
-                    loop50:
+                    loop51:
                     do {
-                        int alt50=2;
-                        int LA50_0 = input.LA(1);
+                        int alt51=2;
+                        int LA51_0 = input.LA(1);
 
-                        if ( ((LA50_0>=50 && LA50_0<=51)) ) {
-                            alt50=1;
+                        if ( ((LA51_0>=50 && LA51_0<=51)) ) {
+                            alt51=1;
                         }
 
 
-                        switch (alt50) {
+                        switch (alt51) {
                     	case 1 :
                     	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2084:1: (lv_outgoingMessages_20_0= ruleMessage )
                     	    {
@@ -5182,7 +5193,7 @@
                     	     
                     	    	        newCompositeNode(grammarAccess.getProtocolClassAccess().getOutgoingMessagesMessageParserRuleCall_11_2_0()); 
                     	    	    
-                    	    pushFollow(FOLLOW_ruleMessage_in_ruleProtocolClass4067);
+                    	    pushFollow(FOLLOW_ruleMessage_in_ruleProtocolClass4068);
                     	    lv_outgoingMessages_20_0=ruleMessage();
 
                     	    state._fsp--;
@@ -5206,11 +5217,11 @@
                     	    break;
 
                     	default :
-                    	    break loop50;
+                    	    break loop51;
                         }
                     } while (true);
 
-                    otherlv_21=(Token)match(input,15,FOLLOW_15_in_ruleProtocolClass4080); 
+                    otherlv_21=(Token)match(input,15,FOLLOW_15_in_ruleProtocolClass4081); 
 
                         	newLeafNode(otherlv_21, grammarAccess.getProtocolClassAccess().getRightCurlyBracketKeyword_11_3());
                         
@@ -5221,21 +5232,21 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2105:3: (otherlv_22= 'regular' otherlv_23= 'PortClass' ( (lv_regular_24_0= rulePortClass ) ) )?
-            int alt52=2;
-            int LA52_0 = input.LA(1);
+            int alt53=2;
+            int LA53_0 = input.LA(1);
 
-            if ( (LA52_0==45) ) {
-                alt52=1;
+            if ( (LA53_0==45) ) {
+                alt53=1;
             }
-            switch (alt52) {
+            switch (alt53) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2105:5: otherlv_22= 'regular' otherlv_23= 'PortClass' ( (lv_regular_24_0= rulePortClass ) )
                     {
-                    otherlv_22=(Token)match(input,45,FOLLOW_45_in_ruleProtocolClass4095); 
+                    otherlv_22=(Token)match(input,45,FOLLOW_45_in_ruleProtocolClass4096); 
 
                         	newLeafNode(otherlv_22, grammarAccess.getProtocolClassAccess().getRegularKeyword_12_0());
                         
-                    otherlv_23=(Token)match(input,46,FOLLOW_46_in_ruleProtocolClass4107); 
+                    otherlv_23=(Token)match(input,46,FOLLOW_46_in_ruleProtocolClass4108); 
 
                         	newLeafNode(otherlv_23, grammarAccess.getProtocolClassAccess().getPortClassKeyword_12_1());
                         
@@ -5248,7 +5259,7 @@
                      
                     	        newCompositeNode(grammarAccess.getProtocolClassAccess().getRegularPortClassParserRuleCall_12_2_0()); 
                     	    
-                    pushFollow(FOLLOW_rulePortClass_in_ruleProtocolClass4128);
+                    pushFollow(FOLLOW_rulePortClass_in_ruleProtocolClass4129);
                     lv_regular_24_0=rulePortClass();
 
                     state._fsp--;
@@ -5277,21 +5288,21 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2131:4: (otherlv_25= 'conjugated' otherlv_26= 'PortClass' ( (lv_conjugated_27_0= rulePortClass ) ) )?
-            int alt53=2;
-            int LA53_0 = input.LA(1);
+            int alt54=2;
+            int LA54_0 = input.LA(1);
 
-            if ( (LA53_0==47) ) {
-                alt53=1;
+            if ( (LA54_0==47) ) {
+                alt54=1;
             }
-            switch (alt53) {
+            switch (alt54) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2131:6: otherlv_25= 'conjugated' otherlv_26= 'PortClass' ( (lv_conjugated_27_0= rulePortClass ) )
                     {
-                    otherlv_25=(Token)match(input,47,FOLLOW_47_in_ruleProtocolClass4143); 
+                    otherlv_25=(Token)match(input,47,FOLLOW_47_in_ruleProtocolClass4144); 
 
                         	newLeafNode(otherlv_25, grammarAccess.getProtocolClassAccess().getConjugatedKeyword_13_0());
                         
-                    otherlv_26=(Token)match(input,46,FOLLOW_46_in_ruleProtocolClass4155); 
+                    otherlv_26=(Token)match(input,46,FOLLOW_46_in_ruleProtocolClass4156); 
 
                         	newLeafNode(otherlv_26, grammarAccess.getProtocolClassAccess().getPortClassKeyword_13_1());
                         
@@ -5304,7 +5315,7 @@
                      
                     	        newCompositeNode(grammarAccess.getProtocolClassAccess().getConjugatedPortClassParserRuleCall_13_2_0()); 
                     	    
-                    pushFollow(FOLLOW_rulePortClass_in_ruleProtocolClass4176);
+                    pushFollow(FOLLOW_rulePortClass_in_ruleProtocolClass4177);
                     lv_conjugated_27_0=rulePortClass();
 
                     state._fsp--;
@@ -5333,13 +5344,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2157:4: ( (lv_semantics_28_0= ruleProtocolSemantics ) )?
-            int alt54=2;
-            int LA54_0 = input.LA(1);
+            int alt55=2;
+            int LA55_0 = input.LA(1);
 
-            if ( (LA54_0==105) ) {
-                alt54=1;
+            if ( (LA55_0==105) ) {
+                alt55=1;
             }
-            switch (alt54) {
+            switch (alt55) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2158:1: (lv_semantics_28_0= ruleProtocolSemantics )
                     {
@@ -5349,7 +5360,7 @@
                      
                     	        newCompositeNode(grammarAccess.getProtocolClassAccess().getSemanticsProtocolSemanticsParserRuleCall_14_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleProtocolSemantics_in_ruleProtocolClass4199);
+                    pushFollow(FOLLOW_ruleProtocolSemantics_in_ruleProtocolClass4200);
                     lv_semantics_28_0=ruleProtocolSemantics();
 
                     state._fsp--;
@@ -5374,7 +5385,7 @@
 
             }
 
-            otherlv_29=(Token)match(input,15,FOLLOW_15_in_ruleProtocolClass4212); 
+            otherlv_29=(Token)match(input,15,FOLLOW_15_in_ruleProtocolClass4213); 
 
                 	newLeafNode(otherlv_29, grammarAccess.getProtocolClassAccess().getRightCurlyBracketKeyword_15());
                 
@@ -5411,13 +5422,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2189:2: iv_ruleCompoundProtocolClass= ruleCompoundProtocolClass EOF
             {
              newCompositeNode(grammarAccess.getCompoundProtocolClassRule()); 
-            pushFollow(FOLLOW_ruleCompoundProtocolClass_in_entryRuleCompoundProtocolClass4248);
+            pushFollow(FOLLOW_ruleCompoundProtocolClass_in_entryRuleCompoundProtocolClass4249);
             iv_ruleCompoundProtocolClass=ruleCompoundProtocolClass();
 
             state._fsp--;
 
              current =iv_ruleCompoundProtocolClass; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleCompoundProtocolClass4258); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleCompoundProtocolClass4259); 
 
             }
 
@@ -5459,7 +5470,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2200:1: (otherlv_0= 'CompoundProtocolClass' ( (lv_name_1_0= RULE_ID ) ) ( (lv_docu_2_0= ruleDocumentation ) )? otherlv_3= '{' ( (lv_annotations_4_0= ruleAnnotation ) )* ( (lv_subProtocols_5_0= ruleSubProtocol ) )* otherlv_6= '}' )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2200:3: otherlv_0= 'CompoundProtocolClass' ( (lv_name_1_0= RULE_ID ) ) ( (lv_docu_2_0= ruleDocumentation ) )? otherlv_3= '{' ( (lv_annotations_4_0= ruleAnnotation ) )* ( (lv_subProtocols_5_0= ruleSubProtocol ) )* otherlv_6= '}'
             {
-            otherlv_0=(Token)match(input,48,FOLLOW_48_in_ruleCompoundProtocolClass4295); 
+            otherlv_0=(Token)match(input,48,FOLLOW_48_in_ruleCompoundProtocolClass4296); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getCompoundProtocolClassAccess().getCompoundProtocolClassKeyword_0());
                 
@@ -5469,7 +5480,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2205:1: (lv_name_1_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2206:3: lv_name_1_0= RULE_ID
             {
-            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleCompoundProtocolClass4312); 
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleCompoundProtocolClass4313); 
 
             			newLeafNode(lv_name_1_0, grammarAccess.getCompoundProtocolClassAccess().getNameIDTerminalRuleCall_1_0()); 
             		
@@ -5490,13 +5501,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2222:2: ( (lv_docu_2_0= ruleDocumentation ) )?
-            int alt55=2;
-            int LA55_0 = input.LA(1);
+            int alt56=2;
+            int LA56_0 = input.LA(1);
 
-            if ( (LA55_0==34) ) {
-                alt55=1;
+            if ( (LA56_0==34) ) {
+                alt56=1;
             }
-            switch (alt55) {
+            switch (alt56) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2223:1: (lv_docu_2_0= ruleDocumentation )
                     {
@@ -5506,7 +5517,7 @@
                      
                     	        newCompositeNode(grammarAccess.getCompoundProtocolClassAccess().getDocuDocumentationParserRuleCall_2_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDocumentation_in_ruleCompoundProtocolClass4338);
+                    pushFollow(FOLLOW_ruleDocumentation_in_ruleCompoundProtocolClass4339);
                     lv_docu_2_0=ruleDocumentation();
 
                     state._fsp--;
@@ -5531,22 +5542,22 @@
 
             }
 
-            otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleCompoundProtocolClass4351); 
+            otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleCompoundProtocolClass4352); 
 
                 	newLeafNode(otherlv_3, grammarAccess.getCompoundProtocolClassAccess().getLeftCurlyBracketKeyword_3());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2244:1: ( (lv_annotations_4_0= ruleAnnotation ) )*
-            loop56:
+            loop57:
             do {
-                int alt56=2;
-                int LA56_0 = input.LA(1);
+                int alt57=2;
+                int LA57_0 = input.LA(1);
 
-                if ( (LA56_0==108) ) {
-                    alt56=1;
+                if ( (LA57_0==108) ) {
+                    alt57=1;
                 }
 
 
-                switch (alt56) {
+                switch (alt57) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2245:1: (lv_annotations_4_0= ruleAnnotation )
             	    {
@@ -5556,7 +5567,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getCompoundProtocolClassAccess().getAnnotationsAnnotationParserRuleCall_4_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleAnnotation_in_ruleCompoundProtocolClass4372);
+            	    pushFollow(FOLLOW_ruleAnnotation_in_ruleCompoundProtocolClass4373);
             	    lv_annotations_4_0=ruleAnnotation();
 
             	    state._fsp--;
@@ -5580,22 +5591,22 @@
             	    break;
 
             	default :
-            	    break loop56;
+            	    break loop57;
                 }
             } while (true);
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2262:3: ( (lv_subProtocols_5_0= ruleSubProtocol ) )*
-            loop57:
+            loop58:
             do {
-                int alt57=2;
-                int LA57_0 = input.LA(1);
+                int alt58=2;
+                int LA58_0 = input.LA(1);
 
-                if ( (LA57_0==49) ) {
-                    alt57=1;
+                if ( (LA58_0==49) ) {
+                    alt58=1;
                 }
 
 
-                switch (alt57) {
+                switch (alt58) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2263:1: (lv_subProtocols_5_0= ruleSubProtocol )
             	    {
@@ -5605,7 +5616,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getCompoundProtocolClassAccess().getSubProtocolsSubProtocolParserRuleCall_5_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleSubProtocol_in_ruleCompoundProtocolClass4394);
+            	    pushFollow(FOLLOW_ruleSubProtocol_in_ruleCompoundProtocolClass4395);
             	    lv_subProtocols_5_0=ruleSubProtocol();
 
             	    state._fsp--;
@@ -5629,11 +5640,11 @@
             	    break;
 
             	default :
-            	    break loop57;
+            	    break loop58;
                 }
             } while (true);
 
-            otherlv_6=(Token)match(input,15,FOLLOW_15_in_ruleCompoundProtocolClass4407); 
+            otherlv_6=(Token)match(input,15,FOLLOW_15_in_ruleCompoundProtocolClass4408); 
 
                 	newLeafNode(otherlv_6, grammarAccess.getCompoundProtocolClassAccess().getRightCurlyBracketKeyword_6());
                 
@@ -5670,13 +5681,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2294:2: iv_ruleSubProtocol= ruleSubProtocol EOF
             {
              newCompositeNode(grammarAccess.getSubProtocolRule()); 
-            pushFollow(FOLLOW_ruleSubProtocol_in_entryRuleSubProtocol4443);
+            pushFollow(FOLLOW_ruleSubProtocol_in_entryRuleSubProtocol4444);
             iv_ruleSubProtocol=ruleSubProtocol();
 
             state._fsp--;
 
              current =iv_ruleSubProtocol; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleSubProtocol4453); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleSubProtocol4454); 
 
             }
 
@@ -5711,7 +5722,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2305:1: (otherlv_0= 'SubProtocol' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= ':' ( ( ruleFQN ) ) )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2305:3: otherlv_0= 'SubProtocol' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= ':' ( ( ruleFQN ) )
             {
-            otherlv_0=(Token)match(input,49,FOLLOW_49_in_ruleSubProtocol4490); 
+            otherlv_0=(Token)match(input,49,FOLLOW_49_in_ruleSubProtocol4491); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getSubProtocolAccess().getSubProtocolKeyword_0());
                 
@@ -5721,7 +5732,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2310:1: (lv_name_1_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2311:3: lv_name_1_0= RULE_ID
             {
-            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSubProtocol4507); 
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSubProtocol4508); 
 
             			newLeafNode(lv_name_1_0, grammarAccess.getSubProtocolAccess().getNameIDTerminalRuleCall_1_0()); 
             		
@@ -5741,7 +5752,7 @@
 
             }
 
-            otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleSubProtocol4524); 
+            otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleSubProtocol4525); 
 
                 	newLeafNode(otherlv_2, grammarAccess.getSubProtocolAccess().getColonKeyword_2());
                 
@@ -5759,7 +5770,7 @@
              
             	        newCompositeNode(grammarAccess.getSubProtocolAccess().getProtocolGeneralProtocolClassCrossReference_3_0()); 
             	    
-            pushFollow(FOLLOW_ruleFQN_in_ruleSubProtocol4547);
+            pushFollow(FOLLOW_ruleFQN_in_ruleSubProtocol4548);
             ruleFQN();
 
             state._fsp--;
@@ -5806,13 +5817,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2356:2: iv_ruleMessage= ruleMessage EOF
             {
              newCompositeNode(grammarAccess.getMessageRule()); 
-            pushFollow(FOLLOW_ruleMessage_in_entryRuleMessage4583);
+            pushFollow(FOLLOW_ruleMessage_in_entryRuleMessage4584);
             iv_ruleMessage=ruleMessage();
 
             state._fsp--;
 
              current =iv_ruleMessage; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleMessage4593); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleMessage4594); 
 
             }
 
@@ -5854,20 +5865,20 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2367:2: ( (lv_priv_0_0= 'private' ) )? otherlv_1= 'Message' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '(' ( (lv_data_4_0= ruleVarDecl ) )? otherlv_5= ')' ( (lv_docu_6_0= ruleDocumentation ) )?
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2367:2: ( (lv_priv_0_0= 'private' ) )?
-            int alt58=2;
-            int LA58_0 = input.LA(1);
+            int alt59=2;
+            int LA59_0 = input.LA(1);
 
-            if ( (LA58_0==50) ) {
-                alt58=1;
+            if ( (LA59_0==50) ) {
+                alt59=1;
             }
-            switch (alt58) {
+            switch (alt59) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2368:1: (lv_priv_0_0= 'private' )
                     {
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2368:1: (lv_priv_0_0= 'private' )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2369:3: lv_priv_0_0= 'private'
                     {
-                    lv_priv_0_0=(Token)match(input,50,FOLLOW_50_in_ruleMessage4636); 
+                    lv_priv_0_0=(Token)match(input,50,FOLLOW_50_in_ruleMessage4637); 
 
                             newLeafNode(lv_priv_0_0, grammarAccess.getMessageAccess().getPrivPrivateKeyword_0_0());
                         
@@ -5886,7 +5897,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,51,FOLLOW_51_in_ruleMessage4662); 
+            otherlv_1=(Token)match(input,51,FOLLOW_51_in_ruleMessage4663); 
 
                 	newLeafNode(otherlv_1, grammarAccess.getMessageAccess().getMessageKeyword_1());
                 
@@ -5896,7 +5907,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2387:1: (lv_name_2_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2388:3: lv_name_2_0= RULE_ID
             {
-            lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMessage4679); 
+            lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMessage4680); 
 
             			newLeafNode(lv_name_2_0, grammarAccess.getMessageAccess().getNameIDTerminalRuleCall_2_0()); 
             		
@@ -5916,18 +5927,18 @@
 
             }
 
-            otherlv_3=(Token)match(input,20,FOLLOW_20_in_ruleMessage4696); 
+            otherlv_3=(Token)match(input,20,FOLLOW_20_in_ruleMessage4697); 
 
                 	newLeafNode(otherlv_3, grammarAccess.getMessageAccess().getLeftParenthesisKeyword_3());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2408:1: ( (lv_data_4_0= ruleVarDecl ) )?
-            int alt59=2;
-            int LA59_0 = input.LA(1);
+            int alt60=2;
+            int LA60_0 = input.LA(1);
 
-            if ( (LA59_0==RULE_ID) ) {
-                alt59=1;
+            if ( (LA60_0==RULE_ID) ) {
+                alt60=1;
             }
-            switch (alt59) {
+            switch (alt60) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2409:1: (lv_data_4_0= ruleVarDecl )
                     {
@@ -5937,7 +5948,7 @@
                      
                     	        newCompositeNode(grammarAccess.getMessageAccess().getDataVarDeclParserRuleCall_4_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleVarDecl_in_ruleMessage4717);
+                    pushFollow(FOLLOW_ruleVarDecl_in_ruleMessage4718);
                     lv_data_4_0=ruleVarDecl();
 
                     state._fsp--;
@@ -5962,18 +5973,18 @@
 
             }
 
-            otherlv_5=(Token)match(input,21,FOLLOW_21_in_ruleMessage4730); 
+            otherlv_5=(Token)match(input,21,FOLLOW_21_in_ruleMessage4731); 
 
                 	newLeafNode(otherlv_5, grammarAccess.getMessageAccess().getRightParenthesisKeyword_5());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2430:1: ( (lv_docu_6_0= ruleDocumentation ) )?
-            int alt60=2;
-            int LA60_0 = input.LA(1);
+            int alt61=2;
+            int LA61_0 = input.LA(1);
 
-            if ( (LA60_0==34) ) {
-                alt60=1;
+            if ( (LA61_0==34) ) {
+                alt61=1;
             }
-            switch (alt60) {
+            switch (alt61) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2431:1: (lv_docu_6_0= ruleDocumentation )
                     {
@@ -5983,7 +5994,7 @@
                      
                     	        newCompositeNode(grammarAccess.getMessageAccess().getDocuDocumentationParserRuleCall_6_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDocumentation_in_ruleMessage4751);
+                    pushFollow(FOLLOW_ruleDocumentation_in_ruleMessage4752);
                     lv_docu_6_0=ruleDocumentation();
 
                     state._fsp--;
@@ -6041,13 +6052,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2458:2: iv_rulePortClass= rulePortClass EOF
             {
              newCompositeNode(grammarAccess.getPortClassRule()); 
-            pushFollow(FOLLOW_rulePortClass_in_entryRulePortClass4788);
+            pushFollow(FOLLOW_rulePortClass_in_entryRulePortClass4789);
             iv_rulePortClass=rulePortClass();
 
             state._fsp--;
 
              current =iv_rulePortClass; 
-            match(input,EOF,FOLLOW_EOF_in_entryRulePortClass4798); 
+            match(input,EOF,FOLLOW_EOF_in_entryRulePortClass4799); 
 
             }
 
@@ -6101,22 +6112,22 @@
 
             }
 
-            otherlv_1=(Token)match(input,14,FOLLOW_14_in_rulePortClass4844); 
+            otherlv_1=(Token)match(input,14,FOLLOW_14_in_rulePortClass4845); 
 
                 	newLeafNode(otherlv_1, grammarAccess.getPortClassAccess().getLeftCurlyBracketKeyword_1());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2479:1: (otherlv_2= 'usercode' ( (lv_userCode_3_0= ruleDetailCode ) ) )?
-            int alt61=2;
-            int LA61_0 = input.LA(1);
+            int alt62=2;
+            int LA62_0 = input.LA(1);
 
-            if ( (LA61_0==52) ) {
-                alt61=1;
+            if ( (LA62_0==52) ) {
+                alt62=1;
             }
-            switch (alt61) {
+            switch (alt62) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2479:3: otherlv_2= 'usercode' ( (lv_userCode_3_0= ruleDetailCode ) )
                     {
-                    otherlv_2=(Token)match(input,52,FOLLOW_52_in_rulePortClass4857); 
+                    otherlv_2=(Token)match(input,52,FOLLOW_52_in_rulePortClass4858); 
 
                         	newLeafNode(otherlv_2, grammarAccess.getPortClassAccess().getUsercodeKeyword_2_0());
                         
@@ -6129,7 +6140,7 @@
                      
                     	        newCompositeNode(grammarAccess.getPortClassAccess().getUserCodeDetailCodeParserRuleCall_2_1_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDetailCode_in_rulePortClass4878);
+                    pushFollow(FOLLOW_ruleDetailCode_in_rulePortClass4879);
                     lv_userCode_3_0=ruleDetailCode();
 
                     state._fsp--;
@@ -6158,29 +6169,29 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2501:4: ( ( (lv_msgHandlers_4_0= ruleMessageHandler ) ) | ( (lv_operations_5_0= rulePortOperation ) ) | ( (lv_attributes_6_0= ruleAttribute ) ) )*
-            loop62:
+            loop63:
             do {
-                int alt62=4;
+                int alt63=4;
                 switch ( input.LA(1) ) {
                 case 53:
                     {
-                    alt62=1;
+                    alt63=1;
                     }
                     break;
                 case 37:
                     {
-                    alt62=2;
+                    alt63=2;
                     }
                     break;
                 case 33:
                     {
-                    alt62=3;
+                    alt63=3;
                     }
                     break;
 
                 }
 
-                switch (alt62) {
+                switch (alt63) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2501:5: ( (lv_msgHandlers_4_0= ruleMessageHandler ) )
             	    {
@@ -6193,7 +6204,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getPortClassAccess().getMsgHandlersMessageHandlerParserRuleCall_3_0_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleMessageHandler_in_rulePortClass4902);
+            	    pushFollow(FOLLOW_ruleMessageHandler_in_rulePortClass4903);
             	    lv_msgHandlers_4_0=ruleMessageHandler();
 
             	    state._fsp--;
@@ -6230,7 +6241,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getPortClassAccess().getOperationsPortOperationParserRuleCall_3_1_0()); 
             	    	    
-            	    pushFollow(FOLLOW_rulePortOperation_in_rulePortClass4929);
+            	    pushFollow(FOLLOW_rulePortOperation_in_rulePortClass4930);
             	    lv_operations_5_0=rulePortOperation();
 
             	    state._fsp--;
@@ -6267,7 +6278,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getPortClassAccess().getAttributesAttributeParserRuleCall_3_2_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleAttribute_in_rulePortClass4956);
+            	    pushFollow(FOLLOW_ruleAttribute_in_rulePortClass4957);
             	    lv_attributes_6_0=ruleAttribute();
 
             	    state._fsp--;
@@ -6294,11 +6305,11 @@
             	    break;
 
             	default :
-            	    break loop62;
+            	    break loop63;
                 }
             } while (true);
 
-            otherlv_7=(Token)match(input,15,FOLLOW_15_in_rulePortClass4970); 
+            otherlv_7=(Token)match(input,15,FOLLOW_15_in_rulePortClass4971); 
 
                 	newLeafNode(otherlv_7, grammarAccess.getPortClassAccess().getRightCurlyBracketKeyword_4());
                 
@@ -6335,13 +6346,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2571:2: iv_ruleMessageHandler= ruleMessageHandler EOF
             {
              newCompositeNode(grammarAccess.getMessageHandlerRule()); 
-            pushFollow(FOLLOW_ruleMessageHandler_in_entryRuleMessageHandler5006);
+            pushFollow(FOLLOW_ruleMessageHandler_in_entryRuleMessageHandler5007);
             iv_ruleMessageHandler=ruleMessageHandler();
 
             state._fsp--;
 
              current =iv_ruleMessageHandler; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleMessageHandler5016); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleMessageHandler5017); 
 
             }
 
@@ -6375,39 +6386,39 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2582:1: (this_InMessageHandler_0= ruleInMessageHandler | this_OutMessageHandler_1= ruleOutMessageHandler )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2582:1: (this_InMessageHandler_0= ruleInMessageHandler | this_OutMessageHandler_1= ruleOutMessageHandler )
-            int alt63=2;
-            int LA63_0 = input.LA(1);
+            int alt64=2;
+            int LA64_0 = input.LA(1);
 
-            if ( (LA63_0==53) ) {
-                int LA63_1 = input.LA(2);
+            if ( (LA64_0==53) ) {
+                int LA64_1 = input.LA(2);
 
-                if ( (LA63_1==43) ) {
-                    alt63=1;
+                if ( (LA64_1==44) ) {
+                    alt64=2;
                 }
-                else if ( (LA63_1==44) ) {
-                    alt63=2;
+                else if ( (LA64_1==43) ) {
+                    alt64=1;
                 }
                 else {
                     NoViableAltException nvae =
-                        new NoViableAltException("", 63, 1, input);
+                        new NoViableAltException("", 64, 1, input);
 
                     throw nvae;
                 }
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 63, 0, input);
+                    new NoViableAltException("", 64, 0, input);
 
                 throw nvae;
             }
-            switch (alt63) {
+            switch (alt64) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2583:5: this_InMessageHandler_0= ruleInMessageHandler
                     {
                      
                             newCompositeNode(grammarAccess.getMessageHandlerAccess().getInMessageHandlerParserRuleCall_0()); 
                         
-                    pushFollow(FOLLOW_ruleInMessageHandler_in_ruleMessageHandler5063);
+                    pushFollow(FOLLOW_ruleInMessageHandler_in_ruleMessageHandler5064);
                     this_InMessageHandler_0=ruleInMessageHandler();
 
                     state._fsp--;
@@ -6425,7 +6436,7 @@
                      
                             newCompositeNode(grammarAccess.getMessageHandlerAccess().getOutMessageHandlerParserRuleCall_1()); 
                         
-                    pushFollow(FOLLOW_ruleOutMessageHandler_in_ruleMessageHandler5090);
+                    pushFollow(FOLLOW_ruleOutMessageHandler_in_ruleMessageHandler5091);
                     this_OutMessageHandler_1=ruleOutMessageHandler();
 
                     state._fsp--;
@@ -6470,13 +6481,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2611:2: iv_ruleInMessageHandler= ruleInMessageHandler EOF
             {
              newCompositeNode(grammarAccess.getInMessageHandlerRule()); 
-            pushFollow(FOLLOW_ruleInMessageHandler_in_entryRuleInMessageHandler5125);
+            pushFollow(FOLLOW_ruleInMessageHandler_in_entryRuleInMessageHandler5126);
             iv_ruleInMessageHandler=ruleInMessageHandler();
 
             state._fsp--;
 
              current =iv_ruleInMessageHandler; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleInMessageHandler5135); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleInMessageHandler5136); 
 
             }
 
@@ -6513,11 +6524,11 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2622:1: (otherlv_0= 'handle' otherlv_1= 'incoming' ( (otherlv_2= RULE_ID ) ) ( (lv_detailCode_3_0= ruleDetailCode ) ) )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2622:3: otherlv_0= 'handle' otherlv_1= 'incoming' ( (otherlv_2= RULE_ID ) ) ( (lv_detailCode_3_0= ruleDetailCode ) )
             {
-            otherlv_0=(Token)match(input,53,FOLLOW_53_in_ruleInMessageHandler5172); 
+            otherlv_0=(Token)match(input,53,FOLLOW_53_in_ruleInMessageHandler5173); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getInMessageHandlerAccess().getHandleKeyword_0());
                 
-            otherlv_1=(Token)match(input,43,FOLLOW_43_in_ruleInMessageHandler5184); 
+            otherlv_1=(Token)match(input,43,FOLLOW_43_in_ruleInMessageHandler5185); 
 
                 	newLeafNode(otherlv_1, grammarAccess.getInMessageHandlerAccess().getIncomingKeyword_1());
                 
@@ -6532,7 +6543,7 @@
             	            current = createModelElement(grammarAccess.getInMessageHandlerRule());
             	        }
                     
-            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleInMessageHandler5204); 
+            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleInMessageHandler5205); 
 
             		newLeafNode(otherlv_2, grammarAccess.getInMessageHandlerAccess().getMsgMessageCrossReference_2_0()); 
             	
@@ -6551,7 +6562,7 @@
              
             	        newCompositeNode(grammarAccess.getInMessageHandlerAccess().getDetailCodeDetailCodeParserRuleCall_3_0()); 
             	    
-            pushFollow(FOLLOW_ruleDetailCode_in_ruleInMessageHandler5225);
+            pushFollow(FOLLOW_ruleDetailCode_in_ruleInMessageHandler5226);
             lv_detailCode_3_0=ruleDetailCode();
 
             state._fsp--;
@@ -6606,13 +6617,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2671:2: iv_ruleOutMessageHandler= ruleOutMessageHandler EOF
             {
              newCompositeNode(grammarAccess.getOutMessageHandlerRule()); 
-            pushFollow(FOLLOW_ruleOutMessageHandler_in_entryRuleOutMessageHandler5261);
+            pushFollow(FOLLOW_ruleOutMessageHandler_in_entryRuleOutMessageHandler5262);
             iv_ruleOutMessageHandler=ruleOutMessageHandler();
 
             state._fsp--;
 
              current =iv_ruleOutMessageHandler; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleOutMessageHandler5271); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOutMessageHandler5272); 
 
             }
 
@@ -6649,11 +6660,11 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2682:1: (otherlv_0= 'handle' otherlv_1= 'outgoing' ( (otherlv_2= RULE_ID ) ) ( (lv_detailCode_3_0= ruleDetailCode ) ) )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2682:3: otherlv_0= 'handle' otherlv_1= 'outgoing' ( (otherlv_2= RULE_ID ) ) ( (lv_detailCode_3_0= ruleDetailCode ) )
             {
-            otherlv_0=(Token)match(input,53,FOLLOW_53_in_ruleOutMessageHandler5308); 
+            otherlv_0=(Token)match(input,53,FOLLOW_53_in_ruleOutMessageHandler5309); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getOutMessageHandlerAccess().getHandleKeyword_0());
                 
-            otherlv_1=(Token)match(input,44,FOLLOW_44_in_ruleOutMessageHandler5320); 
+            otherlv_1=(Token)match(input,44,FOLLOW_44_in_ruleOutMessageHandler5321); 
 
                 	newLeafNode(otherlv_1, grammarAccess.getOutMessageHandlerAccess().getOutgoingKeyword_1());
                 
@@ -6668,7 +6679,7 @@
             	            current = createModelElement(grammarAccess.getOutMessageHandlerRule());
             	        }
                     
-            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleOutMessageHandler5340); 
+            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleOutMessageHandler5341); 
 
             		newLeafNode(otherlv_2, grammarAccess.getOutMessageHandlerAccess().getMsgMessageCrossReference_2_0()); 
             	
@@ -6687,7 +6698,7 @@
              
             	        newCompositeNode(grammarAccess.getOutMessageHandlerAccess().getDetailCodeDetailCodeParserRuleCall_3_0()); 
             	    
-            pushFollow(FOLLOW_ruleDetailCode_in_ruleOutMessageHandler5361);
+            pushFollow(FOLLOW_ruleDetailCode_in_ruleOutMessageHandler5362);
             lv_detailCode_3_0=ruleDetailCode();
 
             state._fsp--;
@@ -6742,13 +6753,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2731:2: iv_ruleModelComponent= ruleModelComponent EOF
             {
              newCompositeNode(grammarAccess.getModelComponentRule()); 
-            pushFollow(FOLLOW_ruleModelComponent_in_entryRuleModelComponent5397);
+            pushFollow(FOLLOW_ruleModelComponent_in_entryRuleModelComponent5398);
             iv_ruleModelComponent=ruleModelComponent();
 
             state._fsp--;
 
              current =iv_ruleModelComponent; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleModelComponent5407); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleModelComponent5408); 
 
             }
 
@@ -6782,7 +6793,7 @@
              
                     newCompositeNode(grammarAccess.getModelComponentAccess().getActorClassParserRuleCall()); 
                 
-            pushFollow(FOLLOW_ruleActorClass_in_ruleModelComponent5453);
+            pushFollow(FOLLOW_ruleActorClass_in_ruleModelComponent5454);
             this_ActorClass_0=ruleActorClass();
 
             state._fsp--;
@@ -6821,13 +6832,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2761:2: iv_ruleActorClass= ruleActorClass EOF
             {
              newCompositeNode(grammarAccess.getActorClassRule()); 
-            pushFollow(FOLLOW_ruleActorClass_in_entryRuleActorClass5487);
+            pushFollow(FOLLOW_ruleActorClass_in_entryRuleActorClass5488);
             iv_ruleActorClass=ruleActorClass();
 
             state._fsp--;
 
              current =iv_ruleActorClass; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleActorClass5497); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActorClass5498); 
 
             }
 
@@ -6934,20 +6945,20 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2779:3: ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= 'abstract' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_commType_2_0= ruleComponentCommunicationType ) ) ) ) ) )*
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2779:3: ( ({...}? => ( ({...}? => ( (lv_abstract_1_0= 'abstract' ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_commType_2_0= ruleComponentCommunicationType ) ) ) ) ) )*
-            loop64:
+            loop65:
             do {
-                int alt64=3;
-                int LA64_0 = input.LA(1);
+                int alt65=3;
+                int LA65_0 = input.LA(1);
 
-                if ( LA64_0 ==54 && getUnorderedGroupHelper().canSelect(grammarAccess.getActorClassAccess().getUnorderedGroup_0(), 0) ) {
-                    alt64=1;
+                if ( LA65_0 ==54 && getUnorderedGroupHelper().canSelect(grammarAccess.getActorClassAccess().getUnorderedGroup_0(), 0) ) {
+                    alt65=1;
                 }
-                else if ( ( LA64_0 >=122 && LA64_0<=124 ||LA64_0==126 ) && getUnorderedGroupHelper().canSelect(grammarAccess.getActorClassAccess().getUnorderedGroup_0(), 1) ) {
-                    alt64=2;
+                else if ( ( LA65_0 >=122 && LA65_0<=124 ||LA65_0==126 ) && getUnorderedGroupHelper().canSelect(grammarAccess.getActorClassAccess().getUnorderedGroup_0(), 1) ) {
+                    alt65=2;
                 }
 
 
-                switch (alt64) {
+                switch (alt65) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2781:4: ({...}? => ( ({...}? => ( (lv_abstract_1_0= 'abstract' ) ) ) ) )
             	    {
@@ -6975,7 +6986,7 @@
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2787:1: (lv_abstract_1_0= 'abstract' )
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2788:3: lv_abstract_1_0= 'abstract'
             	    {
-            	    lv_abstract_1_0=(Token)match(input,54,FOLLOW_54_in_ruleActorClass5585); 
+            	    lv_abstract_1_0=(Token)match(input,54,FOLLOW_54_in_ruleActorClass5586); 
 
             	            newLeafNode(lv_abstract_1_0, grammarAccess.getActorClassAccess().getAbstractAbstractKeyword_0_0_0());
             	        
@@ -7036,7 +7047,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getActorClassAccess().getCommTypeComponentCommunicationTypeEnumRuleCall_0_1_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleComponentCommunicationType_in_ruleActorClass5673);
+            	    pushFollow(FOLLOW_ruleComponentCommunicationType_in_ruleActorClass5674);
             	    lv_commType_2_0=ruleComponentCommunicationType();
 
             	    state._fsp--;
@@ -7075,7 +7086,7 @@
             	    break;
 
             	default :
-            	    break loop64;
+            	    break loop65;
                 }
             } while (true);
 
@@ -7091,7 +7102,7 @@
 
             }
 
-            otherlv_3=(Token)match(input,55,FOLLOW_55_in_ruleActorClass5725); 
+            otherlv_3=(Token)match(input,55,FOLLOW_55_in_ruleActorClass5726); 
 
                 	newLeafNode(otherlv_3, grammarAccess.getActorClassAccess().getActorClassKeyword_1());
                 
@@ -7101,7 +7112,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2850:1: (lv_name_4_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2851:3: lv_name_4_0= RULE_ID
             {
-            lv_name_4_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleActorClass5742); 
+            lv_name_4_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleActorClass5743); 
 
             			newLeafNode(lv_name_4_0, grammarAccess.getActorClassAccess().getNameIDTerminalRuleCall_2_0()); 
             		
@@ -7122,13 +7133,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2867:2: ( (lv_docu_5_0= ruleDocumentation ) )?
-            int alt65=2;
-            int LA65_0 = input.LA(1);
+            int alt66=2;
+            int LA66_0 = input.LA(1);
 
-            if ( (LA65_0==34) ) {
-                alt65=1;
+            if ( (LA66_0==34) ) {
+                alt66=1;
             }
-            switch (alt65) {
+            switch (alt66) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2868:1: (lv_docu_5_0= ruleDocumentation )
                     {
@@ -7138,7 +7149,7 @@
                      
                     	        newCompositeNode(grammarAccess.getActorClassAccess().getDocuDocumentationParserRuleCall_3_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDocumentation_in_ruleActorClass5768);
+                    pushFollow(FOLLOW_ruleDocumentation_in_ruleActorClass5769);
                     lv_docu_5_0=ruleDocumentation();
 
                     state._fsp--;
@@ -7164,17 +7175,17 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2885:3: (otherlv_6= 'extends' ( ( ruleFQN ) ) )?
-            int alt66=2;
-            int LA66_0 = input.LA(1);
+            int alt67=2;
+            int LA67_0 = input.LA(1);
 
-            if ( (LA66_0==29) ) {
-                alt66=1;
+            if ( (LA67_0==29) ) {
+                alt67=1;
             }
-            switch (alt66) {
+            switch (alt67) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2885:5: otherlv_6= 'extends' ( ( ruleFQN ) )
                     {
-                    otherlv_6=(Token)match(input,29,FOLLOW_29_in_ruleActorClass5782); 
+                    otherlv_6=(Token)match(input,29,FOLLOW_29_in_ruleActorClass5783); 
 
                         	newLeafNode(otherlv_6, grammarAccess.getActorClassAccess().getExtendsKeyword_4_0());
                         
@@ -7192,7 +7203,7 @@
                      
                     	        newCompositeNode(grammarAccess.getActorClassAccess().getBaseActorClassCrossReference_4_1_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleFQN_in_ruleActorClass5805);
+                    pushFollow(FOLLOW_ruleFQN_in_ruleActorClass5806);
                     ruleFQN();
 
                     state._fsp--;
@@ -7212,22 +7223,22 @@
 
             }
 
-            otherlv_8=(Token)match(input,14,FOLLOW_14_in_ruleActorClass5819); 
+            otherlv_8=(Token)match(input,14,FOLLOW_14_in_ruleActorClass5820); 
 
                 	newLeafNode(otherlv_8, grammarAccess.getActorClassAccess().getLeftCurlyBracketKeyword_5());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2908:1: ( (lv_annotations_9_0= ruleAnnotation ) )*
-            loop67:
+            loop68:
             do {
-                int alt67=2;
-                int LA67_0 = input.LA(1);
+                int alt68=2;
+                int LA68_0 = input.LA(1);
 
-                if ( (LA67_0==108) ) {
-                    alt67=1;
+                if ( (LA68_0==108) ) {
+                    alt68=1;
                 }
 
 
-                switch (alt67) {
+                switch (alt68) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2909:1: (lv_annotations_9_0= ruleAnnotation )
             	    {
@@ -7237,7 +7248,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getActorClassAccess().getAnnotationsAnnotationParserRuleCall_6_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleAnnotation_in_ruleActorClass5840);
+            	    pushFollow(FOLLOW_ruleAnnotation_in_ruleActorClass5841);
             	    lv_annotations_9_0=ruleAnnotation();
 
             	    state._fsp--;
@@ -7261,44 +7272,44 @@
             	    break;
 
             	default :
-            	    break loop67;
+            	    break loop68;
                 }
             } while (true);
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2926:3: (otherlv_10= 'Interface' otherlv_11= '{' ( ( (lv_serviceProvisionPoints_12_0= ruleSPP ) ) | ( (lv_interfacePorts_13_0= rulePort ) ) )* otherlv_14= '}' )?
-            int alt69=2;
-            int LA69_0 = input.LA(1);
+            int alt70=2;
+            int LA70_0 = input.LA(1);
 
-            if ( (LA69_0==56) ) {
-                alt69=1;
+            if ( (LA70_0==56) ) {
+                alt70=1;
             }
-            switch (alt69) {
+            switch (alt70) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2926:5: otherlv_10= 'Interface' otherlv_11= '{' ( ( (lv_serviceProvisionPoints_12_0= ruleSPP ) ) | ( (lv_interfacePorts_13_0= rulePort ) ) )* otherlv_14= '}'
                     {
-                    otherlv_10=(Token)match(input,56,FOLLOW_56_in_ruleActorClass5854); 
+                    otherlv_10=(Token)match(input,56,FOLLOW_56_in_ruleActorClass5855); 
 
                         	newLeafNode(otherlv_10, grammarAccess.getActorClassAccess().getInterfaceKeyword_7_0());
                         
-                    otherlv_11=(Token)match(input,14,FOLLOW_14_in_ruleActorClass5866); 
+                    otherlv_11=(Token)match(input,14,FOLLOW_14_in_ruleActorClass5867); 
 
                         	newLeafNode(otherlv_11, grammarAccess.getActorClassAccess().getLeftCurlyBracketKeyword_7_1());
                         
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2934:1: ( ( (lv_serviceProvisionPoints_12_0= ruleSPP ) ) | ( (lv_interfacePorts_13_0= rulePort ) ) )*
-                    loop68:
+                    loop69:
                     do {
-                        int alt68=3;
-                        int LA68_0 = input.LA(1);
+                        int alt69=3;
+                        int LA69_0 = input.LA(1);
 
-                        if ( (LA68_0==62) ) {
-                            alt68=1;
+                        if ( (LA69_0==62) ) {
+                            alt69=1;
                         }
-                        else if ( (LA68_0==47||LA68_0==59) ) {
-                            alt68=2;
+                        else if ( (LA69_0==47||LA69_0==59) ) {
+                            alt69=2;
                         }
 
 
-                        switch (alt68) {
+                        switch (alt69) {
                     	case 1 :
                     	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2934:2: ( (lv_serviceProvisionPoints_12_0= ruleSPP ) )
                     	    {
@@ -7311,7 +7322,7 @@
                     	     
                     	    	        newCompositeNode(grammarAccess.getActorClassAccess().getServiceProvisionPointsSPPParserRuleCall_7_2_0_0()); 
                     	    	    
-                    	    pushFollow(FOLLOW_ruleSPP_in_ruleActorClass5888);
+                    	    pushFollow(FOLLOW_ruleSPP_in_ruleActorClass5889);
                     	    lv_serviceProvisionPoints_12_0=ruleSPP();
 
                     	    state._fsp--;
@@ -7348,7 +7359,7 @@
                     	     
                     	    	        newCompositeNode(grammarAccess.getActorClassAccess().getInterfacePortsPortParserRuleCall_7_2_1_0()); 
                     	    	    
-                    	    pushFollow(FOLLOW_rulePort_in_ruleActorClass5915);
+                    	    pushFollow(FOLLOW_rulePort_in_ruleActorClass5916);
                     	    lv_interfacePorts_13_0=rulePort();
 
                     	    state._fsp--;
@@ -7375,11 +7386,11 @@
                     	    break;
 
                     	default :
-                    	    break loop68;
+                    	    break loop69;
                         }
                     } while (true);
 
-                    otherlv_14=(Token)match(input,15,FOLLOW_15_in_ruleActorClass5929); 
+                    otherlv_14=(Token)match(input,15,FOLLOW_15_in_ruleActorClass5930); 
 
                         	newLeafNode(otherlv_14, grammarAccess.getActorClassAccess().getRightCurlyBracketKeyword_7_3());
                         
@@ -7390,28 +7401,28 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2975:3: (otherlv_15= 'Structure' ( (lv_structureDocu_16_0= ruleDocumentation ) )? otherlv_17= '{' (otherlv_18= 'usercode1' ( (lv_userCode1_19_0= ruleDetailCode ) ) )? (otherlv_20= 'usercode2' ( (lv_userCode2_21_0= ruleDetailCode ) ) )? (otherlv_22= 'usercode3' ( (lv_userCode3_23_0= ruleDetailCode ) ) )? ( ( (lv_connections_24_0= ruleLayerConnection ) ) | ( (lv_bindings_25_0= ruleBinding ) ) | ( (lv_serviceImplementations_26_0= ruleServiceImplementation ) ) | ( (lv_attributes_27_0= ruleAttribute ) ) | ( (lv_actorRefs_28_0= ruleActorRef ) ) | ( (lv_serviceAccessPoints_29_0= ruleSAP ) ) | ( (lv_internalPorts_30_0= rulePort ) ) | ( (lv_externalPorts_31_0= ruleExternalPort ) ) )* otherlv_32= '}' )?
-            int alt75=2;
-            int LA75_0 = input.LA(1);
+            int alt76=2;
+            int LA76_0 = input.LA(1);
 
-            if ( (LA75_0==57) ) {
-                alt75=1;
+            if ( (LA76_0==57) ) {
+                alt76=1;
             }
-            switch (alt75) {
+            switch (alt76) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2975:5: otherlv_15= 'Structure' ( (lv_structureDocu_16_0= ruleDocumentation ) )? otherlv_17= '{' (otherlv_18= 'usercode1' ( (lv_userCode1_19_0= ruleDetailCode ) ) )? (otherlv_20= 'usercode2' ( (lv_userCode2_21_0= ruleDetailCode ) ) )? (otherlv_22= 'usercode3' ( (lv_userCode3_23_0= ruleDetailCode ) ) )? ( ( (lv_connections_24_0= ruleLayerConnection ) ) | ( (lv_bindings_25_0= ruleBinding ) ) | ( (lv_serviceImplementations_26_0= ruleServiceImplementation ) ) | ( (lv_attributes_27_0= ruleAttribute ) ) | ( (lv_actorRefs_28_0= ruleActorRef ) ) | ( (lv_serviceAccessPoints_29_0= ruleSAP ) ) | ( (lv_internalPorts_30_0= rulePort ) ) | ( (lv_externalPorts_31_0= ruleExternalPort ) ) )* otherlv_32= '}'
                     {
-                    otherlv_15=(Token)match(input,57,FOLLOW_57_in_ruleActorClass5944); 
+                    otherlv_15=(Token)match(input,57,FOLLOW_57_in_ruleActorClass5945); 
 
                         	newLeafNode(otherlv_15, grammarAccess.getActorClassAccess().getStructureKeyword_8_0());
                         
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2979:1: ( (lv_structureDocu_16_0= ruleDocumentation ) )?
-                    int alt70=2;
-                    int LA70_0 = input.LA(1);
+                    int alt71=2;
+                    int LA71_0 = input.LA(1);
 
-                    if ( (LA70_0==34) ) {
-                        alt70=1;
+                    if ( (LA71_0==34) ) {
+                        alt71=1;
                     }
-                    switch (alt70) {
+                    switch (alt71) {
                         case 1 :
                             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:2980:1: (lv_structureDocu_16_0= ruleDocumentation )
                             {
@@ -7421,7 +7432,7 @@
                              
                             	        newCompositeNode(grammarAccess.getActorClassAccess().getStructureDocuDocumentationParserRuleCall_8_1_0()); 
                             	    
-                            pushFollow(FOLLOW_ruleDocumentation_in_ruleActorClass5965);
+                            pushFollow(FOLLOW_ruleDocumentation_in_ruleActorClass5966);
                             lv_structureDocu_16_0=ruleDocumentation();
 
                             state._fsp--;
@@ -7446,22 +7457,22 @@
 
                     }
 
-                    otherlv_17=(Token)match(input,14,FOLLOW_14_in_ruleActorClass5978); 
+                    otherlv_17=(Token)match(input,14,FOLLOW_14_in_ruleActorClass5979); 
 
                         	newLeafNode(otherlv_17, grammarAccess.getActorClassAccess().getLeftCurlyBracketKeyword_8_2());
                         
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3001:1: (otherlv_18= 'usercode1' ( (lv_userCode1_19_0= ruleDetailCode ) ) )?
-                    int alt71=2;
-                    int LA71_0 = input.LA(1);
+                    int alt72=2;
+                    int LA72_0 = input.LA(1);
 
-                    if ( (LA71_0==30) ) {
-                        alt71=1;
+                    if ( (LA72_0==30) ) {
+                        alt72=1;
                     }
-                    switch (alt71) {
+                    switch (alt72) {
                         case 1 :
                             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3001:3: otherlv_18= 'usercode1' ( (lv_userCode1_19_0= ruleDetailCode ) )
                             {
-                            otherlv_18=(Token)match(input,30,FOLLOW_30_in_ruleActorClass5991); 
+                            otherlv_18=(Token)match(input,30,FOLLOW_30_in_ruleActorClass5992); 
 
                                 	newLeafNode(otherlv_18, grammarAccess.getActorClassAccess().getUsercode1Keyword_8_3_0());
                                 
@@ -7474,7 +7485,7 @@
                              
                             	        newCompositeNode(grammarAccess.getActorClassAccess().getUserCode1DetailCodeParserRuleCall_8_3_1_0()); 
                             	    
-                            pushFollow(FOLLOW_ruleDetailCode_in_ruleActorClass6012);
+                            pushFollow(FOLLOW_ruleDetailCode_in_ruleActorClass6013);
                             lv_userCode1_19_0=ruleDetailCode();
 
                             state._fsp--;
@@ -7503,17 +7514,17 @@
                     }
 
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3023:4: (otherlv_20= 'usercode2' ( (lv_userCode2_21_0= ruleDetailCode ) ) )?
-                    int alt72=2;
-                    int LA72_0 = input.LA(1);
+                    int alt73=2;
+                    int LA73_0 = input.LA(1);
 
-                    if ( (LA72_0==31) ) {
-                        alt72=1;
+                    if ( (LA73_0==31) ) {
+                        alt73=1;
                     }
-                    switch (alt72) {
+                    switch (alt73) {
                         case 1 :
                             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3023:6: otherlv_20= 'usercode2' ( (lv_userCode2_21_0= ruleDetailCode ) )
                             {
-                            otherlv_20=(Token)match(input,31,FOLLOW_31_in_ruleActorClass6027); 
+                            otherlv_20=(Token)match(input,31,FOLLOW_31_in_ruleActorClass6028); 
 
                                 	newLeafNode(otherlv_20, grammarAccess.getActorClassAccess().getUsercode2Keyword_8_4_0());
                                 
@@ -7526,7 +7537,7 @@
                              
                             	        newCompositeNode(grammarAccess.getActorClassAccess().getUserCode2DetailCodeParserRuleCall_8_4_1_0()); 
                             	    
-                            pushFollow(FOLLOW_ruleDetailCode_in_ruleActorClass6048);
+                            pushFollow(FOLLOW_ruleDetailCode_in_ruleActorClass6049);
                             lv_userCode2_21_0=ruleDetailCode();
 
                             state._fsp--;
@@ -7555,17 +7566,17 @@
                     }
 
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3045:4: (otherlv_22= 'usercode3' ( (lv_userCode3_23_0= ruleDetailCode ) ) )?
-                    int alt73=2;
-                    int LA73_0 = input.LA(1);
+                    int alt74=2;
+                    int LA74_0 = input.LA(1);
 
-                    if ( (LA73_0==32) ) {
-                        alt73=1;
+                    if ( (LA74_0==32) ) {
+                        alt74=1;
                     }
-                    switch (alt73) {
+                    switch (alt74) {
                         case 1 :
                             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3045:6: otherlv_22= 'usercode3' ( (lv_userCode3_23_0= ruleDetailCode ) )
                             {
-                            otherlv_22=(Token)match(input,32,FOLLOW_32_in_ruleActorClass6063); 
+                            otherlv_22=(Token)match(input,32,FOLLOW_32_in_ruleActorClass6064); 
 
                                 	newLeafNode(otherlv_22, grammarAccess.getActorClassAccess().getUsercode3Keyword_8_5_0());
                                 
@@ -7578,7 +7589,7 @@
                              
                             	        newCompositeNode(grammarAccess.getActorClassAccess().getUserCode3DetailCodeParserRuleCall_8_5_1_0()); 
                             	    
-                            pushFollow(FOLLOW_ruleDetailCode_in_ruleActorClass6084);
+                            pushFollow(FOLLOW_ruleDetailCode_in_ruleActorClass6085);
                             lv_userCode3_23_0=ruleDetailCode();
 
                             state._fsp--;
@@ -7607,57 +7618,57 @@
                     }
 
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3067:4: ( ( (lv_connections_24_0= ruleLayerConnection ) ) | ( (lv_bindings_25_0= ruleBinding ) ) | ( (lv_serviceImplementations_26_0= ruleServiceImplementation ) ) | ( (lv_attributes_27_0= ruleAttribute ) ) | ( (lv_actorRefs_28_0= ruleActorRef ) ) | ( (lv_serviceAccessPoints_29_0= ruleSAP ) ) | ( (lv_internalPorts_30_0= rulePort ) ) | ( (lv_externalPorts_31_0= ruleExternalPort ) ) )*
-                    loop74:
+                    loop75:
                     do {
-                        int alt74=9;
+                        int alt75=9;
                         switch ( input.LA(1) ) {
                         case 74:
                             {
-                            alt74=1;
+                            alt75=1;
                             }
                             break;
                         case 70:
                             {
-                            alt74=2;
+                            alt75=2;
                             }
                             break;
                         case 63:
                             {
-                            alt74=3;
+                            alt75=3;
                             }
                             break;
                         case 33:
                             {
-                            alt74=4;
+                            alt75=4;
                             }
                             break;
                         case 77:
                         case 111:
                         case 125:
                             {
-                            alt74=5;
+                            alt75=5;
                             }
                             break;
                         case 61:
                             {
-                            alt74=6;
+                            alt75=6;
                             }
                             break;
                         case 47:
                         case 59:
                             {
-                            alt74=7;
+                            alt75=7;
                             }
                             break;
                         case 60:
                             {
-                            alt74=8;
+                            alt75=8;
                             }
                             break;
 
                         }
 
-                        switch (alt74) {
+                        switch (alt75) {
                     	case 1 :
                     	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3067:5: ( (lv_connections_24_0= ruleLayerConnection ) )
                     	    {
@@ -7670,7 +7681,7 @@
                     	     
                     	    	        newCompositeNode(grammarAccess.getActorClassAccess().getConnectionsLayerConnectionParserRuleCall_8_6_0_0()); 
                     	    	    
-                    	    pushFollow(FOLLOW_ruleLayerConnection_in_ruleActorClass6108);
+                    	    pushFollow(FOLLOW_ruleLayerConnection_in_ruleActorClass6109);
                     	    lv_connections_24_0=ruleLayerConnection();
 
                     	    state._fsp--;
@@ -7707,7 +7718,7 @@
                     	     
                     	    	        newCompositeNode(grammarAccess.getActorClassAccess().getBindingsBindingParserRuleCall_8_6_1_0()); 
                     	    	    
-                    	    pushFollow(FOLLOW_ruleBinding_in_ruleActorClass6135);
+                    	    pushFollow(FOLLOW_ruleBinding_in_ruleActorClass6136);
                     	    lv_bindings_25_0=ruleBinding();
 
                     	    state._fsp--;
@@ -7744,7 +7755,7 @@
                     	     
                     	    	        newCompositeNode(grammarAccess.getActorClassAccess().getServiceImplementationsServiceImplementationParserRuleCall_8_6_2_0()); 
                     	    	    
-                    	    pushFollow(FOLLOW_ruleServiceImplementation_in_ruleActorClass6162);
+                    	    pushFollow(FOLLOW_ruleServiceImplementation_in_ruleActorClass6163);
                     	    lv_serviceImplementations_26_0=ruleServiceImplementation();
 
                     	    state._fsp--;
@@ -7781,7 +7792,7 @@
                     	     
                     	    	        newCompositeNode(grammarAccess.getActorClassAccess().getAttributesAttributeParserRuleCall_8_6_3_0()); 
                     	    	    
-                    	    pushFollow(FOLLOW_ruleAttribute_in_ruleActorClass6189);
+                    	    pushFollow(FOLLOW_ruleAttribute_in_ruleActorClass6190);
                     	    lv_attributes_27_0=ruleAttribute();
 
                     	    state._fsp--;
@@ -7818,7 +7829,7 @@
                     	     
                     	    	        newCompositeNode(grammarAccess.getActorClassAccess().getActorRefsActorRefParserRuleCall_8_6_4_0()); 
                     	    	    
-                    	    pushFollow(FOLLOW_ruleActorRef_in_ruleActorClass6216);
+                    	    pushFollow(FOLLOW_ruleActorRef_in_ruleActorClass6217);
                     	    lv_actorRefs_28_0=ruleActorRef();
 
                     	    state._fsp--;
@@ -7855,7 +7866,7 @@
                     	     
                     	    	        newCompositeNode(grammarAccess.getActorClassAccess().getServiceAccessPointsSAPParserRuleCall_8_6_5_0()); 
                     	    	    
-                    	    pushFollow(FOLLOW_ruleSAP_in_ruleActorClass6243);
+                    	    pushFollow(FOLLOW_ruleSAP_in_ruleActorClass6244);
                     	    lv_serviceAccessPoints_29_0=ruleSAP();
 
                     	    state._fsp--;
@@ -7892,7 +7903,7 @@
                     	     
                     	    	        newCompositeNode(grammarAccess.getActorClassAccess().getInternalPortsPortParserRuleCall_8_6_6_0()); 
                     	    	    
-                    	    pushFollow(FOLLOW_rulePort_in_ruleActorClass6270);
+                    	    pushFollow(FOLLOW_rulePort_in_ruleActorClass6271);
                     	    lv_internalPorts_30_0=rulePort();
 
                     	    state._fsp--;
@@ -7929,7 +7940,7 @@
                     	     
                     	    	        newCompositeNode(grammarAccess.getActorClassAccess().getExternalPortsExternalPortParserRuleCall_8_6_7_0()); 
                     	    	    
-                    	    pushFollow(FOLLOW_ruleExternalPort_in_ruleActorClass6297);
+                    	    pushFollow(FOLLOW_ruleExternalPort_in_ruleActorClass6298);
                     	    lv_externalPorts_31_0=ruleExternalPort();
 
                     	    state._fsp--;
@@ -7956,11 +7967,11 @@
                     	    break;
 
                     	default :
-                    	    break loop74;
+                    	    break loop75;
                         }
                     } while (true);
 
-                    otherlv_32=(Token)match(input,15,FOLLOW_15_in_ruleActorClass6311); 
+                    otherlv_32=(Token)match(input,15,FOLLOW_15_in_ruleActorClass6312); 
 
                         	newLeafNode(otherlv_32, grammarAccess.getActorClassAccess().getRightCurlyBracketKeyword_8_7());
                         
@@ -7971,28 +7982,28 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3222:3: (otherlv_33= 'Behavior' ( (lv_behaviorDocu_34_0= ruleDocumentation ) )? otherlv_35= '{' ( (lv_behaviorAnnotations_36_0= ruleAnnotation ) )* ( ( (lv_operations_37_0= ruleStandardOperation ) ) | ( (lv_structors_38_0= ruleClassStructor ) ) )* ( (lv_stateMachine_39_0= ruleStateMachine ) )? otherlv_40= '}' )?
-            int alt80=2;
-            int LA80_0 = input.LA(1);
+            int alt81=2;
+            int LA81_0 = input.LA(1);
 
-            if ( (LA80_0==58) ) {
-                alt80=1;
+            if ( (LA81_0==58) ) {
+                alt81=1;
             }
-            switch (alt80) {
+            switch (alt81) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3222:5: otherlv_33= 'Behavior' ( (lv_behaviorDocu_34_0= ruleDocumentation ) )? otherlv_35= '{' ( (lv_behaviorAnnotations_36_0= ruleAnnotation ) )* ( ( (lv_operations_37_0= ruleStandardOperation ) ) | ( (lv_structors_38_0= ruleClassStructor ) ) )* ( (lv_stateMachine_39_0= ruleStateMachine ) )? otherlv_40= '}'
                     {
-                    otherlv_33=(Token)match(input,58,FOLLOW_58_in_ruleActorClass6326); 
+                    otherlv_33=(Token)match(input,58,FOLLOW_58_in_ruleActorClass6327); 
 
                         	newLeafNode(otherlv_33, grammarAccess.getActorClassAccess().getBehaviorKeyword_9_0());
                         
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3226:1: ( (lv_behaviorDocu_34_0= ruleDocumentation ) )?
-                    int alt76=2;
-                    int LA76_0 = input.LA(1);
+                    int alt77=2;
+                    int LA77_0 = input.LA(1);
 
-                    if ( (LA76_0==34) ) {
-                        alt76=1;
+                    if ( (LA77_0==34) ) {
+                        alt77=1;
                     }
-                    switch (alt76) {
+                    switch (alt77) {
                         case 1 :
                             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3227:1: (lv_behaviorDocu_34_0= ruleDocumentation )
                             {
@@ -8002,7 +8013,7 @@
                              
                             	        newCompositeNode(grammarAccess.getActorClassAccess().getBehaviorDocuDocumentationParserRuleCall_9_1_0()); 
                             	    
-                            pushFollow(FOLLOW_ruleDocumentation_in_ruleActorClass6347);
+                            pushFollow(FOLLOW_ruleDocumentation_in_ruleActorClass6348);
                             lv_behaviorDocu_34_0=ruleDocumentation();
 
                             state._fsp--;
@@ -8027,22 +8038,22 @@
 
                     }
 
-                    otherlv_35=(Token)match(input,14,FOLLOW_14_in_ruleActorClass6360); 
+                    otherlv_35=(Token)match(input,14,FOLLOW_14_in_ruleActorClass6361); 
 
                         	newLeafNode(otherlv_35, grammarAccess.getActorClassAccess().getLeftCurlyBracketKeyword_9_2());
                         
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3248:1: ( (lv_behaviorAnnotations_36_0= ruleAnnotation ) )*
-                    loop77:
+                    loop78:
                     do {
-                        int alt77=2;
-                        int LA77_0 = input.LA(1);
+                        int alt78=2;
+                        int LA78_0 = input.LA(1);
 
-                        if ( (LA77_0==108) ) {
-                            alt77=1;
+                        if ( (LA78_0==108) ) {
+                            alt78=1;
                         }
 
 
-                        switch (alt77) {
+                        switch (alt78) {
                     	case 1 :
                     	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3249:1: (lv_behaviorAnnotations_36_0= ruleAnnotation )
                     	    {
@@ -8052,7 +8063,7 @@
                     	     
                     	    	        newCompositeNode(grammarAccess.getActorClassAccess().getBehaviorAnnotationsAnnotationParserRuleCall_9_3_0()); 
                     	    	    
-                    	    pushFollow(FOLLOW_ruleAnnotation_in_ruleActorClass6381);
+                    	    pushFollow(FOLLOW_ruleAnnotation_in_ruleActorClass6382);
                     	    lv_behaviorAnnotations_36_0=ruleAnnotation();
 
                     	    state._fsp--;
@@ -8076,25 +8087,25 @@
                     	    break;
 
                     	default :
-                    	    break loop77;
+                    	    break loop78;
                         }
                     } while (true);
 
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3266:3: ( ( (lv_operations_37_0= ruleStandardOperation ) ) | ( (lv_structors_38_0= ruleClassStructor ) ) )*
-                    loop78:
+                    loop79:
                     do {
-                        int alt78=3;
-                        int LA78_0 = input.LA(1);
+                        int alt79=3;
+                        int LA79_0 = input.LA(1);
 
-                        if ( ((LA78_0>=36 && LA78_0<=37)) ) {
-                            alt78=1;
+                        if ( ((LA79_0>=36 && LA79_0<=37)) ) {
+                            alt79=1;
                         }
-                        else if ( ((LA78_0>=40 && LA78_0<=41)) ) {
-                            alt78=2;
+                        else if ( ((LA79_0>=40 && LA79_0<=41)) ) {
+                            alt79=2;
                         }
 
 
-                        switch (alt78) {
+                        switch (alt79) {
                     	case 1 :
                     	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3266:4: ( (lv_operations_37_0= ruleStandardOperation ) )
                     	    {
@@ -8107,7 +8118,7 @@
                     	     
                     	    	        newCompositeNode(grammarAccess.getActorClassAccess().getOperationsStandardOperationParserRuleCall_9_4_0_0()); 
                     	    	    
-                    	    pushFollow(FOLLOW_ruleStandardOperation_in_ruleActorClass6404);
+                    	    pushFollow(FOLLOW_ruleStandardOperation_in_ruleActorClass6405);
                     	    lv_operations_37_0=ruleStandardOperation();
 
                     	    state._fsp--;
@@ -8144,7 +8155,7 @@
                     	     
                     	    	        newCompositeNode(grammarAccess.getActorClassAccess().getStructorsClassStructorParserRuleCall_9_4_1_0()); 
                     	    	    
-                    	    pushFollow(FOLLOW_ruleClassStructor_in_ruleActorClass6431);
+                    	    pushFollow(FOLLOW_ruleClassStructor_in_ruleActorClass6432);
                     	    lv_structors_38_0=ruleClassStructor();
 
                     	    state._fsp--;
@@ -8171,18 +8182,18 @@
                     	    break;
 
                     	default :
-                    	    break loop78;
+                    	    break loop79;
                         }
                     } while (true);
 
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3303:4: ( (lv_stateMachine_39_0= ruleStateMachine ) )?
-                    int alt79=2;
-                    int LA79_0 = input.LA(1);
+                    int alt80=2;
+                    int LA80_0 = input.LA(1);
 
-                    if ( (LA79_0==80) ) {
-                        alt79=1;
+                    if ( (LA80_0==80) ) {
+                        alt80=1;
                     }
-                    switch (alt79) {
+                    switch (alt80) {
                         case 1 :
                             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3304:1: (lv_stateMachine_39_0= ruleStateMachine )
                             {
@@ -8192,7 +8203,7 @@
                              
                             	        newCompositeNode(grammarAccess.getActorClassAccess().getStateMachineStateMachineParserRuleCall_9_5_0()); 
                             	    
-                            pushFollow(FOLLOW_ruleStateMachine_in_ruleActorClass6454);
+                            pushFollow(FOLLOW_ruleStateMachine_in_ruleActorClass6455);
                             lv_stateMachine_39_0=ruleStateMachine();
 
                             state._fsp--;
@@ -8217,7 +8228,7 @@
 
                     }
 
-                    otherlv_40=(Token)match(input,15,FOLLOW_15_in_ruleActorClass6467); 
+                    otherlv_40=(Token)match(input,15,FOLLOW_15_in_ruleActorClass6468); 
 
                         	newLeafNode(otherlv_40, grammarAccess.getActorClassAccess().getRightCurlyBracketKeyword_9_6());
                         
@@ -8227,7 +8238,7 @@
 
             }
 
-            otherlv_41=(Token)match(input,15,FOLLOW_15_in_ruleActorClass6481); 
+            otherlv_41=(Token)match(input,15,FOLLOW_15_in_ruleActorClass6482); 
 
                 	newLeafNode(otherlv_41, grammarAccess.getActorClassAccess().getRightCurlyBracketKeyword_10());
                 
@@ -8264,13 +8275,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3339:2: iv_ruleInterfaceItem= ruleInterfaceItem EOF
             {
              newCompositeNode(grammarAccess.getInterfaceItemRule()); 
-            pushFollow(FOLLOW_ruleInterfaceItem_in_entryRuleInterfaceItem6517);
+            pushFollow(FOLLOW_ruleInterfaceItem_in_entryRuleInterfaceItem6518);
             iv_ruleInterfaceItem=ruleInterfaceItem();
 
             state._fsp--;
 
              current =iv_ruleInterfaceItem; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleInterfaceItem6527); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleInterfaceItem6528); 
 
             }
 
@@ -8306,39 +8317,39 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3350:1: (this_Port_0= rulePort | this_SAP_1= ruleSAP | this_SPP_2= ruleSPP )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3350:1: (this_Port_0= rulePort | this_SAP_1= ruleSAP | this_SPP_2= ruleSPP )
-            int alt81=3;
+            int alt82=3;
             switch ( input.LA(1) ) {
             case 47:
             case 59:
                 {
-                alt81=1;
+                alt82=1;
                 }
                 break;
             case 61:
                 {
-                alt81=2;
+                alt82=2;
                 }
                 break;
             case 62:
                 {
-                alt81=3;
+                alt82=3;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 81, 0, input);
+                    new NoViableAltException("", 82, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt81) {
+            switch (alt82) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3351:5: this_Port_0= rulePort
                     {
                      
                             newCompositeNode(grammarAccess.getInterfaceItemAccess().getPortParserRuleCall_0()); 
                         
-                    pushFollow(FOLLOW_rulePort_in_ruleInterfaceItem6574);
+                    pushFollow(FOLLOW_rulePort_in_ruleInterfaceItem6575);
                     this_Port_0=rulePort();
 
                     state._fsp--;
@@ -8356,7 +8367,7 @@
                      
                             newCompositeNode(grammarAccess.getInterfaceItemAccess().getSAPParserRuleCall_1()); 
                         
-                    pushFollow(FOLLOW_ruleSAP_in_ruleInterfaceItem6601);
+                    pushFollow(FOLLOW_ruleSAP_in_ruleInterfaceItem6602);
                     this_SAP_1=ruleSAP();
 
                     state._fsp--;
@@ -8374,7 +8385,7 @@
                      
                             newCompositeNode(grammarAccess.getInterfaceItemAccess().getSPPParserRuleCall_2()); 
                         
-                    pushFollow(FOLLOW_ruleSPP_in_ruleInterfaceItem6628);
+                    pushFollow(FOLLOW_ruleSPP_in_ruleInterfaceItem6629);
                     this_SPP_2=ruleSPP();
 
                     state._fsp--;
@@ -8419,13 +8430,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3389:2: iv_rulePort= rulePort EOF
             {
              newCompositeNode(grammarAccess.getPortRule()); 
-            pushFollow(FOLLOW_rulePort_in_entryRulePort6663);
+            pushFollow(FOLLOW_rulePort_in_entryRulePort6664);
             iv_rulePort=rulePort();
 
             state._fsp--;
 
              current =iv_rulePort; 
-            match(input,EOF,FOLLOW_EOF_in_entryRulePort6673); 
+            match(input,EOF,FOLLOW_EOF_in_entryRulePort6674); 
 
             }
 
@@ -8466,20 +8477,20 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3400:2: ( (lv_conjugated_0_0= 'conjugated' ) )? otherlv_1= 'Port' ( (lv_name_2_0= RULE_ID ) ) ( (lv_multiplicity_3_0= ruleMULTIPLICITY ) )? otherlv_4= ':' ( ( ruleFQN ) ) ( (lv_docu_6_0= ruleDocumentation ) )?
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3400:2: ( (lv_conjugated_0_0= 'conjugated' ) )?
-            int alt82=2;
-            int LA82_0 = input.LA(1);
+            int alt83=2;
+            int LA83_0 = input.LA(1);
 
-            if ( (LA82_0==47) ) {
-                alt82=1;
+            if ( (LA83_0==47) ) {
+                alt83=1;
             }
-            switch (alt82) {
+            switch (alt83) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3401:1: (lv_conjugated_0_0= 'conjugated' )
                     {
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3401:1: (lv_conjugated_0_0= 'conjugated' )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3402:3: lv_conjugated_0_0= 'conjugated'
                     {
-                    lv_conjugated_0_0=(Token)match(input,47,FOLLOW_47_in_rulePort6716); 
+                    lv_conjugated_0_0=(Token)match(input,47,FOLLOW_47_in_rulePort6717); 
 
                             newLeafNode(lv_conjugated_0_0, grammarAccess.getPortAccess().getConjugatedConjugatedKeyword_0_0());
                         
@@ -8498,7 +8509,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,59,FOLLOW_59_in_rulePort6742); 
+            otherlv_1=(Token)match(input,59,FOLLOW_59_in_rulePort6743); 
 
                 	newLeafNode(otherlv_1, grammarAccess.getPortAccess().getPortKeyword_1());
                 
@@ -8508,7 +8519,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3420:1: (lv_name_2_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3421:3: lv_name_2_0= RULE_ID
             {
-            lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_rulePort6759); 
+            lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_rulePort6760); 
 
             			newLeafNode(lv_name_2_0, grammarAccess.getPortAccess().getNameIDTerminalRuleCall_2_0()); 
             		
@@ -8529,13 +8540,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3437:2: ( (lv_multiplicity_3_0= ruleMULTIPLICITY ) )?
-            int alt83=2;
-            int LA83_0 = input.LA(1);
+            int alt84=2;
+            int LA84_0 = input.LA(1);
 
-            if ( (LA83_0==34) ) {
-                alt83=1;
+            if ( (LA84_0==34) ) {
+                alt84=1;
             }
-            switch (alt83) {
+            switch (alt84) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3438:1: (lv_multiplicity_3_0= ruleMULTIPLICITY )
                     {
@@ -8545,7 +8556,7 @@
                      
                     	        newCompositeNode(grammarAccess.getPortAccess().getMultiplicityMULTIPLICITYParserRuleCall_3_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleMULTIPLICITY_in_rulePort6785);
+                    pushFollow(FOLLOW_ruleMULTIPLICITY_in_rulePort6786);
                     lv_multiplicity_3_0=ruleMULTIPLICITY();
 
                     state._fsp--;
@@ -8570,7 +8581,7 @@
 
             }
 
-            otherlv_4=(Token)match(input,16,FOLLOW_16_in_rulePort6798); 
+            otherlv_4=(Token)match(input,16,FOLLOW_16_in_rulePort6799); 
 
                 	newLeafNode(otherlv_4, grammarAccess.getPortAccess().getColonKeyword_4());
                 
@@ -8588,7 +8599,7 @@
              
             	        newCompositeNode(grammarAccess.getPortAccess().getProtocolGeneralProtocolClassCrossReference_5_0()); 
             	    
-            pushFollow(FOLLOW_ruleFQN_in_rulePort6821);
+            pushFollow(FOLLOW_ruleFQN_in_rulePort6822);
             ruleFQN();
 
             state._fsp--;
@@ -8603,13 +8614,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3474:2: ( (lv_docu_6_0= ruleDocumentation ) )?
-            int alt84=2;
-            int LA84_0 = input.LA(1);
+            int alt85=2;
+            int LA85_0 = input.LA(1);
 
-            if ( (LA84_0==34) ) {
-                alt84=1;
+            if ( (LA85_0==34) ) {
+                alt85=1;
             }
-            switch (alt84) {
+            switch (alt85) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3475:1: (lv_docu_6_0= ruleDocumentation )
                     {
@@ -8619,7 +8630,7 @@
                      
                     	        newCompositeNode(grammarAccess.getPortAccess().getDocuDocumentationParserRuleCall_6_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDocumentation_in_rulePort6842);
+                    pushFollow(FOLLOW_ruleDocumentation_in_rulePort6843);
                     lv_docu_6_0=ruleDocumentation();
 
                     state._fsp--;
@@ -8677,13 +8688,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3502:2: iv_ruleExternalPort= ruleExternalPort EOF
             {
              newCompositeNode(grammarAccess.getExternalPortRule()); 
-            pushFollow(FOLLOW_ruleExternalPort_in_entryRuleExternalPort6879);
+            pushFollow(FOLLOW_ruleExternalPort_in_entryRuleExternalPort6880);
             iv_ruleExternalPort=ruleExternalPort();
 
             state._fsp--;
 
              current =iv_ruleExternalPort; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleExternalPort6889); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleExternalPort6890); 
 
             }
 
@@ -8718,11 +8729,11 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3513:1: (otherlv_0= 'external' otherlv_1= 'Port' ( (otherlv_2= RULE_ID ) ) )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3513:3: otherlv_0= 'external' otherlv_1= 'Port' ( (otherlv_2= RULE_ID ) )
             {
-            otherlv_0=(Token)match(input,60,FOLLOW_60_in_ruleExternalPort6926); 
+            otherlv_0=(Token)match(input,60,FOLLOW_60_in_ruleExternalPort6927); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getExternalPortAccess().getExternalKeyword_0());
                 
-            otherlv_1=(Token)match(input,59,FOLLOW_59_in_ruleExternalPort6938); 
+            otherlv_1=(Token)match(input,59,FOLLOW_59_in_ruleExternalPort6939); 
 
                 	newLeafNode(otherlv_1, grammarAccess.getExternalPortAccess().getPortKeyword_1());
                 
@@ -8737,7 +8748,7 @@
             	            current = createModelElement(grammarAccess.getExternalPortRule());
             	        }
                     
-            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleExternalPort6958); 
+            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleExternalPort6959); 
 
             		newLeafNode(otherlv_2, grammarAccess.getExternalPortAccess().getInterfacePortPortCrossReference_2_0()); 
             	
@@ -8780,13 +8791,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3544:2: iv_ruleSAP= ruleSAP EOF
             {
              newCompositeNode(grammarAccess.getSAPRule()); 
-            pushFollow(FOLLOW_ruleSAP_in_entryRuleSAP6994);
+            pushFollow(FOLLOW_ruleSAP_in_entryRuleSAP6995);
             iv_ruleSAP=ruleSAP();
 
             state._fsp--;
 
              current =iv_ruleSAP; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleSAP7004); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleSAP7005); 
 
             }
 
@@ -8821,7 +8832,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3555:1: (otherlv_0= 'SAP' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= ':' ( ( ruleFQN ) ) )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3555:3: otherlv_0= 'SAP' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= ':' ( ( ruleFQN ) )
             {
-            otherlv_0=(Token)match(input,61,FOLLOW_61_in_ruleSAP7041); 
+            otherlv_0=(Token)match(input,61,FOLLOW_61_in_ruleSAP7042); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getSAPAccess().getSAPKeyword_0());
                 
@@ -8831,7 +8842,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3560:1: (lv_name_1_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3561:3: lv_name_1_0= RULE_ID
             {
-            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSAP7058); 
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSAP7059); 
 
             			newLeafNode(lv_name_1_0, grammarAccess.getSAPAccess().getNameIDTerminalRuleCall_1_0()); 
             		
@@ -8851,7 +8862,7 @@
 
             }
 
-            otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleSAP7075); 
+            otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleSAP7076); 
 
                 	newLeafNode(otherlv_2, grammarAccess.getSAPAccess().getColonKeyword_2());
                 
@@ -8869,7 +8880,7 @@
              
             	        newCompositeNode(grammarAccess.getSAPAccess().getProtocolProtocolClassCrossReference_3_0()); 
             	    
-            pushFollow(FOLLOW_ruleFQN_in_ruleSAP7098);
+            pushFollow(FOLLOW_ruleFQN_in_ruleSAP7099);
             ruleFQN();
 
             state._fsp--;
@@ -8916,13 +8927,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3606:2: iv_ruleSPP= ruleSPP EOF
             {
              newCompositeNode(grammarAccess.getSPPRule()); 
-            pushFollow(FOLLOW_ruleSPP_in_entryRuleSPP7134);
+            pushFollow(FOLLOW_ruleSPP_in_entryRuleSPP7135);
             iv_ruleSPP=ruleSPP();
 
             state._fsp--;
 
              current =iv_ruleSPP; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleSPP7144); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleSPP7145); 
 
             }
 
@@ -8957,7 +8968,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3617:1: (otherlv_0= 'SPP' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= ':' ( ( ruleFQN ) ) )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3617:3: otherlv_0= 'SPP' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= ':' ( ( ruleFQN ) )
             {
-            otherlv_0=(Token)match(input,62,FOLLOW_62_in_ruleSPP7181); 
+            otherlv_0=(Token)match(input,62,FOLLOW_62_in_ruleSPP7182); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getSPPAccess().getSPPKeyword_0());
                 
@@ -8967,7 +8978,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3622:1: (lv_name_1_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3623:3: lv_name_1_0= RULE_ID
             {
-            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSPP7198); 
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSPP7199); 
 
             			newLeafNode(lv_name_1_0, grammarAccess.getSPPAccess().getNameIDTerminalRuleCall_1_0()); 
             		
@@ -8987,7 +8998,7 @@
 
             }
 
-            otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleSPP7215); 
+            otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleSPP7216); 
 
                 	newLeafNode(otherlv_2, grammarAccess.getSPPAccess().getColonKeyword_2());
                 
@@ -9005,7 +9016,7 @@
              
             	        newCompositeNode(grammarAccess.getSPPAccess().getProtocolProtocolClassCrossReference_3_0()); 
             	    
-            pushFollow(FOLLOW_ruleFQN_in_ruleSPP7238);
+            pushFollow(FOLLOW_ruleFQN_in_ruleSPP7239);
             ruleFQN();
 
             state._fsp--;
@@ -9052,13 +9063,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3668:2: iv_ruleServiceImplementation= ruleServiceImplementation EOF
             {
              newCompositeNode(grammarAccess.getServiceImplementationRule()); 
-            pushFollow(FOLLOW_ruleServiceImplementation_in_entryRuleServiceImplementation7274);
+            pushFollow(FOLLOW_ruleServiceImplementation_in_entryRuleServiceImplementation7275);
             iv_ruleServiceImplementation=ruleServiceImplementation();
 
             state._fsp--;
 
              current =iv_ruleServiceImplementation; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleServiceImplementation7284); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleServiceImplementation7285); 
 
             }
 
@@ -9093,11 +9104,11 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3679:1: (otherlv_0= 'ServiceImplementation' otherlv_1= 'of' ( (otherlv_2= RULE_ID ) ) )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3679:3: otherlv_0= 'ServiceImplementation' otherlv_1= 'of' ( (otherlv_2= RULE_ID ) )
             {
-            otherlv_0=(Token)match(input,63,FOLLOW_63_in_ruleServiceImplementation7321); 
+            otherlv_0=(Token)match(input,63,FOLLOW_63_in_ruleServiceImplementation7322); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getServiceImplementationAccess().getServiceImplementationKeyword_0());
                 
-            otherlv_1=(Token)match(input,24,FOLLOW_24_in_ruleServiceImplementation7333); 
+            otherlv_1=(Token)match(input,24,FOLLOW_24_in_ruleServiceImplementation7334); 
 
                 	newLeafNode(otherlv_1, grammarAccess.getServiceImplementationAccess().getOfKeyword_1());
                 
@@ -9112,7 +9123,7 @@
             	            current = createModelElement(grammarAccess.getServiceImplementationRule());
             	        }
                     
-            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleServiceImplementation7353); 
+            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleServiceImplementation7354); 
 
             		newLeafNode(otherlv_2, grammarAccess.getServiceImplementationAccess().getSppSPPCrossReference_2_0()); 
             	
@@ -9155,13 +9166,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3710:2: iv_ruleLogicalSystem= ruleLogicalSystem EOF
             {
              newCompositeNode(grammarAccess.getLogicalSystemRule()); 
-            pushFollow(FOLLOW_ruleLogicalSystem_in_entryRuleLogicalSystem7389);
+            pushFollow(FOLLOW_ruleLogicalSystem_in_entryRuleLogicalSystem7390);
             iv_ruleLogicalSystem=ruleLogicalSystem();
 
             state._fsp--;
 
              current =iv_ruleLogicalSystem; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleLogicalSystem7399); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleLogicalSystem7400); 
 
             }
 
@@ -9207,7 +9218,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3721:1: (otherlv_0= 'LogicalSystem' ( (lv_name_1_0= RULE_ID ) ) ( (lv_docu_2_0= ruleDocumentation ) )? otherlv_3= '{' ( (lv_annotations_4_0= ruleAnnotation ) )* ( ( (lv_connections_5_0= ruleLayerConnection ) ) | ( (lv_bindings_6_0= ruleBinding ) ) | ( (lv_subSystems_7_0= ruleSubSystemRef ) ) )* otherlv_8= '}' )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3721:3: otherlv_0= 'LogicalSystem' ( (lv_name_1_0= RULE_ID ) ) ( (lv_docu_2_0= ruleDocumentation ) )? otherlv_3= '{' ( (lv_annotations_4_0= ruleAnnotation ) )* ( ( (lv_connections_5_0= ruleLayerConnection ) ) | ( (lv_bindings_6_0= ruleBinding ) ) | ( (lv_subSystems_7_0= ruleSubSystemRef ) ) )* otherlv_8= '}'
             {
-            otherlv_0=(Token)match(input,64,FOLLOW_64_in_ruleLogicalSystem7436); 
+            otherlv_0=(Token)match(input,64,FOLLOW_64_in_ruleLogicalSystem7437); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getLogicalSystemAccess().getLogicalSystemKeyword_0());
                 
@@ -9217,7 +9228,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3726:1: (lv_name_1_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3727:3: lv_name_1_0= RULE_ID
             {
-            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleLogicalSystem7453); 
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleLogicalSystem7454); 
 
             			newLeafNode(lv_name_1_0, grammarAccess.getLogicalSystemAccess().getNameIDTerminalRuleCall_1_0()); 
             		
@@ -9238,13 +9249,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3743:2: ( (lv_docu_2_0= ruleDocumentation ) )?
-            int alt85=2;
-            int LA85_0 = input.LA(1);
+            int alt86=2;
+            int LA86_0 = input.LA(1);
 
-            if ( (LA85_0==34) ) {
-                alt85=1;
+            if ( (LA86_0==34) ) {
+                alt86=1;
             }
-            switch (alt85) {
+            switch (alt86) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3744:1: (lv_docu_2_0= ruleDocumentation )
                     {
@@ -9254,7 +9265,7 @@
                      
                     	        newCompositeNode(grammarAccess.getLogicalSystemAccess().getDocuDocumentationParserRuleCall_2_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDocumentation_in_ruleLogicalSystem7479);
+                    pushFollow(FOLLOW_ruleDocumentation_in_ruleLogicalSystem7480);
                     lv_docu_2_0=ruleDocumentation();
 
                     state._fsp--;
@@ -9279,22 +9290,22 @@
 
             }
 
-            otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleLogicalSystem7492); 
+            otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleLogicalSystem7493); 
 
                 	newLeafNode(otherlv_3, grammarAccess.getLogicalSystemAccess().getLeftCurlyBracketKeyword_3());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3765:1: ( (lv_annotations_4_0= ruleAnnotation ) )*
-            loop86:
+            loop87:
             do {
-                int alt86=2;
-                int LA86_0 = input.LA(1);
+                int alt87=2;
+                int LA87_0 = input.LA(1);
 
-                if ( (LA86_0==108) ) {
-                    alt86=1;
+                if ( (LA87_0==108) ) {
+                    alt87=1;
                 }
 
 
-                switch (alt86) {
+                switch (alt87) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3766:1: (lv_annotations_4_0= ruleAnnotation )
             	    {
@@ -9304,7 +9315,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getLogicalSystemAccess().getAnnotationsAnnotationParserRuleCall_4_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleAnnotation_in_ruleLogicalSystem7513);
+            	    pushFollow(FOLLOW_ruleAnnotation_in_ruleLogicalSystem7514);
             	    lv_annotations_4_0=ruleAnnotation();
 
             	    state._fsp--;
@@ -9328,34 +9339,34 @@
             	    break;
 
             	default :
-            	    break loop86;
+            	    break loop87;
                 }
             } while (true);
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3783:3: ( ( (lv_connections_5_0= ruleLayerConnection ) ) | ( (lv_bindings_6_0= ruleBinding ) ) | ( (lv_subSystems_7_0= ruleSubSystemRef ) ) )*
-            loop87:
+            loop88:
             do {
-                int alt87=4;
+                int alt88=4;
                 switch ( input.LA(1) ) {
                 case 74:
                     {
-                    alt87=1;
+                    alt88=1;
                     }
                     break;
                 case 70:
                     {
-                    alt87=2;
+                    alt88=2;
                     }
                     break;
                 case 65:
                     {
-                    alt87=3;
+                    alt88=3;
                     }
                     break;
 
                 }
 
-                switch (alt87) {
+                switch (alt88) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3783:4: ( (lv_connections_5_0= ruleLayerConnection ) )
             	    {
@@ -9368,7 +9379,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getLogicalSystemAccess().getConnectionsLayerConnectionParserRuleCall_5_0_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleLayerConnection_in_ruleLogicalSystem7536);
+            	    pushFollow(FOLLOW_ruleLayerConnection_in_ruleLogicalSystem7537);
             	    lv_connections_5_0=ruleLayerConnection();
 
             	    state._fsp--;
@@ -9405,7 +9416,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getLogicalSystemAccess().getBindingsBindingParserRuleCall_5_1_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleBinding_in_ruleLogicalSystem7563);
+            	    pushFollow(FOLLOW_ruleBinding_in_ruleLogicalSystem7564);
             	    lv_bindings_6_0=ruleBinding();
 
             	    state._fsp--;
@@ -9442,7 +9453,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getLogicalSystemAccess().getSubSystemsSubSystemRefParserRuleCall_5_2_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleSubSystemRef_in_ruleLogicalSystem7590);
+            	    pushFollow(FOLLOW_ruleSubSystemRef_in_ruleLogicalSystem7591);
             	    lv_subSystems_7_0=ruleSubSystemRef();
 
             	    state._fsp--;
@@ -9469,11 +9480,11 @@
             	    break;
 
             	default :
-            	    break loop87;
+            	    break loop88;
                 }
             } while (true);
 
-            otherlv_8=(Token)match(input,15,FOLLOW_15_in_ruleLogicalSystem7604); 
+            otherlv_8=(Token)match(input,15,FOLLOW_15_in_ruleLogicalSystem7605); 
 
                 	newLeafNode(otherlv_8, grammarAccess.getLogicalSystemAccess().getRightCurlyBracketKeyword_6());
                 
@@ -9510,13 +9521,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3855:2: iv_ruleSubSystemRef= ruleSubSystemRef EOF
             {
              newCompositeNode(grammarAccess.getSubSystemRefRule()); 
-            pushFollow(FOLLOW_ruleSubSystemRef_in_entryRuleSubSystemRef7642);
+            pushFollow(FOLLOW_ruleSubSystemRef_in_entryRuleSubSystemRef7643);
             iv_ruleSubSystemRef=ruleSubSystemRef();
 
             state._fsp--;
 
              current =iv_ruleSubSystemRef; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleSubSystemRef7652); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleSubSystemRef7653); 
 
             }
 
@@ -9553,7 +9564,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3866:1: (otherlv_0= 'SubSystemRef' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= ':' ( ( ruleFQN ) ) ( (lv_docu_4_0= ruleDocumentation ) )? )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3866:3: otherlv_0= 'SubSystemRef' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= ':' ( ( ruleFQN ) ) ( (lv_docu_4_0= ruleDocumentation ) )?
             {
-            otherlv_0=(Token)match(input,65,FOLLOW_65_in_ruleSubSystemRef7689); 
+            otherlv_0=(Token)match(input,65,FOLLOW_65_in_ruleSubSystemRef7690); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getSubSystemRefAccess().getSubSystemRefKeyword_0());
                 
@@ -9563,7 +9574,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3871:1: (lv_name_1_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3872:3: lv_name_1_0= RULE_ID
             {
-            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSubSystemRef7706); 
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSubSystemRef7707); 
 
             			newLeafNode(lv_name_1_0, grammarAccess.getSubSystemRefAccess().getNameIDTerminalRuleCall_1_0()); 
             		
@@ -9583,7 +9594,7 @@
 
             }
 
-            otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleSubSystemRef7723); 
+            otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleSubSystemRef7724); 
 
                 	newLeafNode(otherlv_2, grammarAccess.getSubSystemRefAccess().getColonKeyword_2());
                 
@@ -9601,7 +9612,7 @@
              
             	        newCompositeNode(grammarAccess.getSubSystemRefAccess().getTypeSubSystemClassCrossReference_3_0()); 
             	    
-            pushFollow(FOLLOW_ruleFQN_in_ruleSubSystemRef7746);
+            pushFollow(FOLLOW_ruleFQN_in_ruleSubSystemRef7747);
             ruleFQN();
 
             state._fsp--;
@@ -9616,13 +9627,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3907:2: ( (lv_docu_4_0= ruleDocumentation ) )?
-            int alt88=2;
-            int LA88_0 = input.LA(1);
+            int alt89=2;
+            int LA89_0 = input.LA(1);
 
-            if ( (LA88_0==34) ) {
-                alt88=1;
+            if ( (LA89_0==34) ) {
+                alt89=1;
             }
-            switch (alt88) {
+            switch (alt89) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3908:1: (lv_docu_4_0= ruleDocumentation )
                     {
@@ -9632,7 +9643,7 @@
                      
                     	        newCompositeNode(grammarAccess.getSubSystemRefAccess().getDocuDocumentationParserRuleCall_4_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDocumentation_in_ruleSubSystemRef7767);
+                    pushFollow(FOLLOW_ruleDocumentation_in_ruleSubSystemRef7768);
                     lv_docu_4_0=ruleDocumentation();
 
                     state._fsp--;
@@ -9690,13 +9701,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3935:2: iv_ruleSubSystemClass= ruleSubSystemClass EOF
             {
              newCompositeNode(grammarAccess.getSubSystemClassRule()); 
-            pushFollow(FOLLOW_ruleSubSystemClass_in_entryRuleSubSystemClass7804);
+            pushFollow(FOLLOW_ruleSubSystemClass_in_entryRuleSubSystemClass7805);
             iv_ruleSubSystemClass=ruleSubSystemClass();
 
             state._fsp--;
 
              current =iv_ruleSubSystemClass; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleSubSystemClass7814); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleSubSystemClass7815); 
 
             }
 
@@ -9759,7 +9770,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3946:1: (otherlv_0= 'SubSystemClass' ( (lv_name_1_0= RULE_ID ) ) ( (lv_docu_2_0= ruleDocumentation ) )? otherlv_3= '{' ( (lv_annotations_4_0= ruleAnnotation ) )* (otherlv_5= 'usercode1' ( (lv_userCode1_6_0= ruleDetailCode ) ) )? (otherlv_7= 'usercode2' ( (lv_userCode2_8_0= ruleDetailCode ) ) )? (otherlv_9= 'usercode3' ( (lv_userCode3_10_0= ruleDetailCode ) ) )? ( ( (lv_actorInstanceMappings_11_0= ruleActorInstanceMapping ) ) | ( (lv_threads_12_0= ruleLogicalThread ) ) | ( (lv_connections_13_0= ruleLayerConnection ) ) | ( (lv_bindings_14_0= ruleBinding ) ) | ( (lv_actorRefs_15_0= ruleActorRef ) ) | ( (lv_serviceProvisionPoints_16_0= ruleSPP ) ) | ( (lv_relayPorts_17_0= rulePort ) ) )* otherlv_18= '}' )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3946:3: otherlv_0= 'SubSystemClass' ( (lv_name_1_0= RULE_ID ) ) ( (lv_docu_2_0= ruleDocumentation ) )? otherlv_3= '{' ( (lv_annotations_4_0= ruleAnnotation ) )* (otherlv_5= 'usercode1' ( (lv_userCode1_6_0= ruleDetailCode ) ) )? (otherlv_7= 'usercode2' ( (lv_userCode2_8_0= ruleDetailCode ) ) )? (otherlv_9= 'usercode3' ( (lv_userCode3_10_0= ruleDetailCode ) ) )? ( ( (lv_actorInstanceMappings_11_0= ruleActorInstanceMapping ) ) | ( (lv_threads_12_0= ruleLogicalThread ) ) | ( (lv_connections_13_0= ruleLayerConnection ) ) | ( (lv_bindings_14_0= ruleBinding ) ) | ( (lv_actorRefs_15_0= ruleActorRef ) ) | ( (lv_serviceProvisionPoints_16_0= ruleSPP ) ) | ( (lv_relayPorts_17_0= rulePort ) ) )* otherlv_18= '}'
             {
-            otherlv_0=(Token)match(input,66,FOLLOW_66_in_ruleSubSystemClass7851); 
+            otherlv_0=(Token)match(input,66,FOLLOW_66_in_ruleSubSystemClass7852); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getSubSystemClassAccess().getSubSystemClassKeyword_0());
                 
@@ -9769,7 +9780,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3951:1: (lv_name_1_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3952:3: lv_name_1_0= RULE_ID
             {
-            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSubSystemClass7868); 
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSubSystemClass7869); 
 
             			newLeafNode(lv_name_1_0, grammarAccess.getSubSystemClassAccess().getNameIDTerminalRuleCall_1_0()); 
             		
@@ -9790,13 +9801,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3968:2: ( (lv_docu_2_0= ruleDocumentation ) )?
-            int alt89=2;
-            int LA89_0 = input.LA(1);
+            int alt90=2;
+            int LA90_0 = input.LA(1);
 
-            if ( (LA89_0==34) ) {
-                alt89=1;
+            if ( (LA90_0==34) ) {
+                alt90=1;
             }
-            switch (alt89) {
+            switch (alt90) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3969:1: (lv_docu_2_0= ruleDocumentation )
                     {
@@ -9806,7 +9817,7 @@
                      
                     	        newCompositeNode(grammarAccess.getSubSystemClassAccess().getDocuDocumentationParserRuleCall_2_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDocumentation_in_ruleSubSystemClass7894);
+                    pushFollow(FOLLOW_ruleDocumentation_in_ruleSubSystemClass7895);
                     lv_docu_2_0=ruleDocumentation();
 
                     state._fsp--;
@@ -9831,22 +9842,22 @@
 
             }
 
-            otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleSubSystemClass7907); 
+            otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleSubSystemClass7908); 
 
                 	newLeafNode(otherlv_3, grammarAccess.getSubSystemClassAccess().getLeftCurlyBracketKeyword_3());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3990:1: ( (lv_annotations_4_0= ruleAnnotation ) )*
-            loop90:
+            loop91:
             do {
-                int alt90=2;
-                int LA90_0 = input.LA(1);
+                int alt91=2;
+                int LA91_0 = input.LA(1);
 
-                if ( (LA90_0==108) ) {
-                    alt90=1;
+                if ( (LA91_0==108) ) {
+                    alt91=1;
                 }
 
 
-                switch (alt90) {
+                switch (alt91) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:3991:1: (lv_annotations_4_0= ruleAnnotation )
             	    {
@@ -9856,7 +9867,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getSubSystemClassAccess().getAnnotationsAnnotationParserRuleCall_4_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleAnnotation_in_ruleSubSystemClass7928);
+            	    pushFollow(FOLLOW_ruleAnnotation_in_ruleSubSystemClass7929);
             	    lv_annotations_4_0=ruleAnnotation();
 
             	    state._fsp--;
@@ -9880,22 +9891,22 @@
             	    break;
 
             	default :
-            	    break loop90;
+            	    break loop91;
                 }
             } while (true);
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4008:3: (otherlv_5= 'usercode1' ( (lv_userCode1_6_0= ruleDetailCode ) ) )?
-            int alt91=2;
-            int LA91_0 = input.LA(1);
+            int alt92=2;
+            int LA92_0 = input.LA(1);
 
-            if ( (LA91_0==30) ) {
-                alt91=1;
+            if ( (LA92_0==30) ) {
+                alt92=1;
             }
-            switch (alt91) {
+            switch (alt92) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4008:5: otherlv_5= 'usercode1' ( (lv_userCode1_6_0= ruleDetailCode ) )
                     {
-                    otherlv_5=(Token)match(input,30,FOLLOW_30_in_ruleSubSystemClass7942); 
+                    otherlv_5=(Token)match(input,30,FOLLOW_30_in_ruleSubSystemClass7943); 
 
                         	newLeafNode(otherlv_5, grammarAccess.getSubSystemClassAccess().getUsercode1Keyword_5_0());
                         
@@ -9908,7 +9919,7 @@
                      
                     	        newCompositeNode(grammarAccess.getSubSystemClassAccess().getUserCode1DetailCodeParserRuleCall_5_1_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDetailCode_in_ruleSubSystemClass7963);
+                    pushFollow(FOLLOW_ruleDetailCode_in_ruleSubSystemClass7964);
                     lv_userCode1_6_0=ruleDetailCode();
 
                     state._fsp--;
@@ -9937,17 +9948,17 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4030:4: (otherlv_7= 'usercode2' ( (lv_userCode2_8_0= ruleDetailCode ) ) )?
-            int alt92=2;
-            int LA92_0 = input.LA(1);
+            int alt93=2;
+            int LA93_0 = input.LA(1);
 
-            if ( (LA92_0==31) ) {
-                alt92=1;
+            if ( (LA93_0==31) ) {
+                alt93=1;
             }
-            switch (alt92) {
+            switch (alt93) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4030:6: otherlv_7= 'usercode2' ( (lv_userCode2_8_0= ruleDetailCode ) )
                     {
-                    otherlv_7=(Token)match(input,31,FOLLOW_31_in_ruleSubSystemClass7978); 
+                    otherlv_7=(Token)match(input,31,FOLLOW_31_in_ruleSubSystemClass7979); 
 
                         	newLeafNode(otherlv_7, grammarAccess.getSubSystemClassAccess().getUsercode2Keyword_6_0());
                         
@@ -9960,7 +9971,7 @@
                      
                     	        newCompositeNode(grammarAccess.getSubSystemClassAccess().getUserCode2DetailCodeParserRuleCall_6_1_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDetailCode_in_ruleSubSystemClass7999);
+                    pushFollow(FOLLOW_ruleDetailCode_in_ruleSubSystemClass8000);
                     lv_userCode2_8_0=ruleDetailCode();
 
                     state._fsp--;
@@ -9989,17 +10000,17 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4052:4: (otherlv_9= 'usercode3' ( (lv_userCode3_10_0= ruleDetailCode ) ) )?
-            int alt93=2;
-            int LA93_0 = input.LA(1);
+            int alt94=2;
+            int LA94_0 = input.LA(1);
 
-            if ( (LA93_0==32) ) {
-                alt93=1;
+            if ( (LA94_0==32) ) {
+                alt94=1;
             }
-            switch (alt93) {
+            switch (alt94) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4052:6: otherlv_9= 'usercode3' ( (lv_userCode3_10_0= ruleDetailCode ) )
                     {
-                    otherlv_9=(Token)match(input,32,FOLLOW_32_in_ruleSubSystemClass8014); 
+                    otherlv_9=(Token)match(input,32,FOLLOW_32_in_ruleSubSystemClass8015); 
 
                         	newLeafNode(otherlv_9, grammarAccess.getSubSystemClassAccess().getUsercode3Keyword_7_0());
                         
@@ -10012,7 +10023,7 @@
                      
                     	        newCompositeNode(grammarAccess.getSubSystemClassAccess().getUserCode3DetailCodeParserRuleCall_7_1_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDetailCode_in_ruleSubSystemClass8035);
+                    pushFollow(FOLLOW_ruleDetailCode_in_ruleSubSystemClass8036);
                     lv_userCode3_10_0=ruleDetailCode();
 
                     state._fsp--;
@@ -10041,52 +10052,52 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4074:4: ( ( (lv_actorInstanceMappings_11_0= ruleActorInstanceMapping ) ) | ( (lv_threads_12_0= ruleLogicalThread ) ) | ( (lv_connections_13_0= ruleLayerConnection ) ) | ( (lv_bindings_14_0= ruleBinding ) ) | ( (lv_actorRefs_15_0= ruleActorRef ) ) | ( (lv_serviceProvisionPoints_16_0= ruleSPP ) ) | ( (lv_relayPorts_17_0= rulePort ) ) )*
-            loop94:
+            loop95:
             do {
-                int alt94=8;
+                int alt95=8;
                 switch ( input.LA(1) ) {
                 case 68:
                     {
-                    alt94=1;
+                    alt95=1;
                     }
                     break;
                 case 67:
                     {
-                    alt94=2;
+                    alt95=2;
                     }
                     break;
                 case 74:
                     {
-                    alt94=3;
+                    alt95=3;
                     }
                     break;
                 case 70:
                     {
-                    alt94=4;
+                    alt95=4;
                     }
                     break;
                 case 77:
                 case 111:
                 case 125:
                     {
-                    alt94=5;
+                    alt95=5;
                     }
                     break;
                 case 62:
                     {
-                    alt94=6;
+                    alt95=6;
                     }
                     break;
                 case 47:
                 case 59:
                     {
-                    alt94=7;
+                    alt95=7;
                     }
                     break;
 
                 }
 
-                switch (alt94) {
+                switch (alt95) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4074:5: ( (lv_actorInstanceMappings_11_0= ruleActorInstanceMapping ) )
             	    {
@@ -10099,7 +10110,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getSubSystemClassAccess().getActorInstanceMappingsActorInstanceMappingParserRuleCall_8_0_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleActorInstanceMapping_in_ruleSubSystemClass8059);
+            	    pushFollow(FOLLOW_ruleActorInstanceMapping_in_ruleSubSystemClass8060);
             	    lv_actorInstanceMappings_11_0=ruleActorInstanceMapping();
 
             	    state._fsp--;
@@ -10136,7 +10147,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getSubSystemClassAccess().getThreadsLogicalThreadParserRuleCall_8_1_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleLogicalThread_in_ruleSubSystemClass8086);
+            	    pushFollow(FOLLOW_ruleLogicalThread_in_ruleSubSystemClass8087);
             	    lv_threads_12_0=ruleLogicalThread();
 
             	    state._fsp--;
@@ -10173,7 +10184,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getSubSystemClassAccess().getConnectionsLayerConnectionParserRuleCall_8_2_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleLayerConnection_in_ruleSubSystemClass8113);
+            	    pushFollow(FOLLOW_ruleLayerConnection_in_ruleSubSystemClass8114);
             	    lv_connections_13_0=ruleLayerConnection();
 
             	    state._fsp--;
@@ -10210,7 +10221,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getSubSystemClassAccess().getBindingsBindingParserRuleCall_8_3_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleBinding_in_ruleSubSystemClass8140);
+            	    pushFollow(FOLLOW_ruleBinding_in_ruleSubSystemClass8141);
             	    lv_bindings_14_0=ruleBinding();
 
             	    state._fsp--;
@@ -10247,7 +10258,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getSubSystemClassAccess().getActorRefsActorRefParserRuleCall_8_4_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleActorRef_in_ruleSubSystemClass8167);
+            	    pushFollow(FOLLOW_ruleActorRef_in_ruleSubSystemClass8168);
             	    lv_actorRefs_15_0=ruleActorRef();
 
             	    state._fsp--;
@@ -10284,7 +10295,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getSubSystemClassAccess().getServiceProvisionPointsSPPParserRuleCall_8_5_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleSPP_in_ruleSubSystemClass8194);
+            	    pushFollow(FOLLOW_ruleSPP_in_ruleSubSystemClass8195);
             	    lv_serviceProvisionPoints_16_0=ruleSPP();
 
             	    state._fsp--;
@@ -10321,7 +10332,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getSubSystemClassAccess().getRelayPortsPortParserRuleCall_8_6_0()); 
             	    	    
-            	    pushFollow(FOLLOW_rulePort_in_ruleSubSystemClass8221);
+            	    pushFollow(FOLLOW_rulePort_in_ruleSubSystemClass8222);
             	    lv_relayPorts_17_0=rulePort();
 
             	    state._fsp--;
@@ -10348,11 +10359,11 @@
             	    break;
 
             	default :
-            	    break loop94;
+            	    break loop95;
                 }
             } while (true);
 
-            otherlv_18=(Token)match(input,15,FOLLOW_15_in_ruleSubSystemClass8235); 
+            otherlv_18=(Token)match(input,15,FOLLOW_15_in_ruleSubSystemClass8236); 
 
                 	newLeafNode(otherlv_18, grammarAccess.getSubSystemClassAccess().getRightCurlyBracketKeyword_9());
                 
@@ -10389,13 +10400,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4220:2: iv_ruleLogicalThread= ruleLogicalThread EOF
             {
              newCompositeNode(grammarAccess.getLogicalThreadRule()); 
-            pushFollow(FOLLOW_ruleLogicalThread_in_entryRuleLogicalThread8271);
+            pushFollow(FOLLOW_ruleLogicalThread_in_entryRuleLogicalThread8272);
             iv_ruleLogicalThread=ruleLogicalThread();
 
             state._fsp--;
 
              current =iv_ruleLogicalThread; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleLogicalThread8281); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleLogicalThread8282); 
 
             }
 
@@ -10429,7 +10440,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4231:1: (otherlv_0= 'LogicalThread' ( (lv_name_1_0= RULE_ID ) ) )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4231:3: otherlv_0= 'LogicalThread' ( (lv_name_1_0= RULE_ID ) )
             {
-            otherlv_0=(Token)match(input,67,FOLLOW_67_in_ruleLogicalThread8318); 
+            otherlv_0=(Token)match(input,67,FOLLOW_67_in_ruleLogicalThread8319); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getLogicalThreadAccess().getLogicalThreadKeyword_0());
                 
@@ -10439,7 +10450,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4236:1: (lv_name_1_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4237:3: lv_name_1_0= RULE_ID
             {
-            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleLogicalThread8335); 
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleLogicalThread8336); 
 
             			newLeafNode(lv_name_1_0, grammarAccess.getLogicalThreadAccess().getNameIDTerminalRuleCall_1_0()); 
             		
@@ -10492,13 +10503,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4263:2: iv_ruleActorInstanceMapping= ruleActorInstanceMapping EOF
             {
              newCompositeNode(grammarAccess.getActorInstanceMappingRule()); 
-            pushFollow(FOLLOW_ruleActorInstanceMapping_in_entryRuleActorInstanceMapping8376);
+            pushFollow(FOLLOW_ruleActorInstanceMapping_in_entryRuleActorInstanceMapping8377);
             iv_ruleActorInstanceMapping=ruleActorInstanceMapping();
 
             state._fsp--;
 
              current =iv_ruleActorInstanceMapping; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleActorInstanceMapping8386); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActorInstanceMapping8387); 
 
             }
 
@@ -10539,7 +10550,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4274:1: (otherlv_0= 'ActorInstanceMapping' ( (lv_path_1_0= ruleRefPath ) ) otherlv_2= '->' ( (otherlv_3= RULE_ID ) ) (otherlv_4= '{' ( (lv_actorInstanceMappings_5_0= ruleActorInstanceMapping ) )* otherlv_6= '}' )? )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4274:3: otherlv_0= 'ActorInstanceMapping' ( (lv_path_1_0= ruleRefPath ) ) otherlv_2= '->' ( (otherlv_3= RULE_ID ) ) (otherlv_4= '{' ( (lv_actorInstanceMappings_5_0= ruleActorInstanceMapping ) )* otherlv_6= '}' )?
             {
-            otherlv_0=(Token)match(input,68,FOLLOW_68_in_ruleActorInstanceMapping8423); 
+            otherlv_0=(Token)match(input,68,FOLLOW_68_in_ruleActorInstanceMapping8424); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getActorInstanceMappingAccess().getActorInstanceMappingKeyword_0());
                 
@@ -10552,7 +10563,7 @@
              
             	        newCompositeNode(grammarAccess.getActorInstanceMappingAccess().getPathRefPathParserRuleCall_1_0()); 
             	    
-            pushFollow(FOLLOW_ruleRefPath_in_ruleActorInstanceMapping8444);
+            pushFollow(FOLLOW_ruleRefPath_in_ruleActorInstanceMapping8445);
             lv_path_1_0=ruleRefPath();
 
             state._fsp--;
@@ -10574,7 +10585,7 @@
 
             }
 
-            otherlv_2=(Token)match(input,19,FOLLOW_19_in_ruleActorInstanceMapping8456); 
+            otherlv_2=(Token)match(input,19,FOLLOW_19_in_ruleActorInstanceMapping8457); 
 
                 	newLeafNode(otherlv_2, grammarAccess.getActorInstanceMappingAccess().getHyphenMinusGreaterThanSignKeyword_2());
                 
@@ -10589,7 +10600,7 @@
             	            current = createModelElement(grammarAccess.getActorInstanceMappingRule());
             	        }
                     
-            otherlv_3=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleActorInstanceMapping8476); 
+            otherlv_3=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleActorInstanceMapping8477); 
 
             		newLeafNode(otherlv_3, grammarAccess.getActorInstanceMappingAccess().getThreadLogicalThreadCrossReference_3_0()); 
             	
@@ -10600,32 +10611,32 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4313:2: (otherlv_4= '{' ( (lv_actorInstanceMappings_5_0= ruleActorInstanceMapping ) )* otherlv_6= '}' )?
-            int alt96=2;
-            int LA96_0 = input.LA(1);
+            int alt97=2;
+            int LA97_0 = input.LA(1);
 
-            if ( (LA96_0==14) ) {
-                alt96=1;
+            if ( (LA97_0==14) ) {
+                alt97=1;
             }
-            switch (alt96) {
+            switch (alt97) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4313:4: otherlv_4= '{' ( (lv_actorInstanceMappings_5_0= ruleActorInstanceMapping ) )* otherlv_6= '}'
                     {
-                    otherlv_4=(Token)match(input,14,FOLLOW_14_in_ruleActorInstanceMapping8489); 
+                    otherlv_4=(Token)match(input,14,FOLLOW_14_in_ruleActorInstanceMapping8490); 
 
                         	newLeafNode(otherlv_4, grammarAccess.getActorInstanceMappingAccess().getLeftCurlyBracketKeyword_4_0());
                         
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4317:1: ( (lv_actorInstanceMappings_5_0= ruleActorInstanceMapping ) )*
-                    loop95:
+                    loop96:
                     do {
-                        int alt95=2;
-                        int LA95_0 = input.LA(1);
+                        int alt96=2;
+                        int LA96_0 = input.LA(1);
 
-                        if ( (LA95_0==68) ) {
-                            alt95=1;
+                        if ( (LA96_0==68) ) {
+                            alt96=1;
                         }
 
 
-                        switch (alt95) {
+                        switch (alt96) {
                     	case 1 :
                     	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4318:1: (lv_actorInstanceMappings_5_0= ruleActorInstanceMapping )
                     	    {
@@ -10635,7 +10646,7 @@
                     	     
                     	    	        newCompositeNode(grammarAccess.getActorInstanceMappingAccess().getActorInstanceMappingsActorInstanceMappingParserRuleCall_4_1_0()); 
                     	    	    
-                    	    pushFollow(FOLLOW_ruleActorInstanceMapping_in_ruleActorInstanceMapping8510);
+                    	    pushFollow(FOLLOW_ruleActorInstanceMapping_in_ruleActorInstanceMapping8511);
                     	    lv_actorInstanceMappings_5_0=ruleActorInstanceMapping();
 
                     	    state._fsp--;
@@ -10659,11 +10670,11 @@
                     	    break;
 
                     	default :
-                    	    break loop95;
+                    	    break loop96;
                         }
                     } while (true);
 
-                    otherlv_6=(Token)match(input,15,FOLLOW_15_in_ruleActorInstanceMapping8523); 
+                    otherlv_6=(Token)match(input,15,FOLLOW_15_in_ruleActorInstanceMapping8524); 
 
                         	newLeafNode(otherlv_6, grammarAccess.getActorInstanceMappingAccess().getRightCurlyBracketKeyword_4_2());
                         
@@ -10706,13 +10717,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4349:2: iv_ruleRefPath= ruleRefPath EOF
             {
              newCompositeNode(grammarAccess.getRefPathRule()); 
-            pushFollow(FOLLOW_ruleRefPath_in_entryRuleRefPath8561);
+            pushFollow(FOLLOW_ruleRefPath_in_entryRuleRefPath8562);
             iv_ruleRefPath=ruleRefPath();
 
             state._fsp--;
 
              current =iv_ruleRefPath; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleRefPath8571); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleRefPath8572); 
 
             }
 
@@ -10758,7 +10769,7 @@
              
             	        newCompositeNode(grammarAccess.getRefPathAccess().getRefsRefSegmentParserRuleCall_0_0()); 
             	    
-            pushFollow(FOLLOW_ruleRefSegment_in_ruleRefPath8617);
+            pushFollow(FOLLOW_ruleRefSegment_in_ruleRefPath8618);
             lv_refs_0_0=ruleRefSegment();
 
             state._fsp--;
@@ -10781,21 +10792,21 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4378:2: (otherlv_1= '/' ( (lv_refs_2_0= ruleRefSegment ) ) )*
-            loop97:
+            loop98:
             do {
-                int alt97=2;
-                int LA97_0 = input.LA(1);
+                int alt98=2;
+                int LA98_0 = input.LA(1);
 
-                if ( (LA97_0==69) ) {
-                    alt97=1;
+                if ( (LA98_0==69) ) {
+                    alt98=1;
                 }
 
 
-                switch (alt97) {
+                switch (alt98) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4378:4: otherlv_1= '/' ( (lv_refs_2_0= ruleRefSegment ) )
             	    {
-            	    otherlv_1=(Token)match(input,69,FOLLOW_69_in_ruleRefPath8630); 
+            	    otherlv_1=(Token)match(input,69,FOLLOW_69_in_ruleRefPath8631); 
 
             	        	newLeafNode(otherlv_1, grammarAccess.getRefPathAccess().getSolidusKeyword_1_0());
             	        
@@ -10808,7 +10819,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getRefPathAccess().getRefsRefSegmentParserRuleCall_1_1_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleRefSegment_in_ruleRefPath8651);
+            	    pushFollow(FOLLOW_ruleRefSegment_in_ruleRefPath8652);
             	    lv_refs_2_0=ruleRefSegment();
 
             	    state._fsp--;
@@ -10835,7 +10846,7 @@
             	    break;
 
             	default :
-            	    break loop97;
+            	    break loop98;
                 }
             } while (true);
 
@@ -10872,13 +10883,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4410:2: iv_ruleRefSegment= ruleRefSegment EOF
             {
              newCompositeNode(grammarAccess.getRefSegmentRule()); 
-            pushFollow(FOLLOW_ruleRefSegment_in_entryRuleRefSegment8689);
+            pushFollow(FOLLOW_ruleRefSegment_in_entryRuleRefSegment8690);
             iv_ruleRefSegment=ruleRefSegment();
 
             state._fsp--;
 
              current =iv_ruleRefSegment; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleRefSegment8699); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleRefSegment8700); 
 
             }
 
@@ -10919,7 +10930,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4422:1: (lv_ref_0_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4423:3: lv_ref_0_0= RULE_ID
             {
-            lv_ref_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleRefSegment8741); 
+            lv_ref_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleRefSegment8742); 
 
             			newLeafNode(lv_ref_0_0, grammarAccess.getRefSegmentAccess().getRefIDTerminalRuleCall_0_0()); 
             		
@@ -10940,17 +10951,17 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4439:2: (otherlv_1= ':' ( (lv_idx_2_0= RULE_INT ) ) )?
-            int alt98=2;
-            int LA98_0 = input.LA(1);
+            int alt99=2;
+            int LA99_0 = input.LA(1);
 
-            if ( (LA98_0==16) ) {
-                alt98=1;
+            if ( (LA99_0==16) ) {
+                alt99=1;
             }
-            switch (alt98) {
+            switch (alt99) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4439:4: otherlv_1= ':' ( (lv_idx_2_0= RULE_INT ) )
                     {
-                    otherlv_1=(Token)match(input,16,FOLLOW_16_in_ruleRefSegment8759); 
+                    otherlv_1=(Token)match(input,16,FOLLOW_16_in_ruleRefSegment8760); 
 
                         	newLeafNode(otherlv_1, grammarAccess.getRefSegmentAccess().getColonKeyword_1_0());
                         
@@ -10960,7 +10971,7 @@
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4444:1: (lv_idx_2_0= RULE_INT )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4445:3: lv_idx_2_0= RULE_INT
                     {
-                    lv_idx_2_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleRefSegment8776); 
+                    lv_idx_2_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleRefSegment8777); 
 
                     			newLeafNode(lv_idx_2_0, grammarAccess.getRefSegmentAccess().getIdxINTTerminalRuleCall_1_1_0()); 
                     		
@@ -11019,13 +11030,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4471:2: iv_ruleBinding= ruleBinding EOF
             {
              newCompositeNode(grammarAccess.getBindingRule()); 
-            pushFollow(FOLLOW_ruleBinding_in_entryRuleBinding8819);
+            pushFollow(FOLLOW_ruleBinding_in_entryRuleBinding8820);
             iv_ruleBinding=ruleBinding();
 
             state._fsp--;
 
              current =iv_ruleBinding; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleBinding8829); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleBinding8830); 
 
             }
 
@@ -11063,7 +11074,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4482:1: (otherlv_0= 'Binding' ( (lv_endpoint1_1_0= ruleBindingEndPoint ) ) otherlv_2= 'and' ( (lv_endpoint2_3_0= ruleBindingEndPoint ) ) )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4482:3: otherlv_0= 'Binding' ( (lv_endpoint1_1_0= ruleBindingEndPoint ) ) otherlv_2= 'and' ( (lv_endpoint2_3_0= ruleBindingEndPoint ) )
             {
-            otherlv_0=(Token)match(input,70,FOLLOW_70_in_ruleBinding8866); 
+            otherlv_0=(Token)match(input,70,FOLLOW_70_in_ruleBinding8867); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getBindingAccess().getBindingKeyword_0());
                 
@@ -11076,7 +11087,7 @@
              
             	        newCompositeNode(grammarAccess.getBindingAccess().getEndpoint1BindingEndPointParserRuleCall_1_0()); 
             	    
-            pushFollow(FOLLOW_ruleBindingEndPoint_in_ruleBinding8887);
+            pushFollow(FOLLOW_ruleBindingEndPoint_in_ruleBinding8888);
             lv_endpoint1_1_0=ruleBindingEndPoint();
 
             state._fsp--;
@@ -11098,7 +11109,7 @@
 
             }
 
-            otherlv_2=(Token)match(input,71,FOLLOW_71_in_ruleBinding8899); 
+            otherlv_2=(Token)match(input,71,FOLLOW_71_in_ruleBinding8900); 
 
                 	newLeafNode(otherlv_2, grammarAccess.getBindingAccess().getAndKeyword_2());
                 
@@ -11111,7 +11122,7 @@
              
             	        newCompositeNode(grammarAccess.getBindingAccess().getEndpoint2BindingEndPointParserRuleCall_3_0()); 
             	    
-            pushFollow(FOLLOW_ruleBindingEndPoint_in_ruleBinding8920);
+            pushFollow(FOLLOW_ruleBindingEndPoint_in_ruleBinding8921);
             lv_endpoint2_3_0=ruleBindingEndPoint();
 
             state._fsp--;
@@ -11166,13 +11177,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4536:2: iv_ruleBindingEndPoint= ruleBindingEndPoint EOF
             {
              newCompositeNode(grammarAccess.getBindingEndPointRule()); 
-            pushFollow(FOLLOW_ruleBindingEndPoint_in_entryRuleBindingEndPoint8956);
+            pushFollow(FOLLOW_ruleBindingEndPoint_in_entryRuleBindingEndPoint8957);
             iv_ruleBindingEndPoint=ruleBindingEndPoint();
 
             state._fsp--;
 
              current =iv_ruleBindingEndPoint; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleBindingEndPoint8966); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleBindingEndPoint8967); 
 
             }
 
@@ -11210,17 +11221,17 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4547:2: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '.' )? ( (otherlv_2= RULE_ID ) ) (otherlv_3= 'sub' ( (otherlv_4= RULE_ID ) ) )?
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4547:2: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '.' )?
-            int alt99=2;
-            int LA99_0 = input.LA(1);
+            int alt100=2;
+            int LA100_0 = input.LA(1);
 
-            if ( (LA99_0==RULE_ID) ) {
-                int LA99_1 = input.LA(2);
+            if ( (LA100_0==RULE_ID) ) {
+                int LA100_1 = input.LA(2);
 
-                if ( (LA99_1==72) ) {
-                    alt99=1;
+                if ( (LA100_1==72) ) {
+                    alt100=1;
                 }
             }
-            switch (alt99) {
+            switch (alt100) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4547:3: ( (otherlv_0= RULE_ID ) ) otherlv_1= '.'
                     {
@@ -11235,7 +11246,7 @@
                     	            current = createModelElement(grammarAccess.getBindingEndPointRule());
                     	        }
                             
-                    otherlv_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleBindingEndPoint9012); 
+                    otherlv_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleBindingEndPoint9013); 
 
                     		newLeafNode(otherlv_0, grammarAccess.getBindingEndPointAccess().getActorRefActorContainerRefCrossReference_0_0_0()); 
                     	
@@ -11245,7 +11256,7 @@
 
                     }
 
-                    otherlv_1=(Token)match(input,72,FOLLOW_72_in_ruleBindingEndPoint9024); 
+                    otherlv_1=(Token)match(input,72,FOLLOW_72_in_ruleBindingEndPoint9025); 
 
                         	newLeafNode(otherlv_1, grammarAccess.getBindingEndPointAccess().getFullStopKeyword_0_1());
                         
@@ -11266,7 +11277,7 @@
             	            current = createModelElement(grammarAccess.getBindingEndPointRule());
             	        }
                     
-            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleBindingEndPoint9046); 
+            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleBindingEndPoint9047); 
 
             		newLeafNode(otherlv_2, grammarAccess.getBindingEndPointAccess().getPortPortCrossReference_1_0()); 
             	
@@ -11277,17 +11288,17 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4577:2: (otherlv_3= 'sub' ( (otherlv_4= RULE_ID ) ) )?
-            int alt100=2;
-            int LA100_0 = input.LA(1);
+            int alt101=2;
+            int LA101_0 = input.LA(1);
 
-            if ( (LA100_0==73) ) {
-                alt100=1;
+            if ( (LA101_0==73) ) {
+                alt101=1;
             }
-            switch (alt100) {
+            switch (alt101) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4577:4: otherlv_3= 'sub' ( (otherlv_4= RULE_ID ) )
                     {
-                    otherlv_3=(Token)match(input,73,FOLLOW_73_in_ruleBindingEndPoint9059); 
+                    otherlv_3=(Token)match(input,73,FOLLOW_73_in_ruleBindingEndPoint9060); 
 
                         	newLeafNode(otherlv_3, grammarAccess.getBindingEndPointAccess().getSubKeyword_2_0());
                         
@@ -11302,7 +11313,7 @@
                     	            current = createModelElement(grammarAccess.getBindingEndPointRule());
                     	        }
                             
-                    otherlv_4=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleBindingEndPoint9079); 
+                    otherlv_4=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleBindingEndPoint9080); 
 
                     		newLeafNode(otherlv_4, grammarAccess.getBindingEndPointAccess().getSubSubProtocolCrossReference_2_1_0()); 
                     	
@@ -11351,13 +11362,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4604:2: iv_ruleLayerConnection= ruleLayerConnection EOF
             {
              newCompositeNode(grammarAccess.getLayerConnectionRule()); 
-            pushFollow(FOLLOW_ruleLayerConnection_in_entryRuleLayerConnection9117);
+            pushFollow(FOLLOW_ruleLayerConnection_in_entryRuleLayerConnection9118);
             iv_ruleLayerConnection=ruleLayerConnection();
 
             state._fsp--;
 
              current =iv_ruleLayerConnection; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleLayerConnection9127); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleLayerConnection9128); 
 
             }
 
@@ -11395,7 +11406,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4615:1: (otherlv_0= 'LayerConnection' ( (lv_from_1_0= ruleSAPoint ) ) otherlv_2= 'satisfied_by' ( (lv_to_3_0= ruleSPPoint ) ) )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4615:3: otherlv_0= 'LayerConnection' ( (lv_from_1_0= ruleSAPoint ) ) otherlv_2= 'satisfied_by' ( (lv_to_3_0= ruleSPPoint ) )
             {
-            otherlv_0=(Token)match(input,74,FOLLOW_74_in_ruleLayerConnection9164); 
+            otherlv_0=(Token)match(input,74,FOLLOW_74_in_ruleLayerConnection9165); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getLayerConnectionAccess().getLayerConnectionKeyword_0());
                 
@@ -11408,7 +11419,7 @@
              
             	        newCompositeNode(grammarAccess.getLayerConnectionAccess().getFromSAPointParserRuleCall_1_0()); 
             	    
-            pushFollow(FOLLOW_ruleSAPoint_in_ruleLayerConnection9185);
+            pushFollow(FOLLOW_ruleSAPoint_in_ruleLayerConnection9186);
             lv_from_1_0=ruleSAPoint();
 
             state._fsp--;
@@ -11430,7 +11441,7 @@
 
             }
 
-            otherlv_2=(Token)match(input,75,FOLLOW_75_in_ruleLayerConnection9197); 
+            otherlv_2=(Token)match(input,75,FOLLOW_75_in_ruleLayerConnection9198); 
 
                 	newLeafNode(otherlv_2, grammarAccess.getLayerConnectionAccess().getSatisfied_byKeyword_2());
                 
@@ -11443,7 +11454,7 @@
              
             	        newCompositeNode(grammarAccess.getLayerConnectionAccess().getToSPPointParserRuleCall_3_0()); 
             	    
-            pushFollow(FOLLOW_ruleSPPoint_in_ruleLayerConnection9218);
+            pushFollow(FOLLOW_ruleSPPoint_in_ruleLayerConnection9219);
             lv_to_3_0=ruleSPPoint();
 
             state._fsp--;
@@ -11498,13 +11509,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4669:2: iv_ruleSAPoint= ruleSAPoint EOF
             {
              newCompositeNode(grammarAccess.getSAPointRule()); 
-            pushFollow(FOLLOW_ruleSAPoint_in_entryRuleSAPoint9254);
+            pushFollow(FOLLOW_ruleSAPoint_in_entryRuleSAPoint9255);
             iv_ruleSAPoint=ruleSAPoint();
 
             state._fsp--;
 
              current =iv_ruleSAPoint; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleSAPoint9264); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleSAPoint9265); 
 
             }
 
@@ -11538,29 +11549,29 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4680:1: (this_RefSAPoint_0= ruleRefSAPoint | this_RelaySAPoint_1= ruleRelaySAPoint )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4680:1: (this_RefSAPoint_0= ruleRefSAPoint | this_RelaySAPoint_1= ruleRelaySAPoint )
-            int alt101=2;
-            int LA101_0 = input.LA(1);
+            int alt102=2;
+            int LA102_0 = input.LA(1);
 
-            if ( (LA101_0==17) ) {
-                alt101=1;
+            if ( (LA102_0==17) ) {
+                alt102=1;
             }
-            else if ( (LA101_0==76) ) {
-                alt101=2;
+            else if ( (LA102_0==76) ) {
+                alt102=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 101, 0, input);
+                    new NoViableAltException("", 102, 0, input);
 
                 throw nvae;
             }
-            switch (alt101) {
+            switch (alt102) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4681:5: this_RefSAPoint_0= ruleRefSAPoint
                     {
                      
                             newCompositeNode(grammarAccess.getSAPointAccess().getRefSAPointParserRuleCall_0()); 
                         
-                    pushFollow(FOLLOW_ruleRefSAPoint_in_ruleSAPoint9311);
+                    pushFollow(FOLLOW_ruleRefSAPoint_in_ruleSAPoint9312);
                     this_RefSAPoint_0=ruleRefSAPoint();
 
                     state._fsp--;
@@ -11578,7 +11589,7 @@
                      
                             newCompositeNode(grammarAccess.getSAPointAccess().getRelaySAPointParserRuleCall_1()); 
                         
-                    pushFollow(FOLLOW_ruleRelaySAPoint_in_ruleSAPoint9338);
+                    pushFollow(FOLLOW_ruleRelaySAPoint_in_ruleSAPoint9339);
                     this_RelaySAPoint_1=ruleRelaySAPoint();
 
                     state._fsp--;
@@ -11623,13 +11634,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4709:2: iv_ruleRefSAPoint= ruleRefSAPoint EOF
             {
              newCompositeNode(grammarAccess.getRefSAPointRule()); 
-            pushFollow(FOLLOW_ruleRefSAPoint_in_entryRuleRefSAPoint9373);
+            pushFollow(FOLLOW_ruleRefSAPoint_in_entryRuleRefSAPoint9374);
             iv_ruleRefSAPoint=ruleRefSAPoint();
 
             state._fsp--;
 
              current =iv_ruleRefSAPoint; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleRefSAPoint9383); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleRefSAPoint9384); 
 
             }
 
@@ -11663,7 +11674,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4720:1: (otherlv_0= 'ref' ( (otherlv_1= RULE_ID ) ) )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4720:3: otherlv_0= 'ref' ( (otherlv_1= RULE_ID ) )
             {
-            otherlv_0=(Token)match(input,17,FOLLOW_17_in_ruleRefSAPoint9420); 
+            otherlv_0=(Token)match(input,17,FOLLOW_17_in_ruleRefSAPoint9421); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getRefSAPointAccess().getRefKeyword_0());
                 
@@ -11678,7 +11689,7 @@
             	            current = createModelElement(grammarAccess.getRefSAPointRule());
             	        }
                     
-            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleRefSAPoint9440); 
+            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleRefSAPoint9441); 
 
             		newLeafNode(otherlv_1, grammarAccess.getRefSAPointAccess().getRefActorContainerRefCrossReference_1_0()); 
             	
@@ -11721,13 +11732,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4747:2: iv_ruleRelaySAPoint= ruleRelaySAPoint EOF
             {
              newCompositeNode(grammarAccess.getRelaySAPointRule()); 
-            pushFollow(FOLLOW_ruleRelaySAPoint_in_entryRuleRelaySAPoint9476);
+            pushFollow(FOLLOW_ruleRelaySAPoint_in_entryRuleRelaySAPoint9477);
             iv_ruleRelaySAPoint=ruleRelaySAPoint();
 
             state._fsp--;
 
              current =iv_ruleRelaySAPoint; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleRelaySAPoint9486); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleRelaySAPoint9487); 
 
             }
 
@@ -11761,7 +11772,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4758:1: (otherlv_0= 'relay_sap' ( (otherlv_1= RULE_ID ) ) )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4758:3: otherlv_0= 'relay_sap' ( (otherlv_1= RULE_ID ) )
             {
-            otherlv_0=(Token)match(input,76,FOLLOW_76_in_ruleRelaySAPoint9523); 
+            otherlv_0=(Token)match(input,76,FOLLOW_76_in_ruleRelaySAPoint9524); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getRelaySAPointAccess().getRelay_sapKeyword_0());
                 
@@ -11776,7 +11787,7 @@
             	            current = createModelElement(grammarAccess.getRelaySAPointRule());
             	        }
                     
-            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleRelaySAPoint9543); 
+            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleRelaySAPoint9544); 
 
             		newLeafNode(otherlv_1, grammarAccess.getRelaySAPointAccess().getRelaySPPCrossReference_1_0()); 
             	
@@ -11819,13 +11830,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4785:2: iv_ruleSPPoint= ruleSPPoint EOF
             {
              newCompositeNode(grammarAccess.getSPPointRule()); 
-            pushFollow(FOLLOW_ruleSPPoint_in_entryRuleSPPoint9579);
+            pushFollow(FOLLOW_ruleSPPoint_in_entryRuleSPPoint9580);
             iv_ruleSPPoint=ruleSPPoint();
 
             state._fsp--;
 
              current =iv_ruleSPPoint; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleSPPoint9589); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleSPPoint9590); 
 
             }
 
@@ -11871,7 +11882,7 @@
             	            current = createModelElement(grammarAccess.getSPPointRule());
             	        }
                     
-            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSPPoint9634); 
+            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSPPoint9635); 
 
             		newLeafNode(otherlv_0, grammarAccess.getSPPointAccess().getRefActorContainerRefCrossReference_0_0()); 
             	
@@ -11881,7 +11892,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,72,FOLLOW_72_in_ruleSPPoint9646); 
+            otherlv_1=(Token)match(input,72,FOLLOW_72_in_ruleSPPoint9647); 
 
                 	newLeafNode(otherlv_1, grammarAccess.getSPPointAccess().getFullStopKeyword_1());
                 
@@ -11896,7 +11907,7 @@
             	            current = createModelElement(grammarAccess.getSPPointRule());
             	        }
                     
-            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSPPoint9666); 
+            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSPPoint9667); 
 
             		newLeafNode(otherlv_2, grammarAccess.getSPPointAccess().getServiceSPPCrossReference_2_0()); 
             	
@@ -11939,13 +11950,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4836:2: iv_ruleActorRef= ruleActorRef EOF
             {
              newCompositeNode(grammarAccess.getActorRefRule()); 
-            pushFollow(FOLLOW_ruleActorRef_in_entryRuleActorRef9702);
+            pushFollow(FOLLOW_ruleActorRef_in_entryRuleActorRef9703);
             iv_ruleActorRef=ruleActorRef();
 
             state._fsp--;
 
              current =iv_ruleActorRef; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleActorRef9712); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActorRef9713); 
 
             }
 
@@ -11987,13 +11998,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4847:2: ( (lv_refType_0_0= ruleReferenceType ) )? otherlv_1= 'ActorRef' ( (lv_name_2_0= RULE_ID ) ) ( (lv_multiplicity_3_0= ruleMULTIPLICITY ) )? otherlv_4= ':' ( ( ruleFQN ) ) ( (lv_docu_6_0= ruleDocumentation ) )?
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4847:2: ( (lv_refType_0_0= ruleReferenceType ) )?
-            int alt102=2;
-            int LA102_0 = input.LA(1);
+            int alt103=2;
+            int LA103_0 = input.LA(1);
 
-            if ( (LA102_0==111||LA102_0==125) ) {
-                alt102=1;
+            if ( (LA103_0==111||LA103_0==125) ) {
+                alt103=1;
             }
-            switch (alt102) {
+            switch (alt103) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4848:1: (lv_refType_0_0= ruleReferenceType )
                     {
@@ -12003,7 +12014,7 @@
                      
                     	        newCompositeNode(grammarAccess.getActorRefAccess().getRefTypeReferenceTypeEnumRuleCall_0_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleReferenceType_in_ruleActorRef9758);
+                    pushFollow(FOLLOW_ruleReferenceType_in_ruleActorRef9759);
                     lv_refType_0_0=ruleReferenceType();
 
                     state._fsp--;
@@ -12028,7 +12039,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,77,FOLLOW_77_in_ruleActorRef9771); 
+            otherlv_1=(Token)match(input,77,FOLLOW_77_in_ruleActorRef9772); 
 
                 	newLeafNode(otherlv_1, grammarAccess.getActorRefAccess().getActorRefKeyword_1());
                 
@@ -12038,7 +12049,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4870:1: (lv_name_2_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4871:3: lv_name_2_0= RULE_ID
             {
-            lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleActorRef9788); 
+            lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleActorRef9789); 
 
             			newLeafNode(lv_name_2_0, grammarAccess.getActorRefAccess().getNameIDTerminalRuleCall_2_0()); 
             		
@@ -12059,13 +12070,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4887:2: ( (lv_multiplicity_3_0= ruleMULTIPLICITY ) )?
-            int alt103=2;
-            int LA103_0 = input.LA(1);
+            int alt104=2;
+            int LA104_0 = input.LA(1);
 
-            if ( (LA103_0==34) ) {
-                alt103=1;
+            if ( (LA104_0==34) ) {
+                alt104=1;
             }
-            switch (alt103) {
+            switch (alt104) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4888:1: (lv_multiplicity_3_0= ruleMULTIPLICITY )
                     {
@@ -12075,7 +12086,7 @@
                      
                     	        newCompositeNode(grammarAccess.getActorRefAccess().getMultiplicityMULTIPLICITYParserRuleCall_3_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleMULTIPLICITY_in_ruleActorRef9814);
+                    pushFollow(FOLLOW_ruleMULTIPLICITY_in_ruleActorRef9815);
                     lv_multiplicity_3_0=ruleMULTIPLICITY();
 
                     state._fsp--;
@@ -12100,7 +12111,7 @@
 
             }
 
-            otherlv_4=(Token)match(input,16,FOLLOW_16_in_ruleActorRef9827); 
+            otherlv_4=(Token)match(input,16,FOLLOW_16_in_ruleActorRef9828); 
 
                 	newLeafNode(otherlv_4, grammarAccess.getActorRefAccess().getColonKeyword_4());
                 
@@ -12118,7 +12129,7 @@
              
             	        newCompositeNode(grammarAccess.getActorRefAccess().getTypeActorClassCrossReference_5_0()); 
             	    
-            pushFollow(FOLLOW_ruleFQN_in_ruleActorRef9850);
+            pushFollow(FOLLOW_ruleFQN_in_ruleActorRef9851);
             ruleFQN();
 
             state._fsp--;
@@ -12133,13 +12144,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4924:2: ( (lv_docu_6_0= ruleDocumentation ) )?
-            int alt104=2;
-            int LA104_0 = input.LA(1);
+            int alt105=2;
+            int LA105_0 = input.LA(1);
 
-            if ( (LA104_0==34) ) {
-                alt104=1;
+            if ( (LA105_0==34) ) {
+                alt105=1;
             }
-            switch (alt104) {
+            switch (alt105) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4925:1: (lv_docu_6_0= ruleDocumentation )
                     {
@@ -12149,7 +12160,7 @@
                      
                     	        newCompositeNode(grammarAccess.getActorRefAccess().getDocuDocumentationParserRuleCall_6_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDocumentation_in_ruleActorRef9871);
+                    pushFollow(FOLLOW_ruleDocumentation_in_ruleActorRef9872);
                     lv_docu_6_0=ruleDocumentation();
 
                     state._fsp--;
@@ -12207,13 +12218,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4954:2: iv_ruleMULTIPLICITY= ruleMULTIPLICITY EOF
             {
              newCompositeNode(grammarAccess.getMULTIPLICITYRule()); 
-            pushFollow(FOLLOW_ruleMULTIPLICITY_in_entryRuleMULTIPLICITY9911);
+            pushFollow(FOLLOW_ruleMULTIPLICITY_in_entryRuleMULTIPLICITY9912);
             iv_ruleMULTIPLICITY=ruleMULTIPLICITY();
 
             state._fsp--;
 
              current =iv_ruleMULTIPLICITY.getText(); 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleMULTIPLICITY9922); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleMULTIPLICITY9923); 
 
             }
 
@@ -12247,32 +12258,32 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4965:1: (kw= '[' (kw= '*' | this_INT_2= RULE_INT ) kw= ']' )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4966:2: kw= '[' (kw= '*' | this_INT_2= RULE_INT ) kw= ']'
             {
-            kw=(Token)match(input,34,FOLLOW_34_in_ruleMULTIPLICITY9960); 
+            kw=(Token)match(input,34,FOLLOW_34_in_ruleMULTIPLICITY9961); 
 
                     current.merge(kw);
                     newLeafNode(kw, grammarAccess.getMULTIPLICITYAccess().getLeftSquareBracketKeyword_0()); 
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4971:1: (kw= '*' | this_INT_2= RULE_INT )
-            int alt105=2;
-            int LA105_0 = input.LA(1);
+            int alt106=2;
+            int LA106_0 = input.LA(1);
 
-            if ( (LA105_0==78) ) {
-                alt105=1;
+            if ( (LA106_0==78) ) {
+                alt106=1;
             }
-            else if ( (LA105_0==RULE_INT) ) {
-                alt105=2;
+            else if ( (LA106_0==RULE_INT) ) {
+                alt106=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 105, 0, input);
+                    new NoViableAltException("", 106, 0, input);
 
                 throw nvae;
             }
-            switch (alt105) {
+            switch (alt106) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4972:2: kw= '*'
                     {
-                    kw=(Token)match(input,78,FOLLOW_78_in_ruleMULTIPLICITY9974); 
+                    kw=(Token)match(input,78,FOLLOW_78_in_ruleMULTIPLICITY9975); 
 
                             current.merge(kw);
                             newLeafNode(kw, grammarAccess.getMULTIPLICITYAccess().getAsteriskKeyword_1_0()); 
@@ -12283,7 +12294,7 @@
                 case 2 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:4978:10: this_INT_2= RULE_INT
                     {
-                    this_INT_2=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMULTIPLICITY9995); 
+                    this_INT_2=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMULTIPLICITY9996); 
 
                     		current.merge(this_INT_2);
                         
@@ -12296,7 +12307,7 @@
 
             }
 
-            kw=(Token)match(input,35,FOLLOW_35_in_ruleMULTIPLICITY10014); 
+            kw=(Token)match(input,35,FOLLOW_35_in_ruleMULTIPLICITY10015); 
 
                     current.merge(kw);
                     newLeafNode(kw, grammarAccess.getMULTIPLICITYAccess().getRightSquareBracketKeyword_2()); 
@@ -12334,13 +12345,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5001:2: iv_ruleAnnotationTargetType= ruleAnnotationTargetType EOF
             {
              newCompositeNode(grammarAccess.getAnnotationTargetTypeRule()); 
-            pushFollow(FOLLOW_ruleAnnotationTargetType_in_entryRuleAnnotationTargetType10055);
+            pushFollow(FOLLOW_ruleAnnotationTargetType_in_entryRuleAnnotationTargetType10056);
             iv_ruleAnnotationTargetType=ruleAnnotationTargetType();
 
             state._fsp--;
 
              current =iv_ruleAnnotationTargetType.getText(); 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleAnnotationTargetType10066); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleAnnotationTargetType10067); 
 
             }
 
@@ -12371,55 +12382,55 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5012:1: (kw= 'DataClass' | kw= 'ActorClass' | kw= 'ActorBehavior' | kw= 'ProtocolClass' | kw= 'CompoundProtocolClass' | kw= 'SubSystemClass' | kw= 'LogicalSystem' )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5012:1: (kw= 'DataClass' | kw= 'ActorClass' | kw= 'ActorBehavior' | kw= 'ProtocolClass' | kw= 'CompoundProtocolClass' | kw= 'SubSystemClass' | kw= 'LogicalSystem' )
-            int alt106=7;
+            int alt107=7;
             switch ( input.LA(1) ) {
             case 28:
                 {
-                alt106=1;
+                alt107=1;
                 }
                 break;
             case 55:
                 {
-                alt106=2;
+                alt107=2;
                 }
                 break;
             case 79:
                 {
-                alt106=3;
+                alt107=3;
                 }
                 break;
             case 42:
                 {
-                alt106=4;
+                alt107=4;
                 }
                 break;
             case 48:
                 {
-                alt106=5;
+                alt107=5;
                 }
                 break;
             case 66:
                 {
-                alt106=6;
+                alt107=6;
                 }
                 break;
             case 64:
                 {
-                alt106=7;
+                alt107=7;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 106, 0, input);
+                    new NoViableAltException("", 107, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt106) {
+            switch (alt107) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5013:2: kw= 'DataClass'
                     {
-                    kw=(Token)match(input,28,FOLLOW_28_in_ruleAnnotationTargetType10104); 
+                    kw=(Token)match(input,28,FOLLOW_28_in_ruleAnnotationTargetType10105); 
 
                             current.merge(kw);
                             newLeafNode(kw, grammarAccess.getAnnotationTargetTypeAccess().getDataClassKeyword_0()); 
@@ -12430,7 +12441,7 @@
                 case 2 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5020:2: kw= 'ActorClass'
                     {
-                    kw=(Token)match(input,55,FOLLOW_55_in_ruleAnnotationTargetType10123); 
+                    kw=(Token)match(input,55,FOLLOW_55_in_ruleAnnotationTargetType10124); 
 
                             current.merge(kw);
                             newLeafNode(kw, grammarAccess.getAnnotationTargetTypeAccess().getActorClassKeyword_1()); 
@@ -12441,7 +12452,7 @@
                 case 3 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5027:2: kw= 'ActorBehavior'
                     {
-                    kw=(Token)match(input,79,FOLLOW_79_in_ruleAnnotationTargetType10142); 
+                    kw=(Token)match(input,79,FOLLOW_79_in_ruleAnnotationTargetType10143); 
 
                             current.merge(kw);
                             newLeafNode(kw, grammarAccess.getAnnotationTargetTypeAccess().getActorBehaviorKeyword_2()); 
@@ -12452,7 +12463,7 @@
                 case 4 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5034:2: kw= 'ProtocolClass'
                     {
-                    kw=(Token)match(input,42,FOLLOW_42_in_ruleAnnotationTargetType10161); 
+                    kw=(Token)match(input,42,FOLLOW_42_in_ruleAnnotationTargetType10162); 
 
                             current.merge(kw);
                             newLeafNode(kw, grammarAccess.getAnnotationTargetTypeAccess().getProtocolClassKeyword_3()); 
@@ -12463,7 +12474,7 @@
                 case 5 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5041:2: kw= 'CompoundProtocolClass'
                     {
-                    kw=(Token)match(input,48,FOLLOW_48_in_ruleAnnotationTargetType10180); 
+                    kw=(Token)match(input,48,FOLLOW_48_in_ruleAnnotationTargetType10181); 
 
                             current.merge(kw);
                             newLeafNode(kw, grammarAccess.getAnnotationTargetTypeAccess().getCompoundProtocolClassKeyword_4()); 
@@ -12474,7 +12485,7 @@
                 case 6 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5048:2: kw= 'SubSystemClass'
                     {
-                    kw=(Token)match(input,66,FOLLOW_66_in_ruleAnnotationTargetType10199); 
+                    kw=(Token)match(input,66,FOLLOW_66_in_ruleAnnotationTargetType10200); 
 
                             current.merge(kw);
                             newLeafNode(kw, grammarAccess.getAnnotationTargetTypeAccess().getSubSystemClassKeyword_5()); 
@@ -12485,7 +12496,7 @@
                 case 7 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5055:2: kw= 'LogicalSystem'
                     {
-                    kw=(Token)match(input,64,FOLLOW_64_in_ruleAnnotationTargetType10218); 
+                    kw=(Token)match(input,64,FOLLOW_64_in_ruleAnnotationTargetType10219); 
 
                             current.merge(kw);
                             newLeafNode(kw, grammarAccess.getAnnotationTargetTypeAccess().getLogicalSystemKeyword_6()); 
@@ -12526,13 +12537,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5072:2: iv_ruleStateGraphNode= ruleStateGraphNode EOF
             {
              newCompositeNode(grammarAccess.getStateGraphNodeRule()); 
-            pushFollow(FOLLOW_ruleStateGraphNode_in_entryRuleStateGraphNode10260);
+            pushFollow(FOLLOW_ruleStateGraphNode_in_entryRuleStateGraphNode10261);
             iv_ruleStateGraphNode=ruleStateGraphNode();
 
             state._fsp--;
 
              current =iv_ruleStateGraphNode; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleStateGraphNode10270); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleStateGraphNode10271); 
 
             }
 
@@ -12568,17 +12579,17 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5083:1: (this_State_0= ruleState | this_ChoicePoint_1= ruleChoicePoint | this_TrPoint_2= ruleTrPoint )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5083:1: (this_State_0= ruleState | this_ChoicePoint_1= ruleChoicePoint | this_TrPoint_2= ruleTrPoint )
-            int alt107=3;
+            int alt108=3;
             switch ( input.LA(1) ) {
             case 81:
             case 86:
                 {
-                alt107=1;
+                alt108=1;
                 }
                 break;
             case 91:
                 {
-                alt107=2;
+                alt108=2;
                 }
                 break;
             case 87:
@@ -12586,24 +12597,24 @@
             case 89:
             case 90:
                 {
-                alt107=3;
+                alt108=3;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 107, 0, input);
+                    new NoViableAltException("", 108, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt107) {
+            switch (alt108) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5084:5: this_State_0= ruleState
                     {
                      
                             newCompositeNode(grammarAccess.getStateGraphNodeAccess().getStateParserRuleCall_0()); 
                         
-                    pushFollow(FOLLOW_ruleState_in_ruleStateGraphNode10317);
+                    pushFollow(FOLLOW_ruleState_in_ruleStateGraphNode10318);
                     this_State_0=ruleState();
 
                     state._fsp--;
@@ -12621,7 +12632,7 @@
                      
                             newCompositeNode(grammarAccess.getStateGraphNodeAccess().getChoicePointParserRuleCall_1()); 
                         
-                    pushFollow(FOLLOW_ruleChoicePoint_in_ruleStateGraphNode10344);
+                    pushFollow(FOLLOW_ruleChoicePoint_in_ruleStateGraphNode10345);
                     this_ChoicePoint_1=ruleChoicePoint();
 
                     state._fsp--;
@@ -12639,7 +12650,7 @@
                      
                             newCompositeNode(grammarAccess.getStateGraphNodeAccess().getTrPointParserRuleCall_2()); 
                         
-                    pushFollow(FOLLOW_ruleTrPoint_in_ruleStateGraphNode10371);
+                    pushFollow(FOLLOW_ruleTrPoint_in_ruleStateGraphNode10372);
                     this_TrPoint_2=ruleTrPoint();
 
                     state._fsp--;
@@ -12684,13 +12695,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5124:2: iv_ruleStateGraph= ruleStateGraph EOF
             {
              newCompositeNode(grammarAccess.getStateGraphRule()); 
-            pushFollow(FOLLOW_ruleStateGraph_in_entryRuleStateGraph10408);
+            pushFollow(FOLLOW_ruleStateGraph_in_entryRuleStateGraph10409);
             iv_ruleStateGraph=ruleStateGraph();
 
             state._fsp--;
 
              current =iv_ruleStateGraph; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleStateGraph10418); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleStateGraph10419); 
 
             }
 
@@ -12745,19 +12756,19 @@
 
             }
 
-            otherlv_1=(Token)match(input,14,FOLLOW_14_in_ruleStateGraph10464); 
+            otherlv_1=(Token)match(input,14,FOLLOW_14_in_ruleStateGraph10465); 
 
                 	newLeafNode(otherlv_1, grammarAccess.getStateGraphAccess().getLeftCurlyBracketKeyword_1());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5145:1: ( ( (lv_states_2_0= ruleState ) ) | ( (lv_trPoints_3_0= ruleTrPoint ) ) | ( (lv_chPoints_4_0= ruleChoicePoint ) ) | ( (lv_transitions_5_0= ruleTransition ) ) | ( (lv_refinedTransitions_6_0= ruleRefinedTransition ) ) )*
-            loop108:
+            loop109:
             do {
-                int alt108=6;
+                int alt109=6;
                 switch ( input.LA(1) ) {
                 case 81:
                 case 86:
                     {
-                    alt108=1;
+                    alt109=1;
                     }
                     break;
                 case 87:
@@ -12765,28 +12776,28 @@
                 case 89:
                 case 90:
                     {
-                    alt108=2;
+                    alt109=2;
                     }
                     break;
                 case 91:
                     {
-                    alt108=3;
+                    alt109=3;
                     }
                     break;
                 case 92:
                     {
-                    alt108=4;
+                    alt109=4;
                     }
                     break;
                 case 99:
                     {
-                    alt108=5;
+                    alt109=5;
                     }
                     break;
 
                 }
 
-                switch (alt108) {
+                switch (alt109) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5145:2: ( (lv_states_2_0= ruleState ) )
             	    {
@@ -12799,7 +12810,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getStateGraphAccess().getStatesStateParserRuleCall_2_0_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleState_in_ruleStateGraph10486);
+            	    pushFollow(FOLLOW_ruleState_in_ruleStateGraph10487);
             	    lv_states_2_0=ruleState();
 
             	    state._fsp--;
@@ -12836,7 +12847,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getStateGraphAccess().getTrPointsTrPointParserRuleCall_2_1_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleTrPoint_in_ruleStateGraph10513);
+            	    pushFollow(FOLLOW_ruleTrPoint_in_ruleStateGraph10514);
             	    lv_trPoints_3_0=ruleTrPoint();
 
             	    state._fsp--;
@@ -12873,7 +12884,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getStateGraphAccess().getChPointsChoicePointParserRuleCall_2_2_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleChoicePoint_in_ruleStateGraph10540);
+            	    pushFollow(FOLLOW_ruleChoicePoint_in_ruleStateGraph10541);
             	    lv_chPoints_4_0=ruleChoicePoint();
 
             	    state._fsp--;
@@ -12910,7 +12921,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getStateGraphAccess().getTransitionsTransitionParserRuleCall_2_3_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleTransition_in_ruleStateGraph10567);
+            	    pushFollow(FOLLOW_ruleTransition_in_ruleStateGraph10568);
             	    lv_transitions_5_0=ruleTransition();
 
             	    state._fsp--;
@@ -12947,7 +12958,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getStateGraphAccess().getRefinedTransitionsRefinedTransitionParserRuleCall_2_4_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleRefinedTransition_in_ruleStateGraph10594);
+            	    pushFollow(FOLLOW_ruleRefinedTransition_in_ruleStateGraph10595);
             	    lv_refinedTransitions_6_0=ruleRefinedTransition();
 
             	    state._fsp--;
@@ -12974,11 +12985,11 @@
             	    break;
 
             	default :
-            	    break loop108;
+            	    break loop109;
                 }
             } while (true);
 
-            otherlv_7=(Token)match(input,15,FOLLOW_15_in_ruleStateGraph10608); 
+            otherlv_7=(Token)match(input,15,FOLLOW_15_in_ruleStateGraph10609); 
 
                 	newLeafNode(otherlv_7, grammarAccess.getStateGraphAccess().getRightCurlyBracketKeyword_3());
                 
@@ -13015,13 +13026,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5253:2: iv_ruleStateMachine= ruleStateMachine EOF
             {
              newCompositeNode(grammarAccess.getStateMachineRule()); 
-            pushFollow(FOLLOW_ruleStateMachine_in_entryRuleStateMachine10644);
+            pushFollow(FOLLOW_ruleStateMachine_in_entryRuleStateMachine10645);
             iv_ruleStateMachine=ruleStateMachine();
 
             state._fsp--;
 
              current =iv_ruleStateMachine; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleStateMachine10654); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleStateMachine10655); 
 
             }
 
@@ -13077,23 +13088,23 @@
 
             }
 
-            otherlv_1=(Token)match(input,80,FOLLOW_80_in_ruleStateMachine10700); 
+            otherlv_1=(Token)match(input,80,FOLLOW_80_in_ruleStateMachine10701); 
 
                 	newLeafNode(otherlv_1, grammarAccess.getStateMachineAccess().getStateMachineKeyword_1());
                 
-            otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleStateMachine10712); 
+            otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleStateMachine10713); 
 
                 	newLeafNode(otherlv_2, grammarAccess.getStateMachineAccess().getLeftCurlyBracketKeyword_2());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5278:1: ( ( (lv_states_3_0= ruleState ) ) | ( (lv_trPoints_4_0= ruleTrPoint ) ) | ( (lv_chPoints_5_0= ruleChoicePoint ) ) | ( (lv_transitions_6_0= ruleTransition ) ) | ( (lv_refinedTransitions_7_0= ruleRefinedTransition ) ) )*
-            loop109:
+            loop110:
             do {
-                int alt109=6;
+                int alt110=6;
                 switch ( input.LA(1) ) {
                 case 81:
                 case 86:
                     {
-                    alt109=1;
+                    alt110=1;
                     }
                     break;
                 case 87:
@@ -13101,28 +13112,28 @@
                 case 89:
                 case 90:
                     {
-                    alt109=2;
+                    alt110=2;
                     }
                     break;
                 case 91:
                     {
-                    alt109=3;
+                    alt110=3;
                     }
                     break;
                 case 92:
                     {
-                    alt109=4;
+                    alt110=4;
                     }
                     break;
                 case 99:
                     {
-                    alt109=5;
+                    alt110=5;
                     }
                     break;
 
                 }
 
-                switch (alt109) {
+                switch (alt110) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5278:2: ( (lv_states_3_0= ruleState ) )
             	    {
@@ -13135,7 +13146,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getStateMachineAccess().getStatesStateParserRuleCall_3_0_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleState_in_ruleStateMachine10734);
+            	    pushFollow(FOLLOW_ruleState_in_ruleStateMachine10735);
             	    lv_states_3_0=ruleState();
 
             	    state._fsp--;
@@ -13172,7 +13183,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getStateMachineAccess().getTrPointsTrPointParserRuleCall_3_1_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleTrPoint_in_ruleStateMachine10761);
+            	    pushFollow(FOLLOW_ruleTrPoint_in_ruleStateMachine10762);
             	    lv_trPoints_4_0=ruleTrPoint();
 
             	    state._fsp--;
@@ -13209,7 +13220,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getStateMachineAccess().getChPointsChoicePointParserRuleCall_3_2_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleChoicePoint_in_ruleStateMachine10788);
+            	    pushFollow(FOLLOW_ruleChoicePoint_in_ruleStateMachine10789);
             	    lv_chPoints_5_0=ruleChoicePoint();
 
             	    state._fsp--;
@@ -13246,7 +13257,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getStateMachineAccess().getTransitionsTransitionParserRuleCall_3_3_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleTransition_in_ruleStateMachine10815);
+            	    pushFollow(FOLLOW_ruleTransition_in_ruleStateMachine10816);
             	    lv_transitions_6_0=ruleTransition();
 
             	    state._fsp--;
@@ -13283,7 +13294,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getStateMachineAccess().getRefinedTransitionsRefinedTransitionParserRuleCall_3_4_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleRefinedTransition_in_ruleStateMachine10842);
+            	    pushFollow(FOLLOW_ruleRefinedTransition_in_ruleStateMachine10843);
             	    lv_refinedTransitions_7_0=ruleRefinedTransition();
 
             	    state._fsp--;
@@ -13310,11 +13321,11 @@
             	    break;
 
             	default :
-            	    break loop109;
+            	    break loop110;
                 }
             } while (true);
 
-            otherlv_8=(Token)match(input,15,FOLLOW_15_in_ruleStateMachine10856); 
+            otherlv_8=(Token)match(input,15,FOLLOW_15_in_ruleStateMachine10857); 
 
                 	newLeafNode(otherlv_8, grammarAccess.getStateMachineAccess().getRightCurlyBracketKeyword_4());
                 
@@ -13351,13 +13362,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5386:2: iv_ruleState= ruleState EOF
             {
              newCompositeNode(grammarAccess.getStateRule()); 
-            pushFollow(FOLLOW_ruleState_in_entryRuleState10892);
+            pushFollow(FOLLOW_ruleState_in_entryRuleState10893);
             iv_ruleState=ruleState();
 
             state._fsp--;
 
              current =iv_ruleState; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleState10902); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleState10903); 
 
             }
 
@@ -13391,29 +13402,29 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5397:1: (this_SimpleState_0= ruleSimpleState | this_RefinedState_1= ruleRefinedState )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5397:1: (this_SimpleState_0= ruleSimpleState | this_RefinedState_1= ruleRefinedState )
-            int alt110=2;
-            int LA110_0 = input.LA(1);
+            int alt111=2;
+            int LA111_0 = input.LA(1);
 
-            if ( (LA110_0==81) ) {
-                alt110=1;
+            if ( (LA111_0==81) ) {
+                alt111=1;
             }
-            else if ( (LA110_0==86) ) {
-                alt110=2;
+            else if ( (LA111_0==86) ) {
+                alt111=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 110, 0, input);
+                    new NoViableAltException("", 111, 0, input);
 
                 throw nvae;
             }
-            switch (alt110) {
+            switch (alt111) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5398:5: this_SimpleState_0= ruleSimpleState
                     {
                      
                             newCompositeNode(grammarAccess.getStateAccess().getSimpleStateParserRuleCall_0()); 
                         
-                    pushFollow(FOLLOW_ruleSimpleState_in_ruleState10949);
+                    pushFollow(FOLLOW_ruleSimpleState_in_ruleState10950);
                     this_SimpleState_0=ruleSimpleState();
 
                     state._fsp--;
@@ -13431,7 +13442,7 @@
                      
                             newCompositeNode(grammarAccess.getStateAccess().getRefinedStateParserRuleCall_1()); 
                         
-                    pushFollow(FOLLOW_ruleRefinedState_in_ruleState10976);
+                    pushFollow(FOLLOW_ruleRefinedState_in_ruleState10977);
                     this_RefinedState_1=ruleRefinedState();
 
                     state._fsp--;
@@ -13476,13 +13487,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5426:2: iv_ruleSimpleState= ruleSimpleState EOF
             {
              newCompositeNode(grammarAccess.getSimpleStateRule()); 
-            pushFollow(FOLLOW_ruleSimpleState_in_entryRuleSimpleState11011);
+            pushFollow(FOLLOW_ruleSimpleState_in_entryRuleSimpleState11012);
             iv_ruleSimpleState=ruleSimpleState();
 
             state._fsp--;
 
              current =iv_ruleSimpleState; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleSimpleState11021); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleSimpleState11022); 
 
             }
 
@@ -13532,7 +13543,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5437:1: (otherlv_0= 'State' ( (lv_name_1_0= RULE_ID ) ) ( (lv_docu_2_0= ruleDocumentation ) )? (otherlv_3= '{' (otherlv_4= 'entry' ( (lv_entryCode_5_0= ruleDetailCode ) ) )? (otherlv_6= 'exit' ( (lv_exitCode_7_0= ruleDetailCode ) ) )? (otherlv_8= 'do' ( (lv_doCode_9_0= ruleDetailCode ) ) )? (otherlv_10= 'subgraph' ( (lv_subgraph_11_0= ruleStateGraph ) ) )? otherlv_12= '}' )? )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5437:3: otherlv_0= 'State' ( (lv_name_1_0= RULE_ID ) ) ( (lv_docu_2_0= ruleDocumentation ) )? (otherlv_3= '{' (otherlv_4= 'entry' ( (lv_entryCode_5_0= ruleDetailCode ) ) )? (otherlv_6= 'exit' ( (lv_exitCode_7_0= ruleDetailCode ) ) )? (otherlv_8= 'do' ( (lv_doCode_9_0= ruleDetailCode ) ) )? (otherlv_10= 'subgraph' ( (lv_subgraph_11_0= ruleStateGraph ) ) )? otherlv_12= '}' )?
             {
-            otherlv_0=(Token)match(input,81,FOLLOW_81_in_ruleSimpleState11058); 
+            otherlv_0=(Token)match(input,81,FOLLOW_81_in_ruleSimpleState11059); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getSimpleStateAccess().getStateKeyword_0());
                 
@@ -13542,7 +13553,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5442:1: (lv_name_1_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5443:3: lv_name_1_0= RULE_ID
             {
-            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSimpleState11075); 
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSimpleState11076); 
 
             			newLeafNode(lv_name_1_0, grammarAccess.getSimpleStateAccess().getNameIDTerminalRuleCall_1_0()); 
             		
@@ -13563,13 +13574,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5459:2: ( (lv_docu_2_0= ruleDocumentation ) )?
-            int alt111=2;
-            int LA111_0 = input.LA(1);
+            int alt112=2;
+            int LA112_0 = input.LA(1);
 
-            if ( (LA111_0==34) ) {
-                alt111=1;
+            if ( (LA112_0==34) ) {
+                alt112=1;
             }
-            switch (alt111) {
+            switch (alt112) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5460:1: (lv_docu_2_0= ruleDocumentation )
                     {
@@ -13579,7 +13590,7 @@
                      
                     	        newCompositeNode(grammarAccess.getSimpleStateAccess().getDocuDocumentationParserRuleCall_2_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDocumentation_in_ruleSimpleState11101);
+                    pushFollow(FOLLOW_ruleDocumentation_in_ruleSimpleState11102);
                     lv_docu_2_0=ruleDocumentation();
 
                     state._fsp--;
@@ -13605,32 +13616,32 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5477:3: (otherlv_3= '{' (otherlv_4= 'entry' ( (lv_entryCode_5_0= ruleDetailCode ) ) )? (otherlv_6= 'exit' ( (lv_exitCode_7_0= ruleDetailCode ) ) )? (otherlv_8= 'do' ( (lv_doCode_9_0= ruleDetailCode ) ) )? (otherlv_10= 'subgraph' ( (lv_subgraph_11_0= ruleStateGraph ) ) )? otherlv_12= '}' )?
-            int alt116=2;
-            int LA116_0 = input.LA(1);
+            int alt117=2;
+            int LA117_0 = input.LA(1);
 
-            if ( (LA116_0==14) ) {
-                alt116=1;
+            if ( (LA117_0==14) ) {
+                alt117=1;
             }
-            switch (alt116) {
+            switch (alt117) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5477:5: otherlv_3= '{' (otherlv_4= 'entry' ( (lv_entryCode_5_0= ruleDetailCode ) ) )? (otherlv_6= 'exit' ( (lv_exitCode_7_0= ruleDetailCode ) ) )? (otherlv_8= 'do' ( (lv_doCode_9_0= ruleDetailCode ) ) )? (otherlv_10= 'subgraph' ( (lv_subgraph_11_0= ruleStateGraph ) ) )? otherlv_12= '}'
                     {
-                    otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleSimpleState11115); 
+                    otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleSimpleState11116); 
 
                         	newLeafNode(otherlv_3, grammarAccess.getSimpleStateAccess().getLeftCurlyBracketKeyword_3_0());
                         
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5481:1: (otherlv_4= 'entry' ( (lv_entryCode_5_0= ruleDetailCode ) ) )?
-                    int alt112=2;
-                    int LA112_0 = input.LA(1);
+                    int alt113=2;
+                    int LA113_0 = input.LA(1);
 
-                    if ( (LA112_0==82) ) {
-                        alt112=1;
+                    if ( (LA113_0==82) ) {
+                        alt113=1;
                     }
-                    switch (alt112) {
+                    switch (alt113) {
                         case 1 :
                             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5481:3: otherlv_4= 'entry' ( (lv_entryCode_5_0= ruleDetailCode ) )
                             {
-                            otherlv_4=(Token)match(input,82,FOLLOW_82_in_ruleSimpleState11128); 
+                            otherlv_4=(Token)match(input,82,FOLLOW_82_in_ruleSimpleState11129); 
 
                                 	newLeafNode(otherlv_4, grammarAccess.getSimpleStateAccess().getEntryKeyword_3_1_0());
                                 
@@ -13643,7 +13654,7 @@
                              
                             	        newCompositeNode(grammarAccess.getSimpleStateAccess().getEntryCodeDetailCodeParserRuleCall_3_1_1_0()); 
                             	    
-                            pushFollow(FOLLOW_ruleDetailCode_in_ruleSimpleState11149);
+                            pushFollow(FOLLOW_ruleDetailCode_in_ruleSimpleState11150);
                             lv_entryCode_5_0=ruleDetailCode();
 
                             state._fsp--;
@@ -13672,17 +13683,17 @@
                     }
 
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5503:4: (otherlv_6= 'exit' ( (lv_exitCode_7_0= ruleDetailCode ) ) )?
-                    int alt113=2;
-                    int LA113_0 = input.LA(1);
+                    int alt114=2;
+                    int LA114_0 = input.LA(1);
 
-                    if ( (LA113_0==83) ) {
-                        alt113=1;
+                    if ( (LA114_0==83) ) {
+                        alt114=1;
                     }
-                    switch (alt113) {
+                    switch (alt114) {
                         case 1 :
                             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5503:6: otherlv_6= 'exit' ( (lv_exitCode_7_0= ruleDetailCode ) )
                             {
-                            otherlv_6=(Token)match(input,83,FOLLOW_83_in_ruleSimpleState11164); 
+                            otherlv_6=(Token)match(input,83,FOLLOW_83_in_ruleSimpleState11165); 
 
                                 	newLeafNode(otherlv_6, grammarAccess.getSimpleStateAccess().getExitKeyword_3_2_0());
                                 
@@ -13695,7 +13706,7 @@
                              
                             	        newCompositeNode(grammarAccess.getSimpleStateAccess().getExitCodeDetailCodeParserRuleCall_3_2_1_0()); 
                             	    
-                            pushFollow(FOLLOW_ruleDetailCode_in_ruleSimpleState11185);
+                            pushFollow(FOLLOW_ruleDetailCode_in_ruleSimpleState11186);
                             lv_exitCode_7_0=ruleDetailCode();
 
                             state._fsp--;
@@ -13724,17 +13735,17 @@
                     }
 
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5525:4: (otherlv_8= 'do' ( (lv_doCode_9_0= ruleDetailCode ) ) )?
-                    int alt114=2;
-                    int LA114_0 = input.LA(1);
+                    int alt115=2;
+                    int LA115_0 = input.LA(1);
 
-                    if ( (LA114_0==84) ) {
-                        alt114=1;
+                    if ( (LA115_0==84) ) {
+                        alt115=1;
                     }
-                    switch (alt114) {
+                    switch (alt115) {
                         case 1 :
                             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5525:6: otherlv_8= 'do' ( (lv_doCode_9_0= ruleDetailCode ) )
                             {
-                            otherlv_8=(Token)match(input,84,FOLLOW_84_in_ruleSimpleState11200); 
+                            otherlv_8=(Token)match(input,84,FOLLOW_84_in_ruleSimpleState11201); 
 
                                 	newLeafNode(otherlv_8, grammarAccess.getSimpleStateAccess().getDoKeyword_3_3_0());
                                 
@@ -13747,7 +13758,7 @@
                              
                             	        newCompositeNode(grammarAccess.getSimpleStateAccess().getDoCodeDetailCodeParserRuleCall_3_3_1_0()); 
                             	    
-                            pushFollow(FOLLOW_ruleDetailCode_in_ruleSimpleState11221);
+                            pushFollow(FOLLOW_ruleDetailCode_in_ruleSimpleState11222);
                             lv_doCode_9_0=ruleDetailCode();
 
                             state._fsp--;
@@ -13776,17 +13787,17 @@
                     }
 
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5547:4: (otherlv_10= 'subgraph' ( (lv_subgraph_11_0= ruleStateGraph ) ) )?
-                    int alt115=2;
-                    int LA115_0 = input.LA(1);
+                    int alt116=2;
+                    int LA116_0 = input.LA(1);
 
-                    if ( (LA115_0==85) ) {
-                        alt115=1;
+                    if ( (LA116_0==85) ) {
+                        alt116=1;
                     }
-                    switch (alt115) {
+                    switch (alt116) {
                         case 1 :
                             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5547:6: otherlv_10= 'subgraph' ( (lv_subgraph_11_0= ruleStateGraph ) )
                             {
-                            otherlv_10=(Token)match(input,85,FOLLOW_85_in_ruleSimpleState11236); 
+                            otherlv_10=(Token)match(input,85,FOLLOW_85_in_ruleSimpleState11237); 
 
                                 	newLeafNode(otherlv_10, grammarAccess.getSimpleStateAccess().getSubgraphKeyword_3_4_0());
                                 
@@ -13799,7 +13810,7 @@
                              
                             	        newCompositeNode(grammarAccess.getSimpleStateAccess().getSubgraphStateGraphParserRuleCall_3_4_1_0()); 
                             	    
-                            pushFollow(FOLLOW_ruleStateGraph_in_ruleSimpleState11257);
+                            pushFollow(FOLLOW_ruleStateGraph_in_ruleSimpleState11258);
                             lv_subgraph_11_0=ruleStateGraph();
 
                             state._fsp--;
@@ -13827,7 +13838,7 @@
 
                     }
 
-                    otherlv_12=(Token)match(input,15,FOLLOW_15_in_ruleSimpleState11271); 
+                    otherlv_12=(Token)match(input,15,FOLLOW_15_in_ruleSimpleState11272); 
 
                         	newLeafNode(otherlv_12, grammarAccess.getSimpleStateAccess().getRightCurlyBracketKeyword_3_5());
                         
@@ -13870,13 +13881,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5583:2: iv_ruleRefinedState= ruleRefinedState EOF
             {
              newCompositeNode(grammarAccess.getRefinedStateRule()); 
-            pushFollow(FOLLOW_ruleRefinedState_in_entryRuleRefinedState11309);
+            pushFollow(FOLLOW_ruleRefinedState_in_entryRuleRefinedState11310);
             iv_ruleRefinedState=ruleRefinedState();
 
             state._fsp--;
 
              current =iv_ruleRefinedState; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleRefinedState11319); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleRefinedState11320); 
 
             }
 
@@ -13925,7 +13936,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5594:1: (otherlv_0= 'RefinedState' ( ( ruleFQN ) ) ( (lv_docu_2_0= ruleDocumentation ) )? otherlv_3= '{' (otherlv_4= 'entry' ( (lv_entryCode_5_0= ruleDetailCode ) ) )? (otherlv_6= 'exit' ( (lv_exitCode_7_0= ruleDetailCode ) ) )? (otherlv_8= 'do' ( (lv_doCode_9_0= ruleDetailCode ) ) )? (otherlv_10= 'subgraph' ( (lv_subgraph_11_0= ruleStateGraph ) ) )? otherlv_12= '}' )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5594:3: otherlv_0= 'RefinedState' ( ( ruleFQN ) ) ( (lv_docu_2_0= ruleDocumentation ) )? otherlv_3= '{' (otherlv_4= 'entry' ( (lv_entryCode_5_0= ruleDetailCode ) ) )? (otherlv_6= 'exit' ( (lv_exitCode_7_0= ruleDetailCode ) ) )? (otherlv_8= 'do' ( (lv_doCode_9_0= ruleDetailCode ) ) )? (otherlv_10= 'subgraph' ( (lv_subgraph_11_0= ruleStateGraph ) ) )? otherlv_12= '}'
             {
-            otherlv_0=(Token)match(input,86,FOLLOW_86_in_ruleRefinedState11356); 
+            otherlv_0=(Token)match(input,86,FOLLOW_86_in_ruleRefinedState11357); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getRefinedStateAccess().getRefinedStateKeyword_0());
                 
@@ -13943,7 +13954,7 @@
              
             	        newCompositeNode(grammarAccess.getRefinedStateAccess().getTargetStateCrossReference_1_0()); 
             	    
-            pushFollow(FOLLOW_ruleFQN_in_ruleRefinedState11379);
+            pushFollow(FOLLOW_ruleFQN_in_ruleRefinedState11380);
             ruleFQN();
 
             state._fsp--;
@@ -13958,13 +13969,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5613:2: ( (lv_docu_2_0= ruleDocumentation ) )?
-            int alt117=2;
-            int LA117_0 = input.LA(1);
+            int alt118=2;
+            int LA118_0 = input.LA(1);
 
-            if ( (LA117_0==34) ) {
-                alt117=1;
+            if ( (LA118_0==34) ) {
+                alt118=1;
             }
-            switch (alt117) {
+            switch (alt118) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5614:1: (lv_docu_2_0= ruleDocumentation )
                     {
@@ -13974,7 +13985,7 @@
                      
                     	        newCompositeNode(grammarAccess.getRefinedStateAccess().getDocuDocumentationParserRuleCall_2_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDocumentation_in_ruleRefinedState11400);
+                    pushFollow(FOLLOW_ruleDocumentation_in_ruleRefinedState11401);
                     lv_docu_2_0=ruleDocumentation();
 
                     state._fsp--;
@@ -13999,22 +14010,22 @@
 
             }
 
-            otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleRefinedState11413); 
+            otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleRefinedState11414); 
 
                 	newLeafNode(otherlv_3, grammarAccess.getRefinedStateAccess().getLeftCurlyBracketKeyword_3());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5635:1: (otherlv_4= 'entry' ( (lv_entryCode_5_0= ruleDetailCode ) ) )?
-            int alt118=2;
-            int LA118_0 = input.LA(1);
+            int alt119=2;
+            int LA119_0 = input.LA(1);
 
-            if ( (LA118_0==82) ) {
-                alt118=1;
+            if ( (LA119_0==82) ) {
+                alt119=1;
             }
-            switch (alt118) {
+            switch (alt119) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5635:3: otherlv_4= 'entry' ( (lv_entryCode_5_0= ruleDetailCode ) )
                     {
-                    otherlv_4=(Token)match(input,82,FOLLOW_82_in_ruleRefinedState11426); 
+                    otherlv_4=(Token)match(input,82,FOLLOW_82_in_ruleRefinedState11427); 
 
                         	newLeafNode(otherlv_4, grammarAccess.getRefinedStateAccess().getEntryKeyword_4_0());
                         
@@ -14027,7 +14038,7 @@
                      
                     	        newCompositeNode(grammarAccess.getRefinedStateAccess().getEntryCodeDetailCodeParserRuleCall_4_1_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDetailCode_in_ruleRefinedState11447);
+                    pushFollow(FOLLOW_ruleDetailCode_in_ruleRefinedState11448);
                     lv_entryCode_5_0=ruleDetailCode();
 
                     state._fsp--;
@@ -14056,17 +14067,17 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5657:4: (otherlv_6= 'exit' ( (lv_exitCode_7_0= ruleDetailCode ) ) )?
-            int alt119=2;
-            int LA119_0 = input.LA(1);
+            int alt120=2;
+            int LA120_0 = input.LA(1);
 
-            if ( (LA119_0==83) ) {
-                alt119=1;
+            if ( (LA120_0==83) ) {
+                alt120=1;
             }
-            switch (alt119) {
+            switch (alt120) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5657:6: otherlv_6= 'exit' ( (lv_exitCode_7_0= ruleDetailCode ) )
                     {
-                    otherlv_6=(Token)match(input,83,FOLLOW_83_in_ruleRefinedState11462); 
+                    otherlv_6=(Token)match(input,83,FOLLOW_83_in_ruleRefinedState11463); 
 
                         	newLeafNode(otherlv_6, grammarAccess.getRefinedStateAccess().getExitKeyword_5_0());
                         
@@ -14079,7 +14090,7 @@
                      
                     	        newCompositeNode(grammarAccess.getRefinedStateAccess().getExitCodeDetailCodeParserRuleCall_5_1_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDetailCode_in_ruleRefinedState11483);
+                    pushFollow(FOLLOW_ruleDetailCode_in_ruleRefinedState11484);
                     lv_exitCode_7_0=ruleDetailCode();
 
                     state._fsp--;
@@ -14108,17 +14119,17 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5679:4: (otherlv_8= 'do' ( (lv_doCode_9_0= ruleDetailCode ) ) )?
-            int alt120=2;
-            int LA120_0 = input.LA(1);
+            int alt121=2;
+            int LA121_0 = input.LA(1);
 
-            if ( (LA120_0==84) ) {
-                alt120=1;
+            if ( (LA121_0==84) ) {
+                alt121=1;
             }
-            switch (alt120) {
+            switch (alt121) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5679:6: otherlv_8= 'do' ( (lv_doCode_9_0= ruleDetailCode ) )
                     {
-                    otherlv_8=(Token)match(input,84,FOLLOW_84_in_ruleRefinedState11498); 
+                    otherlv_8=(Token)match(input,84,FOLLOW_84_in_ruleRefinedState11499); 
 
                         	newLeafNode(otherlv_8, grammarAccess.getRefinedStateAccess().getDoKeyword_6_0());
                         
@@ -14131,7 +14142,7 @@
                      
                     	        newCompositeNode(grammarAccess.getRefinedStateAccess().getDoCodeDetailCodeParserRuleCall_6_1_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDetailCode_in_ruleRefinedState11519);
+                    pushFollow(FOLLOW_ruleDetailCode_in_ruleRefinedState11520);
                     lv_doCode_9_0=ruleDetailCode();
 
                     state._fsp--;
@@ -14160,17 +14171,17 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5701:4: (otherlv_10= 'subgraph' ( (lv_subgraph_11_0= ruleStateGraph ) ) )?
-            int alt121=2;
-            int LA121_0 = input.LA(1);
+            int alt122=2;
+            int LA122_0 = input.LA(1);
 
-            if ( (LA121_0==85) ) {
-                alt121=1;
+            if ( (LA122_0==85) ) {
+                alt122=1;
             }
-            switch (alt121) {
+            switch (alt122) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5701:6: otherlv_10= 'subgraph' ( (lv_subgraph_11_0= ruleStateGraph ) )
                     {
-                    otherlv_10=(Token)match(input,85,FOLLOW_85_in_ruleRefinedState11534); 
+                    otherlv_10=(Token)match(input,85,FOLLOW_85_in_ruleRefinedState11535); 
 
                         	newLeafNode(otherlv_10, grammarAccess.getRefinedStateAccess().getSubgraphKeyword_7_0());
                         
@@ -14183,7 +14194,7 @@
                      
                     	        newCompositeNode(grammarAccess.getRefinedStateAccess().getSubgraphStateGraphParserRuleCall_7_1_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleStateGraph_in_ruleRefinedState11555);
+                    pushFollow(FOLLOW_ruleStateGraph_in_ruleRefinedState11556);
                     lv_subgraph_11_0=ruleStateGraph();
 
                     state._fsp--;
@@ -14211,7 +14222,7 @@
 
             }
 
-            otherlv_12=(Token)match(input,15,FOLLOW_15_in_ruleRefinedState11569); 
+            otherlv_12=(Token)match(input,15,FOLLOW_15_in_ruleRefinedState11570); 
 
                 	newLeafNode(otherlv_12, grammarAccess.getRefinedStateAccess().getRightCurlyBracketKeyword_8());
                 
@@ -14248,13 +14259,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5737:2: iv_ruleDetailCode= ruleDetailCode EOF
             {
              newCompositeNode(grammarAccess.getDetailCodeRule()); 
-            pushFollow(FOLLOW_ruleDetailCode_in_entryRuleDetailCode11605);
+            pushFollow(FOLLOW_ruleDetailCode_in_entryRuleDetailCode11606);
             iv_ruleDetailCode=ruleDetailCode();
 
             state._fsp--;
 
              current =iv_ruleDetailCode; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleDetailCode11615); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDetailCode11616); 
 
             }
 
@@ -14306,7 +14317,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5755:1: (lv_used_1_0= '{' )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5756:3: lv_used_1_0= '{'
             {
-            lv_used_1_0=(Token)match(input,14,FOLLOW_14_in_ruleDetailCode11667); 
+            lv_used_1_0=(Token)match(input,14,FOLLOW_14_in_ruleDetailCode11668); 
 
                     newLeafNode(lv_used_1_0, grammarAccess.getDetailCodeAccess().getUsedLeftCurlyBracketKeyword_1_0());
                 
@@ -14323,24 +14334,24 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5769:2: ( (lv_lines_2_0= RULE_STRING ) )*
-            loop122:
+            loop123:
             do {
-                int alt122=2;
-                int LA122_0 = input.LA(1);
+                int alt123=2;
+                int LA123_0 = input.LA(1);
 
-                if ( (LA122_0==RULE_STRING) ) {
-                    alt122=1;
+                if ( (LA123_0==RULE_STRING) ) {
+                    alt123=1;
                 }
 
 
-                switch (alt122) {
+                switch (alt123) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5770:1: (lv_lines_2_0= RULE_STRING )
             	    {
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5770:1: (lv_lines_2_0= RULE_STRING )
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5771:3: lv_lines_2_0= RULE_STRING
             	    {
-            	    lv_lines_2_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDetailCode11697); 
+            	    lv_lines_2_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDetailCode11698); 
 
             	    			newLeafNode(lv_lines_2_0, grammarAccess.getDetailCodeAccess().getLinesSTRINGTerminalRuleCall_2_0()); 
             	    		
@@ -14362,11 +14373,11 @@
             	    break;
 
             	default :
-            	    break loop122;
+            	    break loop123;
                 }
             } while (true);
 
-            otherlv_3=(Token)match(input,15,FOLLOW_15_in_ruleDetailCode11715); 
+            otherlv_3=(Token)match(input,15,FOLLOW_15_in_ruleDetailCode11716); 
 
                 	newLeafNode(otherlv_3, grammarAccess.getDetailCodeAccess().getRightCurlyBracketKeyword_3());
                 
@@ -14403,13 +14414,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5801:2: iv_ruleTrPoint= ruleTrPoint EOF
             {
              newCompositeNode(grammarAccess.getTrPointRule()); 
-            pushFollow(FOLLOW_ruleTrPoint_in_entryRuleTrPoint11751);
+            pushFollow(FOLLOW_ruleTrPoint_in_entryRuleTrPoint11752);
             iv_ruleTrPoint=ruleTrPoint();
 
             state._fsp--;
 
              current =iv_ruleTrPoint; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTrPoint11761); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleTrPoint11762); 
 
             }
 
@@ -14445,39 +14456,39 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5812:1: (this_TransitionPoint_0= ruleTransitionPoint | this_EntryPoint_1= ruleEntryPoint | this_ExitPoint_2= ruleExitPoint )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5812:1: (this_TransitionPoint_0= ruleTransitionPoint | this_EntryPoint_1= ruleEntryPoint | this_ExitPoint_2= ruleExitPoint )
-            int alt123=3;
+            int alt124=3;
             switch ( input.LA(1) ) {
             case 87:
             case 88:
                 {
-                alt123=1;
+                alt124=1;
                 }
                 break;
             case 89:
                 {
-                alt123=2;
+                alt124=2;
                 }
                 break;
             case 90:
                 {
-                alt123=3;
+                alt124=3;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 123, 0, input);
+                    new NoViableAltException("", 124, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt123) {
+            switch (alt124) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5813:5: this_TransitionPoint_0= ruleTransitionPoint
                     {
                      
                             newCompositeNode(grammarAccess.getTrPointAccess().getTransitionPointParserRuleCall_0()); 
                         
-                    pushFollow(FOLLOW_ruleTransitionPoint_in_ruleTrPoint11808);
+                    pushFollow(FOLLOW_ruleTransitionPoint_in_ruleTrPoint11809);
                     this_TransitionPoint_0=ruleTransitionPoint();
 
                     state._fsp--;
@@ -14495,7 +14506,7 @@
                      
                             newCompositeNode(grammarAccess.getTrPointAccess().getEntryPointParserRuleCall_1()); 
                         
-                    pushFollow(FOLLOW_ruleEntryPoint_in_ruleTrPoint11835);
+                    pushFollow(FOLLOW_ruleEntryPoint_in_ruleTrPoint11836);
                     this_EntryPoint_1=ruleEntryPoint();
 
                     state._fsp--;
@@ -14513,7 +14524,7 @@
                      
                             newCompositeNode(grammarAccess.getTrPointAccess().getExitPointParserRuleCall_2()); 
                         
-                    pushFollow(FOLLOW_ruleExitPoint_in_ruleTrPoint11862);
+                    pushFollow(FOLLOW_ruleExitPoint_in_ruleTrPoint11863);
                     this_ExitPoint_2=ruleExitPoint();
 
                     state._fsp--;
@@ -14558,13 +14569,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5851:2: iv_ruleTransitionPoint= ruleTransitionPoint EOF
             {
              newCompositeNode(grammarAccess.getTransitionPointRule()); 
-            pushFollow(FOLLOW_ruleTransitionPoint_in_entryRuleTransitionPoint11897);
+            pushFollow(FOLLOW_ruleTransitionPoint_in_entryRuleTransitionPoint11898);
             iv_ruleTransitionPoint=ruleTransitionPoint();
 
             state._fsp--;
 
              current =iv_ruleTransitionPoint; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTransitionPoint11907); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleTransitionPoint11908); 
 
             }
 
@@ -14600,20 +14611,20 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5862:2: ( (lv_handler_0_0= 'handler' ) )? otherlv_1= 'TransitionPoint' ( (lv_name_2_0= RULE_ID ) )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5862:2: ( (lv_handler_0_0= 'handler' ) )?
-            int alt124=2;
-            int LA124_0 = input.LA(1);
+            int alt125=2;
+            int LA125_0 = input.LA(1);
 
-            if ( (LA124_0==87) ) {
-                alt124=1;
+            if ( (LA125_0==87) ) {
+                alt125=1;
             }
-            switch (alt124) {
+            switch (alt125) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5863:1: (lv_handler_0_0= 'handler' )
                     {
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5863:1: (lv_handler_0_0= 'handler' )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5864:3: lv_handler_0_0= 'handler'
                     {
-                    lv_handler_0_0=(Token)match(input,87,FOLLOW_87_in_ruleTransitionPoint11950); 
+                    lv_handler_0_0=(Token)match(input,87,FOLLOW_87_in_ruleTransitionPoint11951); 
 
                             newLeafNode(lv_handler_0_0, grammarAccess.getTransitionPointAccess().getHandlerHandlerKeyword_0_0());
                         
@@ -14632,7 +14643,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,88,FOLLOW_88_in_ruleTransitionPoint11976); 
+            otherlv_1=(Token)match(input,88,FOLLOW_88_in_ruleTransitionPoint11977); 
 
                 	newLeafNode(otherlv_1, grammarAccess.getTransitionPointAccess().getTransitionPointKeyword_1());
                 
@@ -14642,7 +14653,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5882:1: (lv_name_2_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5883:3: lv_name_2_0= RULE_ID
             {
-            lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTransitionPoint11993); 
+            lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTransitionPoint11994); 
 
             			newLeafNode(lv_name_2_0, grammarAccess.getTransitionPointAccess().getNameIDTerminalRuleCall_2_0()); 
             		
@@ -14695,13 +14706,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5909:2: iv_ruleEntryPoint= ruleEntryPoint EOF
             {
              newCompositeNode(grammarAccess.getEntryPointRule()); 
-            pushFollow(FOLLOW_ruleEntryPoint_in_entryRuleEntryPoint12034);
+            pushFollow(FOLLOW_ruleEntryPoint_in_entryRuleEntryPoint12035);
             iv_ruleEntryPoint=ruleEntryPoint();
 
             state._fsp--;
 
              current =iv_ruleEntryPoint; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleEntryPoint12044); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleEntryPoint12045); 
 
             }
 
@@ -14735,7 +14746,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5920:1: (otherlv_0= 'EntryPoint' ( (lv_name_1_0= RULE_ID ) ) )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5920:3: otherlv_0= 'EntryPoint' ( (lv_name_1_0= RULE_ID ) )
             {
-            otherlv_0=(Token)match(input,89,FOLLOW_89_in_ruleEntryPoint12081); 
+            otherlv_0=(Token)match(input,89,FOLLOW_89_in_ruleEntryPoint12082); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getEntryPointAccess().getEntryPointKeyword_0());
                 
@@ -14745,7 +14756,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5925:1: (lv_name_1_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5926:3: lv_name_1_0= RULE_ID
             {
-            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleEntryPoint12098); 
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleEntryPoint12099); 
 
             			newLeafNode(lv_name_1_0, grammarAccess.getEntryPointAccess().getNameIDTerminalRuleCall_1_0()); 
             		
@@ -14798,13 +14809,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5952:2: iv_ruleExitPoint= ruleExitPoint EOF
             {
              newCompositeNode(grammarAccess.getExitPointRule()); 
-            pushFollow(FOLLOW_ruleExitPoint_in_entryRuleExitPoint12139);
+            pushFollow(FOLLOW_ruleExitPoint_in_entryRuleExitPoint12140);
             iv_ruleExitPoint=ruleExitPoint();
 
             state._fsp--;
 
              current =iv_ruleExitPoint; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleExitPoint12149); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleExitPoint12150); 
 
             }
 
@@ -14838,7 +14849,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5963:1: (otherlv_0= 'ExitPoint' ( (lv_name_1_0= RULE_ID ) ) )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5963:3: otherlv_0= 'ExitPoint' ( (lv_name_1_0= RULE_ID ) )
             {
-            otherlv_0=(Token)match(input,90,FOLLOW_90_in_ruleExitPoint12186); 
+            otherlv_0=(Token)match(input,90,FOLLOW_90_in_ruleExitPoint12187); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getExitPointAccess().getExitPointKeyword_0());
                 
@@ -14848,7 +14859,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5968:1: (lv_name_1_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5969:3: lv_name_1_0= RULE_ID
             {
-            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleExitPoint12203); 
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleExitPoint12204); 
 
             			newLeafNode(lv_name_1_0, grammarAccess.getExitPointAccess().getNameIDTerminalRuleCall_1_0()); 
             		
@@ -14901,13 +14912,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:5995:2: iv_ruleChoicePoint= ruleChoicePoint EOF
             {
              newCompositeNode(grammarAccess.getChoicePointRule()); 
-            pushFollow(FOLLOW_ruleChoicePoint_in_entryRuleChoicePoint12244);
+            pushFollow(FOLLOW_ruleChoicePoint_in_entryRuleChoicePoint12245);
             iv_ruleChoicePoint=ruleChoicePoint();
 
             state._fsp--;
 
              current =iv_ruleChoicePoint; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleChoicePoint12254); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleChoicePoint12255); 
 
             }
 
@@ -14943,7 +14954,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6006:1: (otherlv_0= 'ChoicePoint' ( (lv_name_1_0= RULE_ID ) ) ( (lv_docu_2_0= ruleDocumentation ) )? )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6006:3: otherlv_0= 'ChoicePoint' ( (lv_name_1_0= RULE_ID ) ) ( (lv_docu_2_0= ruleDocumentation ) )?
             {
-            otherlv_0=(Token)match(input,91,FOLLOW_91_in_ruleChoicePoint12291); 
+            otherlv_0=(Token)match(input,91,FOLLOW_91_in_ruleChoicePoint12292); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getChoicePointAccess().getChoicePointKeyword_0());
                 
@@ -14953,7 +14964,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6011:1: (lv_name_1_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6012:3: lv_name_1_0= RULE_ID
             {
-            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleChoicePoint12308); 
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleChoicePoint12309); 
 
             			newLeafNode(lv_name_1_0, grammarAccess.getChoicePointAccess().getNameIDTerminalRuleCall_1_0()); 
             		
@@ -14974,13 +14985,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6028:2: ( (lv_docu_2_0= ruleDocumentation ) )?
-            int alt125=2;
-            int LA125_0 = input.LA(1);
+            int alt126=2;
+            int LA126_0 = input.LA(1);
 
-            if ( (LA125_0==34) ) {
-                alt125=1;
+            if ( (LA126_0==34) ) {
+                alt126=1;
             }
-            switch (alt125) {
+            switch (alt126) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6029:1: (lv_docu_2_0= ruleDocumentation )
                     {
@@ -14990,7 +15001,7 @@
                      
                     	        newCompositeNode(grammarAccess.getChoicePointAccess().getDocuDocumentationParserRuleCall_2_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDocumentation_in_ruleChoicePoint12334);
+                    pushFollow(FOLLOW_ruleDocumentation_in_ruleChoicePoint12335);
                     lv_docu_2_0=ruleDocumentation();
 
                     state._fsp--;
@@ -15048,13 +15059,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6056:2: iv_ruleTransition= ruleTransition EOF
             {
              newCompositeNode(grammarAccess.getTransitionRule()); 
-            pushFollow(FOLLOW_ruleTransition_in_entryRuleTransition12371);
+            pushFollow(FOLLOW_ruleTransition_in_entryRuleTransition12372);
             iv_ruleTransition=ruleTransition();
 
             state._fsp--;
 
              current =iv_ruleTransition; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTransition12381); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleTransition12382); 
 
             }
 
@@ -15088,75 +15099,75 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6067:1: (this_InitialTransition_0= ruleInitialTransition | this_NonInitialTransition_1= ruleNonInitialTransition )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6067:1: (this_InitialTransition_0= ruleInitialTransition | this_NonInitialTransition_1= ruleNonInitialTransition )
-            int alt126=2;
-            int LA126_0 = input.LA(1);
+            int alt127=2;
+            int LA127_0 = input.LA(1);
 
-            if ( (LA126_0==92) ) {
-                int LA126_1 = input.LA(2);
+            if ( (LA127_0==92) ) {
+                int LA127_1 = input.LA(2);
 
-                if ( (LA126_1==RULE_ID) ) {
-                    int LA126_2 = input.LA(3);
+                if ( (LA127_1==RULE_ID) ) {
+                    int LA127_2 = input.LA(3);
 
-                    if ( (LA126_2==16) ) {
-                        int LA126_3 = input.LA(4);
+                    if ( (LA127_2==16) ) {
+                        int LA127_3 = input.LA(4);
 
-                        if ( (LA126_3==RULE_ID||(LA126_3>=100 && LA126_3<=101)) ) {
-                            alt126=2;
+                        if ( (LA127_3==RULE_ID||(LA127_3>=100 && LA127_3<=101)) ) {
+                            alt127=2;
                         }
-                        else if ( (LA126_3==93) ) {
-                            alt126=1;
+                        else if ( (LA127_3==93) ) {
+                            alt127=1;
                         }
                         else {
                             NoViableAltException nvae =
-                                new NoViableAltException("", 126, 3, input);
+                                new NoViableAltException("", 127, 3, input);
 
                             throw nvae;
                         }
                     }
                     else {
                         NoViableAltException nvae =
-                            new NoViableAltException("", 126, 2, input);
+                            new NoViableAltException("", 127, 2, input);
 
                         throw nvae;
                     }
                 }
-                else if ( (LA126_1==16) ) {
-                    int LA126_3 = input.LA(3);
+                else if ( (LA127_1==16) ) {
+                    int LA127_3 = input.LA(3);
 
-                    if ( (LA126_3==RULE_ID||(LA126_3>=100 && LA126_3<=101)) ) {
-                        alt126=2;
+                    if ( (LA127_3==RULE_ID||(LA127_3>=100 && LA127_3<=101)) ) {
+                        alt127=2;
                     }
-                    else if ( (LA126_3==93) ) {
-                        alt126=1;
+                    else if ( (LA127_3==93) ) {
+                        alt127=1;
                     }
                     else {
                         NoViableAltException nvae =
-                            new NoViableAltException("", 126, 3, input);
+                            new NoViableAltException("", 127, 3, input);
 
                         throw nvae;
                     }
                 }
                 else {
                     NoViableAltException nvae =
-                        new NoViableAltException("", 126, 1, input);
+                        new NoViableAltException("", 127, 1, input);
 
                     throw nvae;
                 }
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 126, 0, input);
+                    new NoViableAltException("", 127, 0, input);
 
                 throw nvae;
             }
-            switch (alt126) {
+            switch (alt127) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6068:5: this_InitialTransition_0= ruleInitialTransition
                     {
                      
                             newCompositeNode(grammarAccess.getTransitionAccess().getInitialTransitionParserRuleCall_0()); 
                         
-                    pushFollow(FOLLOW_ruleInitialTransition_in_ruleTransition12428);
+                    pushFollow(FOLLOW_ruleInitialTransition_in_ruleTransition12429);
                     this_InitialTransition_0=ruleInitialTransition();
 
                     state._fsp--;
@@ -15174,7 +15185,7 @@
                      
                             newCompositeNode(grammarAccess.getTransitionAccess().getNonInitialTransitionParserRuleCall_1()); 
                         
-                    pushFollow(FOLLOW_ruleNonInitialTransition_in_ruleTransition12455);
+                    pushFollow(FOLLOW_ruleNonInitialTransition_in_ruleTransition12456);
                     this_NonInitialTransition_1=ruleNonInitialTransition();
 
                     state._fsp--;
@@ -15219,13 +15230,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6096:2: iv_ruleNonInitialTransition= ruleNonInitialTransition EOF
             {
              newCompositeNode(grammarAccess.getNonInitialTransitionRule()); 
-            pushFollow(FOLLOW_ruleNonInitialTransition_in_entryRuleNonInitialTransition12490);
+            pushFollow(FOLLOW_ruleNonInitialTransition_in_entryRuleNonInitialTransition12491);
             iv_ruleNonInitialTransition=ruleNonInitialTransition();
 
             state._fsp--;
 
              current =iv_ruleNonInitialTransition; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleNonInitialTransition12500); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleNonInitialTransition12501); 
 
             }
 
@@ -15261,16 +15272,16 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6107:1: (this_TransitionChainStartTransition_0= ruleTransitionChainStartTransition | this_ContinuationTransition_1= ruleContinuationTransition | this_CPBranchTransition_2= ruleCPBranchTransition )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6107:1: (this_TransitionChainStartTransition_0= ruleTransitionChainStartTransition | this_ContinuationTransition_1= ruleContinuationTransition | this_CPBranchTransition_2= ruleCPBranchTransition )
-            int alt127=3;
-            alt127 = dfa127.predict(input);
-            switch (alt127) {
+            int alt128=3;
+            alt128 = dfa128.predict(input);
+            switch (alt128) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6108:5: this_TransitionChainStartTransition_0= ruleTransitionChainStartTransition
                     {
                      
                             newCompositeNode(grammarAccess.getNonInitialTransitionAccess().getTransitionChainStartTransitionParserRuleCall_0()); 
                         
-                    pushFollow(FOLLOW_ruleTransitionChainStartTransition_in_ruleNonInitialTransition12547);
+                    pushFollow(FOLLOW_ruleTransitionChainStartTransition_in_ruleNonInitialTransition12548);
                     this_TransitionChainStartTransition_0=ruleTransitionChainStartTransition();
 
                     state._fsp--;
@@ -15288,7 +15299,7 @@
                      
                             newCompositeNode(grammarAccess.getNonInitialTransitionAccess().getContinuationTransitionParserRuleCall_1()); 
                         
-                    pushFollow(FOLLOW_ruleContinuationTransition_in_ruleNonInitialTransition12574);
+                    pushFollow(FOLLOW_ruleContinuationTransition_in_ruleNonInitialTransition12575);
                     this_ContinuationTransition_1=ruleContinuationTransition();
 
                     state._fsp--;
@@ -15306,7 +15317,7 @@
                      
                             newCompositeNode(grammarAccess.getNonInitialTransitionAccess().getCPBranchTransitionParserRuleCall_2()); 
                         
-                    pushFollow(FOLLOW_ruleCPBranchTransition_in_ruleNonInitialTransition12601);
+                    pushFollow(FOLLOW_ruleCPBranchTransition_in_ruleNonInitialTransition12602);
                     this_CPBranchTransition_2=ruleCPBranchTransition();
 
                     state._fsp--;
@@ -15351,13 +15362,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6146:2: iv_ruleTransitionChainStartTransition= ruleTransitionChainStartTransition EOF
             {
              newCompositeNode(grammarAccess.getTransitionChainStartTransitionRule()); 
-            pushFollow(FOLLOW_ruleTransitionChainStartTransition_in_entryRuleTransitionChainStartTransition12636);
+            pushFollow(FOLLOW_ruleTransitionChainStartTransition_in_entryRuleTransitionChainStartTransition12637);
             iv_ruleTransitionChainStartTransition=ruleTransitionChainStartTransition();
 
             state._fsp--;
 
              current =iv_ruleTransitionChainStartTransition; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTransitionChainStartTransition12646); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleTransitionChainStartTransition12647); 
 
             }
 
@@ -15391,16 +15402,16 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6157:1: (this_TriggeredTransition_0= ruleTriggeredTransition | this_GuardedTransition_1= ruleGuardedTransition )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6157:1: (this_TriggeredTransition_0= ruleTriggeredTransition | this_GuardedTransition_1= ruleGuardedTransition )
-            int alt128=2;
-            alt128 = dfa128.predict(input);
-            switch (alt128) {
+            int alt129=2;
+            alt129 = dfa129.predict(input);
+            switch (alt129) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6158:5: this_TriggeredTransition_0= ruleTriggeredTransition
                     {
                      
                             newCompositeNode(grammarAccess.getTransitionChainStartTransitionAccess().getTriggeredTransitionParserRuleCall_0()); 
                         
-                    pushFollow(FOLLOW_ruleTriggeredTransition_in_ruleTransitionChainStartTransition12693);
+                    pushFollow(FOLLOW_ruleTriggeredTransition_in_ruleTransitionChainStartTransition12694);
                     this_TriggeredTransition_0=ruleTriggeredTransition();
 
                     state._fsp--;
@@ -15418,7 +15429,7 @@
                      
                             newCompositeNode(grammarAccess.getTransitionChainStartTransitionAccess().getGuardedTransitionParserRuleCall_1()); 
                         
-                    pushFollow(FOLLOW_ruleGuardedTransition_in_ruleTransitionChainStartTransition12720);
+                    pushFollow(FOLLOW_ruleGuardedTransition_in_ruleTransitionChainStartTransition12721);
                     this_GuardedTransition_1=ruleGuardedTransition();
 
                     state._fsp--;
@@ -15463,13 +15474,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6186:2: iv_ruleInitialTransition= ruleInitialTransition EOF
             {
              newCompositeNode(grammarAccess.getInitialTransitionRule()); 
-            pushFollow(FOLLOW_ruleInitialTransition_in_entryRuleInitialTransition12755);
+            pushFollow(FOLLOW_ruleInitialTransition_in_entryRuleInitialTransition12756);
             iv_ruleInitialTransition=ruleInitialTransition();
 
             state._fsp--;
 
              current =iv_ruleInitialTransition; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleInitialTransition12765); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleInitialTransition12766); 
 
             }
 
@@ -15515,25 +15526,25 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6197:1: (otherlv_0= 'Transition' ( (lv_name_1_0= RULE_ID ) )? otherlv_2= ':' otherlv_3= 'initial' otherlv_4= '->' ( (lv_to_5_0= ruleTransitionTerminal ) ) ( (lv_docu_6_0= ruleDocumentation ) )? (otherlv_7= '{' (otherlv_8= 'action' ( (lv_action_9_0= ruleDetailCode ) ) )? otherlv_10= '}' )? )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6197:3: otherlv_0= 'Transition' ( (lv_name_1_0= RULE_ID ) )? otherlv_2= ':' otherlv_3= 'initial' otherlv_4= '->' ( (lv_to_5_0= ruleTransitionTerminal ) ) ( (lv_docu_6_0= ruleDocumentation ) )? (otherlv_7= '{' (otherlv_8= 'action' ( (lv_action_9_0= ruleDetailCode ) ) )? otherlv_10= '}' )?
             {
-            otherlv_0=(Token)match(input,92,FOLLOW_92_in_ruleInitialTransition12802); 
+            otherlv_0=(Token)match(input,92,FOLLOW_92_in_ruleInitialTransition12803); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getInitialTransitionAccess().getTransitionKeyword_0());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6201:1: ( (lv_name_1_0= RULE_ID ) )?
-            int alt129=2;
-            int LA129_0 = input.LA(1);
+            int alt130=2;
+            int LA130_0 = input.LA(1);
 
-            if ( (LA129_0==RULE_ID) ) {
-                alt129=1;
+            if ( (LA130_0==RULE_ID) ) {
+                alt130=1;
             }
-            switch (alt129) {
+            switch (alt130) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6202:1: (lv_name_1_0= RULE_ID )
                     {
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6202:1: (lv_name_1_0= RULE_ID )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6203:3: lv_name_1_0= RULE_ID
                     {
-                    lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleInitialTransition12819); 
+                    lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleInitialTransition12820); 
 
                     			newLeafNode(lv_name_1_0, grammarAccess.getInitialTransitionAccess().getNameIDTerminalRuleCall_1_0()); 
                     		
@@ -15556,15 +15567,15 @@
 
             }
 
-            otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleInitialTransition12837); 
+            otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleInitialTransition12838); 
 
                 	newLeafNode(otherlv_2, grammarAccess.getInitialTransitionAccess().getColonKeyword_2());
                 
-            otherlv_3=(Token)match(input,93,FOLLOW_93_in_ruleInitialTransition12849); 
+            otherlv_3=(Token)match(input,93,FOLLOW_93_in_ruleInitialTransition12850); 
 
                 	newLeafNode(otherlv_3, grammarAccess.getInitialTransitionAccess().getInitialKeyword_3());
                 
-            otherlv_4=(Token)match(input,19,FOLLOW_19_in_ruleInitialTransition12861); 
+            otherlv_4=(Token)match(input,19,FOLLOW_19_in_ruleInitialTransition12862); 
 
                 	newLeafNode(otherlv_4, grammarAccess.getInitialTransitionAccess().getHyphenMinusGreaterThanSignKeyword_4());
                 
@@ -15577,7 +15588,7 @@
              
             	        newCompositeNode(grammarAccess.getInitialTransitionAccess().getToTransitionTerminalParserRuleCall_5_0()); 
             	    
-            pushFollow(FOLLOW_ruleTransitionTerminal_in_ruleInitialTransition12882);
+            pushFollow(FOLLOW_ruleTransitionTerminal_in_ruleInitialTransition12883);
             lv_to_5_0=ruleTransitionTerminal();
 
             state._fsp--;
@@ -15600,13 +15611,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6249:2: ( (lv_docu_6_0= ruleDocumentation ) )?
-            int alt130=2;
-            int LA130_0 = input.LA(1);
+            int alt131=2;
+            int LA131_0 = input.LA(1);
 
-            if ( (LA130_0==34) ) {
-                alt130=1;
+            if ( (LA131_0==34) ) {
+                alt131=1;
             }
-            switch (alt130) {
+            switch (alt131) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6250:1: (lv_docu_6_0= ruleDocumentation )
                     {
@@ -15616,7 +15627,7 @@
                      
                     	        newCompositeNode(grammarAccess.getInitialTransitionAccess().getDocuDocumentationParserRuleCall_6_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDocumentation_in_ruleInitialTransition12903);
+                    pushFollow(FOLLOW_ruleDocumentation_in_ruleInitialTransition12904);
                     lv_docu_6_0=ruleDocumentation();
 
                     state._fsp--;
@@ -15642,32 +15653,32 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6267:3: (otherlv_7= '{' (otherlv_8= 'action' ( (lv_action_9_0= ruleDetailCode ) ) )? otherlv_10= '}' )?
-            int alt132=2;
-            int LA132_0 = input.LA(1);
+            int alt133=2;
+            int LA133_0 = input.LA(1);
 
-            if ( (LA132_0==14) ) {
-                alt132=1;
+            if ( (LA133_0==14) ) {
+                alt133=1;
             }
-            switch (alt132) {
+            switch (alt133) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6267:5: otherlv_7= '{' (otherlv_8= 'action' ( (lv_action_9_0= ruleDetailCode ) ) )? otherlv_10= '}'
                     {
-                    otherlv_7=(Token)match(input,14,FOLLOW_14_in_ruleInitialTransition12917); 
+                    otherlv_7=(Token)match(input,14,FOLLOW_14_in_ruleInitialTransition12918); 
 
                         	newLeafNode(otherlv_7, grammarAccess.getInitialTransitionAccess().getLeftCurlyBracketKeyword_7_0());
                         
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6271:1: (otherlv_8= 'action' ( (lv_action_9_0= ruleDetailCode ) ) )?
-                    int alt131=2;
-                    int LA131_0 = input.LA(1);
+                    int alt132=2;
+                    int LA132_0 = input.LA(1);
 
-                    if ( (LA131_0==94) ) {
-                        alt131=1;
+                    if ( (LA132_0==94) ) {
+                        alt132=1;
                     }
-                    switch (alt131) {
+                    switch (alt132) {
                         case 1 :
                             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6271:3: otherlv_8= 'action' ( (lv_action_9_0= ruleDetailCode ) )
                             {
-                            otherlv_8=(Token)match(input,94,FOLLOW_94_in_ruleInitialTransition12930); 
+                            otherlv_8=(Token)match(input,94,FOLLOW_94_in_ruleInitialTransition12931); 
 
                                 	newLeafNode(otherlv_8, grammarAccess.getInitialTransitionAccess().getActionKeyword_7_1_0());
                                 
@@ -15680,7 +15691,7 @@
                              
                             	        newCompositeNode(grammarAccess.getInitialTransitionAccess().getActionDetailCodeParserRuleCall_7_1_1_0()); 
                             	    
-                            pushFollow(FOLLOW_ruleDetailCode_in_ruleInitialTransition12951);
+                            pushFollow(FOLLOW_ruleDetailCode_in_ruleInitialTransition12952);
                             lv_action_9_0=ruleDetailCode();
 
                             state._fsp--;
@@ -15708,7 +15719,7 @@
 
                     }
 
-                    otherlv_10=(Token)match(input,15,FOLLOW_15_in_ruleInitialTransition12965); 
+                    otherlv_10=(Token)match(input,15,FOLLOW_15_in_ruleInitialTransition12966); 
 
                         	newLeafNode(otherlv_10, grammarAccess.getInitialTransitionAccess().getRightCurlyBracketKeyword_7_2());
                         
@@ -15751,13 +15762,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6307:2: iv_ruleContinuationTransition= ruleContinuationTransition EOF
             {
              newCompositeNode(grammarAccess.getContinuationTransitionRule()); 
-            pushFollow(FOLLOW_ruleContinuationTransition_in_entryRuleContinuationTransition13003);
+            pushFollow(FOLLOW_ruleContinuationTransition_in_entryRuleContinuationTransition13004);
             iv_ruleContinuationTransition=ruleContinuationTransition();
 
             state._fsp--;
 
              current =iv_ruleContinuationTransition; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleContinuationTransition13013); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleContinuationTransition13014); 
 
             }
 
@@ -15804,25 +15815,25 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6318:1: (otherlv_0= 'Transition' ( (lv_name_1_0= RULE_ID ) )? otherlv_2= ':' ( (lv_from_3_0= ruleTransitionTerminal ) ) otherlv_4= '->' ( (lv_to_5_0= ruleTransitionTerminal ) ) ( (lv_docu_6_0= ruleDocumentation ) )? (otherlv_7= '{' (otherlv_8= 'action' ( (lv_action_9_0= ruleDetailCode ) ) )? otherlv_10= '}' )? )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6318:3: otherlv_0= 'Transition' ( (lv_name_1_0= RULE_ID ) )? otherlv_2= ':' ( (lv_from_3_0= ruleTransitionTerminal ) ) otherlv_4= '->' ( (lv_to_5_0= ruleTransitionTerminal ) ) ( (lv_docu_6_0= ruleDocumentation ) )? (otherlv_7= '{' (otherlv_8= 'action' ( (lv_action_9_0= ruleDetailCode ) ) )? otherlv_10= '}' )?
             {
-            otherlv_0=(Token)match(input,92,FOLLOW_92_in_ruleContinuationTransition13050); 
+            otherlv_0=(Token)match(input,92,FOLLOW_92_in_ruleContinuationTransition13051); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getContinuationTransitionAccess().getTransitionKeyword_0());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6322:1: ( (lv_name_1_0= RULE_ID ) )?
-            int alt133=2;
-            int LA133_0 = input.LA(1);
+            int alt134=2;
+            int LA134_0 = input.LA(1);
 
-            if ( (LA133_0==RULE_ID) ) {
-                alt133=1;
+            if ( (LA134_0==RULE_ID) ) {
+                alt134=1;
             }
-            switch (alt133) {
+            switch (alt134) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6323:1: (lv_name_1_0= RULE_ID )
                     {
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6323:1: (lv_name_1_0= RULE_ID )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6324:3: lv_name_1_0= RULE_ID
                     {
-                    lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleContinuationTransition13067); 
+                    lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleContinuationTransition13068); 
 
                     			newLeafNode(lv_name_1_0, grammarAccess.getContinuationTransitionAccess().getNameIDTerminalRuleCall_1_0()); 
                     		
@@ -15845,7 +15856,7 @@
 
             }
 
-            otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleContinuationTransition13085); 
+            otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleContinuationTransition13086); 
 
                 	newLeafNode(otherlv_2, grammarAccess.getContinuationTransitionAccess().getColonKeyword_2());
                 
@@ -15858,7 +15869,7 @@
              
             	        newCompositeNode(grammarAccess.getContinuationTransitionAccess().getFromTransitionTerminalParserRuleCall_3_0()); 
             	    
-            pushFollow(FOLLOW_ruleTransitionTerminal_in_ruleContinuationTransition13106);
+            pushFollow(FOLLOW_ruleTransitionTerminal_in_ruleContinuationTransition13107);
             lv_from_3_0=ruleTransitionTerminal();
 
             state._fsp--;
@@ -15880,7 +15891,7 @@
 
             }
 
-            otherlv_4=(Token)match(input,19,FOLLOW_19_in_ruleContinuationTransition13118); 
+            otherlv_4=(Token)match(input,19,FOLLOW_19_in_ruleContinuationTransition13119); 
 
                 	newLeafNode(otherlv_4, grammarAccess.getContinuationTransitionAccess().getHyphenMinusGreaterThanSignKeyword_4());
                 
@@ -15893,7 +15904,7 @@
              
             	        newCompositeNode(grammarAccess.getContinuationTransitionAccess().getToTransitionTerminalParserRuleCall_5_0()); 
             	    
-            pushFollow(FOLLOW_ruleTransitionTerminal_in_ruleContinuationTransition13139);
+            pushFollow(FOLLOW_ruleTransitionTerminal_in_ruleContinuationTransition13140);
             lv_to_5_0=ruleTransitionTerminal();
 
             state._fsp--;
@@ -15916,13 +15927,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6384:2: ( (lv_docu_6_0= ruleDocumentation ) )?
-            int alt134=2;
-            int LA134_0 = input.LA(1);
+            int alt135=2;
+            int LA135_0 = input.LA(1);
 
-            if ( (LA134_0==34) ) {
-                alt134=1;
+            if ( (LA135_0==34) ) {
+                alt135=1;
             }
-            switch (alt134) {
+            switch (alt135) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6385:1: (lv_docu_6_0= ruleDocumentation )
                     {
@@ -15932,7 +15943,7 @@
                      
                     	        newCompositeNode(grammarAccess.getContinuationTransitionAccess().getDocuDocumentationParserRuleCall_6_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDocumentation_in_ruleContinuationTransition13160);
+                    pushFollow(FOLLOW_ruleDocumentation_in_ruleContinuationTransition13161);
                     lv_docu_6_0=ruleDocumentation();
 
                     state._fsp--;
@@ -15958,32 +15969,32 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6402:3: (otherlv_7= '{' (otherlv_8= 'action' ( (lv_action_9_0= ruleDetailCode ) ) )? otherlv_10= '}' )?
-            int alt136=2;
-            int LA136_0 = input.LA(1);
+            int alt137=2;
+            int LA137_0 = input.LA(1);
 
-            if ( (LA136_0==14) ) {
-                alt136=1;
+            if ( (LA137_0==14) ) {
+                alt137=1;
             }
-            switch (alt136) {
+            switch (alt137) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6402:5: otherlv_7= '{' (otherlv_8= 'action' ( (lv_action_9_0= ruleDetailCode ) ) )? otherlv_10= '}'
                     {
-                    otherlv_7=(Token)match(input,14,FOLLOW_14_in_ruleContinuationTransition13174); 
+                    otherlv_7=(Token)match(input,14,FOLLOW_14_in_ruleContinuationTransition13175); 
 
                         	newLeafNode(otherlv_7, grammarAccess.getContinuationTransitionAccess().getLeftCurlyBracketKeyword_7_0());
                         
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6406:1: (otherlv_8= 'action' ( (lv_action_9_0= ruleDetailCode ) ) )?
-                    int alt135=2;
-                    int LA135_0 = input.LA(1);
+                    int alt136=2;
+                    int LA136_0 = input.LA(1);
 
-                    if ( (LA135_0==94) ) {
-                        alt135=1;
+                    if ( (LA136_0==94) ) {
+                        alt136=1;
                     }
-                    switch (alt135) {
+                    switch (alt136) {
                         case 1 :
                             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6406:3: otherlv_8= 'action' ( (lv_action_9_0= ruleDetailCode ) )
                             {
-                            otherlv_8=(Token)match(input,94,FOLLOW_94_in_ruleContinuationTransition13187); 
+                            otherlv_8=(Token)match(input,94,FOLLOW_94_in_ruleContinuationTransition13188); 
 
                                 	newLeafNode(otherlv_8, grammarAccess.getContinuationTransitionAccess().getActionKeyword_7_1_0());
                                 
@@ -15996,7 +16007,7 @@
                              
                             	        newCompositeNode(grammarAccess.getContinuationTransitionAccess().getActionDetailCodeParserRuleCall_7_1_1_0()); 
                             	    
-                            pushFollow(FOLLOW_ruleDetailCode_in_ruleContinuationTransition13208);
+                            pushFollow(FOLLOW_ruleDetailCode_in_ruleContinuationTransition13209);
                             lv_action_9_0=ruleDetailCode();
 
                             state._fsp--;
@@ -16024,7 +16035,7 @@
 
                     }
 
-                    otherlv_10=(Token)match(input,15,FOLLOW_15_in_ruleContinuationTransition13222); 
+                    otherlv_10=(Token)match(input,15,FOLLOW_15_in_ruleContinuationTransition13223); 
 
                         	newLeafNode(otherlv_10, grammarAccess.getContinuationTransitionAccess().getRightCurlyBracketKeyword_7_2());
                         
@@ -16067,13 +16078,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6442:2: iv_ruleTriggeredTransition= ruleTriggeredTransition EOF
             {
              newCompositeNode(grammarAccess.getTriggeredTransitionRule()); 
-            pushFollow(FOLLOW_ruleTriggeredTransition_in_entryRuleTriggeredTransition13260);
+            pushFollow(FOLLOW_ruleTriggeredTransition_in_entryRuleTriggeredTransition13261);
             iv_ruleTriggeredTransition=ruleTriggeredTransition();
 
             state._fsp--;
 
              current =iv_ruleTriggeredTransition; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTriggeredTransition13270); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleTriggeredTransition13271); 
 
             }
 
@@ -16128,25 +16139,25 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6453:1: (otherlv_0= 'Transition' ( (lv_name_1_0= RULE_ID ) )? otherlv_2= ':' ( (lv_from_3_0= ruleTransitionTerminal ) ) otherlv_4= '->' ( (lv_to_5_0= ruleTransitionTerminal ) ) ( (lv_docu_6_0= ruleDocumentation ) )? otherlv_7= '{' otherlv_8= 'triggers' otherlv_9= '{' ( (lv_triggers_10_0= ruleTrigger ) ) (otherlv_11= 'or' ( (lv_triggers_12_0= ruleTrigger ) ) )* otherlv_13= '}' (otherlv_14= 'action' ( (lv_action_15_0= ruleDetailCode ) ) )? otherlv_16= '}' )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6453:3: otherlv_0= 'Transition' ( (lv_name_1_0= RULE_ID ) )? otherlv_2= ':' ( (lv_from_3_0= ruleTransitionTerminal ) ) otherlv_4= '->' ( (lv_to_5_0= ruleTransitionTerminal ) ) ( (lv_docu_6_0= ruleDocumentation ) )? otherlv_7= '{' otherlv_8= 'triggers' otherlv_9= '{' ( (lv_triggers_10_0= ruleTrigger ) ) (otherlv_11= 'or' ( (lv_triggers_12_0= ruleTrigger ) ) )* otherlv_13= '}' (otherlv_14= 'action' ( (lv_action_15_0= ruleDetailCode ) ) )? otherlv_16= '}'
             {
-            otherlv_0=(Token)match(input,92,FOLLOW_92_in_ruleTriggeredTransition13307); 
+            otherlv_0=(Token)match(input,92,FOLLOW_92_in_ruleTriggeredTransition13308); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getTriggeredTransitionAccess().getTransitionKeyword_0());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6457:1: ( (lv_name_1_0= RULE_ID ) )?
-            int alt137=2;
-            int LA137_0 = input.LA(1);
+            int alt138=2;
+            int LA138_0 = input.LA(1);
 
-            if ( (LA137_0==RULE_ID) ) {
-                alt137=1;
+            if ( (LA138_0==RULE_ID) ) {
+                alt138=1;
             }
-            switch (alt137) {
+            switch (alt138) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6458:1: (lv_name_1_0= RULE_ID )
                     {
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6458:1: (lv_name_1_0= RULE_ID )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6459:3: lv_name_1_0= RULE_ID
                     {
-                    lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTriggeredTransition13324); 
+                    lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTriggeredTransition13325); 
 
                     			newLeafNode(lv_name_1_0, grammarAccess.getTriggeredTransitionAccess().getNameIDTerminalRuleCall_1_0()); 
                     		
@@ -16169,7 +16180,7 @@
 
             }
 
-            otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleTriggeredTransition13342); 
+            otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleTriggeredTransition13343); 
 
                 	newLeafNode(otherlv_2, grammarAccess.getTriggeredTransitionAccess().getColonKeyword_2());
                 
@@ -16182,7 +16193,7 @@
              
             	        newCompositeNode(grammarAccess.getTriggeredTransitionAccess().getFromTransitionTerminalParserRuleCall_3_0()); 
             	    
-            pushFollow(FOLLOW_ruleTransitionTerminal_in_ruleTriggeredTransition13363);
+            pushFollow(FOLLOW_ruleTransitionTerminal_in_ruleTriggeredTransition13364);
             lv_from_3_0=ruleTransitionTerminal();
 
             state._fsp--;
@@ -16204,7 +16215,7 @@
 
             }
 
-            otherlv_4=(Token)match(input,19,FOLLOW_19_in_ruleTriggeredTransition13375); 
+            otherlv_4=(Token)match(input,19,FOLLOW_19_in_ruleTriggeredTransition13376); 
 
                 	newLeafNode(otherlv_4, grammarAccess.getTriggeredTransitionAccess().getHyphenMinusGreaterThanSignKeyword_4());
                 
@@ -16217,7 +16228,7 @@
              
             	        newCompositeNode(grammarAccess.getTriggeredTransitionAccess().getToTransitionTerminalParserRuleCall_5_0()); 
             	    
-            pushFollow(FOLLOW_ruleTransitionTerminal_in_ruleTriggeredTransition13396);
+            pushFollow(FOLLOW_ruleTransitionTerminal_in_ruleTriggeredTransition13397);
             lv_to_5_0=ruleTransitionTerminal();
 
             state._fsp--;
@@ -16240,13 +16251,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6519:2: ( (lv_docu_6_0= ruleDocumentation ) )?
-            int alt138=2;
-            int LA138_0 = input.LA(1);
+            int alt139=2;
+            int LA139_0 = input.LA(1);
 
-            if ( (LA138_0==34) ) {
-                alt138=1;
+            if ( (LA139_0==34) ) {
+                alt139=1;
             }
-            switch (alt138) {
+            switch (alt139) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6520:1: (lv_docu_6_0= ruleDocumentation )
                     {
@@ -16256,7 +16267,7 @@
                      
                     	        newCompositeNode(grammarAccess.getTriggeredTransitionAccess().getDocuDocumentationParserRuleCall_6_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDocumentation_in_ruleTriggeredTransition13417);
+                    pushFollow(FOLLOW_ruleDocumentation_in_ruleTriggeredTransition13418);
                     lv_docu_6_0=ruleDocumentation();
 
                     state._fsp--;
@@ -16281,15 +16292,15 @@
 
             }
 
-            otherlv_7=(Token)match(input,14,FOLLOW_14_in_ruleTriggeredTransition13430); 
+            otherlv_7=(Token)match(input,14,FOLLOW_14_in_ruleTriggeredTransition13431); 
 
                 	newLeafNode(otherlv_7, grammarAccess.getTriggeredTransitionAccess().getLeftCurlyBracketKeyword_7());
                 
-            otherlv_8=(Token)match(input,95,FOLLOW_95_in_ruleTriggeredTransition13442); 
+            otherlv_8=(Token)match(input,95,FOLLOW_95_in_ruleTriggeredTransition13443); 
 
                 	newLeafNode(otherlv_8, grammarAccess.getTriggeredTransitionAccess().getTriggersKeyword_8());
                 
-            otherlv_9=(Token)match(input,14,FOLLOW_14_in_ruleTriggeredTransition13454); 
+            otherlv_9=(Token)match(input,14,FOLLOW_14_in_ruleTriggeredTransition13455); 
 
                 	newLeafNode(otherlv_9, grammarAccess.getTriggeredTransitionAccess().getLeftCurlyBracketKeyword_9());
                 
@@ -16302,7 +16313,7 @@
              
             	        newCompositeNode(grammarAccess.getTriggeredTransitionAccess().getTriggersTriggerParserRuleCall_10_0()); 
             	    
-            pushFollow(FOLLOW_ruleTrigger_in_ruleTriggeredTransition13475);
+            pushFollow(FOLLOW_ruleTrigger_in_ruleTriggeredTransition13476);
             lv_triggers_10_0=ruleTrigger();
 
             state._fsp--;
@@ -16325,21 +16336,21 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6567:2: (otherlv_11= 'or' ( (lv_triggers_12_0= ruleTrigger ) ) )*
-            loop139:
+            loop140:
             do {
-                int alt139=2;
-                int LA139_0 = input.LA(1);
+                int alt140=2;
+                int LA140_0 = input.LA(1);
 
-                if ( (LA139_0==96) ) {
-                    alt139=1;
+                if ( (LA140_0==96) ) {
+                    alt140=1;
                 }
 
 
-                switch (alt139) {
+                switch (alt140) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6567:4: otherlv_11= 'or' ( (lv_triggers_12_0= ruleTrigger ) )
             	    {
-            	    otherlv_11=(Token)match(input,96,FOLLOW_96_in_ruleTriggeredTransition13488); 
+            	    otherlv_11=(Token)match(input,96,FOLLOW_96_in_ruleTriggeredTransition13489); 
 
             	        	newLeafNode(otherlv_11, grammarAccess.getTriggeredTransitionAccess().getOrKeyword_11_0());
             	        
@@ -16352,7 +16363,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getTriggeredTransitionAccess().getTriggersTriggerParserRuleCall_11_1_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleTrigger_in_ruleTriggeredTransition13509);
+            	    pushFollow(FOLLOW_ruleTrigger_in_ruleTriggeredTransition13510);
             	    lv_triggers_12_0=ruleTrigger();
 
             	    state._fsp--;
@@ -16379,26 +16390,26 @@
             	    break;
 
             	default :
-            	    break loop139;
+            	    break loop140;
                 }
             } while (true);
 
-            otherlv_13=(Token)match(input,15,FOLLOW_15_in_ruleTriggeredTransition13523); 
+            otherlv_13=(Token)match(input,15,FOLLOW_15_in_ruleTriggeredTransition13524); 
 
                 	newLeafNode(otherlv_13, grammarAccess.getTriggeredTransitionAccess().getRightCurlyBracketKeyword_12());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6593:1: (otherlv_14= 'action' ( (lv_action_15_0= ruleDetailCode ) ) )?
-            int alt140=2;
-            int LA140_0 = input.LA(1);
+            int alt141=2;
+            int LA141_0 = input.LA(1);
 
-            if ( (LA140_0==94) ) {
-                alt140=1;
+            if ( (LA141_0==94) ) {
+                alt141=1;
             }
-            switch (alt140) {
+            switch (alt141) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6593:3: otherlv_14= 'action' ( (lv_action_15_0= ruleDetailCode ) )
                     {
-                    otherlv_14=(Token)match(input,94,FOLLOW_94_in_ruleTriggeredTransition13536); 
+                    otherlv_14=(Token)match(input,94,FOLLOW_94_in_ruleTriggeredTransition13537); 
 
                         	newLeafNode(otherlv_14, grammarAccess.getTriggeredTransitionAccess().getActionKeyword_13_0());
                         
@@ -16411,7 +16422,7 @@
                      
                     	        newCompositeNode(grammarAccess.getTriggeredTransitionAccess().getActionDetailCodeParserRuleCall_13_1_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDetailCode_in_ruleTriggeredTransition13557);
+                    pushFollow(FOLLOW_ruleDetailCode_in_ruleTriggeredTransition13558);
                     lv_action_15_0=ruleDetailCode();
 
                     state._fsp--;
@@ -16439,7 +16450,7 @@
 
             }
 
-            otherlv_16=(Token)match(input,15,FOLLOW_15_in_ruleTriggeredTransition13571); 
+            otherlv_16=(Token)match(input,15,FOLLOW_15_in_ruleTriggeredTransition13572); 
 
                 	newLeafNode(otherlv_16, grammarAccess.getTriggeredTransitionAccess().getRightCurlyBracketKeyword_14());
                 
@@ -16476,13 +16487,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6629:2: iv_ruleGuardedTransition= ruleGuardedTransition EOF
             {
              newCompositeNode(grammarAccess.getGuardedTransitionRule()); 
-            pushFollow(FOLLOW_ruleGuardedTransition_in_entryRuleGuardedTransition13607);
+            pushFollow(FOLLOW_ruleGuardedTransition_in_entryRuleGuardedTransition13608);
             iv_ruleGuardedTransition=ruleGuardedTransition();
 
             state._fsp--;
 
              current =iv_ruleGuardedTransition; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleGuardedTransition13617); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleGuardedTransition13618); 
 
             }
 
@@ -16532,25 +16543,25 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6640:1: (otherlv_0= 'Transition' ( (lv_name_1_0= RULE_ID ) )? otherlv_2= ':' ( (lv_from_3_0= ruleTransitionTerminal ) ) otherlv_4= '->' ( (lv_to_5_0= ruleTransitionTerminal ) ) ( (lv_docu_6_0= ruleDocumentation ) )? otherlv_7= '{' otherlv_8= 'guard' ( (lv_guard_9_0= ruleDetailCode ) ) (otherlv_10= 'action' ( (lv_action_11_0= ruleDetailCode ) ) )? otherlv_12= '}' )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6640:3: otherlv_0= 'Transition' ( (lv_name_1_0= RULE_ID ) )? otherlv_2= ':' ( (lv_from_3_0= ruleTransitionTerminal ) ) otherlv_4= '->' ( (lv_to_5_0= ruleTransitionTerminal ) ) ( (lv_docu_6_0= ruleDocumentation ) )? otherlv_7= '{' otherlv_8= 'guard' ( (lv_guard_9_0= ruleDetailCode ) ) (otherlv_10= 'action' ( (lv_action_11_0= ruleDetailCode ) ) )? otherlv_12= '}'
             {
-            otherlv_0=(Token)match(input,92,FOLLOW_92_in_ruleGuardedTransition13654); 
+            otherlv_0=(Token)match(input,92,FOLLOW_92_in_ruleGuardedTransition13655); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getGuardedTransitionAccess().getTransitionKeyword_0());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6644:1: ( (lv_name_1_0= RULE_ID ) )?
-            int alt141=2;
-            int LA141_0 = input.LA(1);
+            int alt142=2;
+            int LA142_0 = input.LA(1);
 
-            if ( (LA141_0==RULE_ID) ) {
-                alt141=1;
+            if ( (LA142_0==RULE_ID) ) {
+                alt142=1;
             }
-            switch (alt141) {
+            switch (alt142) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6645:1: (lv_name_1_0= RULE_ID )
                     {
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6645:1: (lv_name_1_0= RULE_ID )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6646:3: lv_name_1_0= RULE_ID
                     {
-                    lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleGuardedTransition13671); 
+                    lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleGuardedTransition13672); 
 
                     			newLeafNode(lv_name_1_0, grammarAccess.getGuardedTransitionAccess().getNameIDTerminalRuleCall_1_0()); 
                     		
@@ -16573,7 +16584,7 @@
 
             }
 
-            otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleGuardedTransition13689); 
+            otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleGuardedTransition13690); 
 
                 	newLeafNode(otherlv_2, grammarAccess.getGuardedTransitionAccess().getColonKeyword_2());
                 
@@ -16586,7 +16597,7 @@
              
             	        newCompositeNode(grammarAccess.getGuardedTransitionAccess().getFromTransitionTerminalParserRuleCall_3_0()); 
             	    
-            pushFollow(FOLLOW_ruleTransitionTerminal_in_ruleGuardedTransition13710);
+            pushFollow(FOLLOW_ruleTransitionTerminal_in_ruleGuardedTransition13711);
             lv_from_3_0=ruleTransitionTerminal();
 
             state._fsp--;
@@ -16608,7 +16619,7 @@
 
             }
 
-            otherlv_4=(Token)match(input,19,FOLLOW_19_in_ruleGuardedTransition13722); 
+            otherlv_4=(Token)match(input,19,FOLLOW_19_in_ruleGuardedTransition13723); 
 
                 	newLeafNode(otherlv_4, grammarAccess.getGuardedTransitionAccess().getHyphenMinusGreaterThanSignKeyword_4());
                 
@@ -16621,7 +16632,7 @@
              
             	        newCompositeNode(grammarAccess.getGuardedTransitionAccess().getToTransitionTerminalParserRuleCall_5_0()); 
             	    
-            pushFollow(FOLLOW_ruleTransitionTerminal_in_ruleGuardedTransition13743);
+            pushFollow(FOLLOW_ruleTransitionTerminal_in_ruleGuardedTransition13744);
             lv_to_5_0=ruleTransitionTerminal();
 
             state._fsp--;
@@ -16644,13 +16655,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6706:2: ( (lv_docu_6_0= ruleDocumentation ) )?
-            int alt142=2;
-            int LA142_0 = input.LA(1);
+            int alt143=2;
+            int LA143_0 = input.LA(1);
 
-            if ( (LA142_0==34) ) {
-                alt142=1;
+            if ( (LA143_0==34) ) {
+                alt143=1;
             }
-            switch (alt142) {
+            switch (alt143) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6707:1: (lv_docu_6_0= ruleDocumentation )
                     {
@@ -16660,7 +16671,7 @@
                      
                     	        newCompositeNode(grammarAccess.getGuardedTransitionAccess().getDocuDocumentationParserRuleCall_6_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDocumentation_in_ruleGuardedTransition13764);
+                    pushFollow(FOLLOW_ruleDocumentation_in_ruleGuardedTransition13765);
                     lv_docu_6_0=ruleDocumentation();
 
                     state._fsp--;
@@ -16685,11 +16696,11 @@
 
             }
 
-            otherlv_7=(Token)match(input,14,FOLLOW_14_in_ruleGuardedTransition13777); 
+            otherlv_7=(Token)match(input,14,FOLLOW_14_in_ruleGuardedTransition13778); 
 
                 	newLeafNode(otherlv_7, grammarAccess.getGuardedTransitionAccess().getLeftCurlyBracketKeyword_7());
                 
-            otherlv_8=(Token)match(input,97,FOLLOW_97_in_ruleGuardedTransition13789); 
+            otherlv_8=(Token)match(input,97,FOLLOW_97_in_ruleGuardedTransition13790); 
 
                 	newLeafNode(otherlv_8, grammarAccess.getGuardedTransitionAccess().getGuardKeyword_8());
                 
@@ -16702,7 +16713,7 @@
              
             	        newCompositeNode(grammarAccess.getGuardedTransitionAccess().getGuardDetailCodeParserRuleCall_9_0()); 
             	    
-            pushFollow(FOLLOW_ruleDetailCode_in_ruleGuardedTransition13810);
+            pushFollow(FOLLOW_ruleDetailCode_in_ruleGuardedTransition13811);
             lv_guard_9_0=ruleDetailCode();
 
             state._fsp--;
@@ -16725,17 +16736,17 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6750:2: (otherlv_10= 'action' ( (lv_action_11_0= ruleDetailCode ) ) )?
-            int alt143=2;
-            int LA143_0 = input.LA(1);
+            int alt144=2;
+            int LA144_0 = input.LA(1);
 
-            if ( (LA143_0==94) ) {
-                alt143=1;
+            if ( (LA144_0==94) ) {
+                alt144=1;
             }
-            switch (alt143) {
+            switch (alt144) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6750:4: otherlv_10= 'action' ( (lv_action_11_0= ruleDetailCode ) )
                     {
-                    otherlv_10=(Token)match(input,94,FOLLOW_94_in_ruleGuardedTransition13823); 
+                    otherlv_10=(Token)match(input,94,FOLLOW_94_in_ruleGuardedTransition13824); 
 
                         	newLeafNode(otherlv_10, grammarAccess.getGuardedTransitionAccess().getActionKeyword_10_0());
                         
@@ -16748,7 +16759,7 @@
                      
                     	        newCompositeNode(grammarAccess.getGuardedTransitionAccess().getActionDetailCodeParserRuleCall_10_1_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDetailCode_in_ruleGuardedTransition13844);
+                    pushFollow(FOLLOW_ruleDetailCode_in_ruleGuardedTransition13845);
                     lv_action_11_0=ruleDetailCode();
 
                     state._fsp--;
@@ -16776,7 +16787,7 @@
 
             }
 
-            otherlv_12=(Token)match(input,15,FOLLOW_15_in_ruleGuardedTransition13858); 
+            otherlv_12=(Token)match(input,15,FOLLOW_15_in_ruleGuardedTransition13859); 
 
                 	newLeafNode(otherlv_12, grammarAccess.getGuardedTransitionAccess().getRightCurlyBracketKeyword_11());
                 
@@ -16813,13 +16824,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6786:2: iv_ruleCPBranchTransition= ruleCPBranchTransition EOF
             {
              newCompositeNode(grammarAccess.getCPBranchTransitionRule()); 
-            pushFollow(FOLLOW_ruleCPBranchTransition_in_entryRuleCPBranchTransition13894);
+            pushFollow(FOLLOW_ruleCPBranchTransition_in_entryRuleCPBranchTransition13895);
             iv_ruleCPBranchTransition=ruleCPBranchTransition();
 
             state._fsp--;
 
              current =iv_ruleCPBranchTransition; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleCPBranchTransition13904); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleCPBranchTransition13905); 
 
             }
 
@@ -16869,25 +16880,25 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6797:1: (otherlv_0= 'Transition' ( (lv_name_1_0= RULE_ID ) )? otherlv_2= ':' ( (lv_from_3_0= ruleTransitionTerminal ) ) otherlv_4= '->' ( (lv_to_5_0= ruleTransitionTerminal ) ) ( (lv_docu_6_0= ruleDocumentation ) )? otherlv_7= '{' otherlv_8= 'cond' ( (lv_condition_9_0= ruleDetailCode ) ) (otherlv_10= 'action' ( (lv_action_11_0= ruleDetailCode ) ) )? otherlv_12= '}' )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6797:3: otherlv_0= 'Transition' ( (lv_name_1_0= RULE_ID ) )? otherlv_2= ':' ( (lv_from_3_0= ruleTransitionTerminal ) ) otherlv_4= '->' ( (lv_to_5_0= ruleTransitionTerminal ) ) ( (lv_docu_6_0= ruleDocumentation ) )? otherlv_7= '{' otherlv_8= 'cond' ( (lv_condition_9_0= ruleDetailCode ) ) (otherlv_10= 'action' ( (lv_action_11_0= ruleDetailCode ) ) )? otherlv_12= '}'
             {
-            otherlv_0=(Token)match(input,92,FOLLOW_92_in_ruleCPBranchTransition13941); 
+            otherlv_0=(Token)match(input,92,FOLLOW_92_in_ruleCPBranchTransition13942); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getCPBranchTransitionAccess().getTransitionKeyword_0());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6801:1: ( (lv_name_1_0= RULE_ID ) )?
-            int alt144=2;
-            int LA144_0 = input.LA(1);
+            int alt145=2;
+            int LA145_0 = input.LA(1);
 
-            if ( (LA144_0==RULE_ID) ) {
-                alt144=1;
+            if ( (LA145_0==RULE_ID) ) {
+                alt145=1;
             }
-            switch (alt144) {
+            switch (alt145) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6802:1: (lv_name_1_0= RULE_ID )
                     {
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6802:1: (lv_name_1_0= RULE_ID )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6803:3: lv_name_1_0= RULE_ID
                     {
-                    lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleCPBranchTransition13958); 
+                    lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleCPBranchTransition13959); 
 
                     			newLeafNode(lv_name_1_0, grammarAccess.getCPBranchTransitionAccess().getNameIDTerminalRuleCall_1_0()); 
                     		
@@ -16910,7 +16921,7 @@
 
             }
 
-            otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleCPBranchTransition13976); 
+            otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleCPBranchTransition13977); 
 
                 	newLeafNode(otherlv_2, grammarAccess.getCPBranchTransitionAccess().getColonKeyword_2());
                 
@@ -16923,7 +16934,7 @@
              
             	        newCompositeNode(grammarAccess.getCPBranchTransitionAccess().getFromTransitionTerminalParserRuleCall_3_0()); 
             	    
-            pushFollow(FOLLOW_ruleTransitionTerminal_in_ruleCPBranchTransition13997);
+            pushFollow(FOLLOW_ruleTransitionTerminal_in_ruleCPBranchTransition13998);
             lv_from_3_0=ruleTransitionTerminal();
 
             state._fsp--;
@@ -16945,7 +16956,7 @@
 
             }
 
-            otherlv_4=(Token)match(input,19,FOLLOW_19_in_ruleCPBranchTransition14009); 
+            otherlv_4=(Token)match(input,19,FOLLOW_19_in_ruleCPBranchTransition14010); 
 
                 	newLeafNode(otherlv_4, grammarAccess.getCPBranchTransitionAccess().getHyphenMinusGreaterThanSignKeyword_4());
                 
@@ -16958,7 +16969,7 @@
              
             	        newCompositeNode(grammarAccess.getCPBranchTransitionAccess().getToTransitionTerminalParserRuleCall_5_0()); 
             	    
-            pushFollow(FOLLOW_ruleTransitionTerminal_in_ruleCPBranchTransition14030);
+            pushFollow(FOLLOW_ruleTransitionTerminal_in_ruleCPBranchTransition14031);
             lv_to_5_0=ruleTransitionTerminal();
 
             state._fsp--;
@@ -16981,13 +16992,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6863:2: ( (lv_docu_6_0= ruleDocumentation ) )?
-            int alt145=2;
-            int LA145_0 = input.LA(1);
+            int alt146=2;
+            int LA146_0 = input.LA(1);
 
-            if ( (LA145_0==34) ) {
-                alt145=1;
+            if ( (LA146_0==34) ) {
+                alt146=1;
             }
-            switch (alt145) {
+            switch (alt146) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6864:1: (lv_docu_6_0= ruleDocumentation )
                     {
@@ -16997,7 +17008,7 @@
                      
                     	        newCompositeNode(grammarAccess.getCPBranchTransitionAccess().getDocuDocumentationParserRuleCall_6_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDocumentation_in_ruleCPBranchTransition14051);
+                    pushFollow(FOLLOW_ruleDocumentation_in_ruleCPBranchTransition14052);
                     lv_docu_6_0=ruleDocumentation();
 
                     state._fsp--;
@@ -17022,11 +17033,11 @@
 
             }
 
-            otherlv_7=(Token)match(input,14,FOLLOW_14_in_ruleCPBranchTransition14064); 
+            otherlv_7=(Token)match(input,14,FOLLOW_14_in_ruleCPBranchTransition14065); 
 
                 	newLeafNode(otherlv_7, grammarAccess.getCPBranchTransitionAccess().getLeftCurlyBracketKeyword_7());
                 
-            otherlv_8=(Token)match(input,98,FOLLOW_98_in_ruleCPBranchTransition14076); 
+            otherlv_8=(Token)match(input,98,FOLLOW_98_in_ruleCPBranchTransition14077); 
 
                 	newLeafNode(otherlv_8, grammarAccess.getCPBranchTransitionAccess().getCondKeyword_8());
                 
@@ -17039,7 +17050,7 @@
              
             	        newCompositeNode(grammarAccess.getCPBranchTransitionAccess().getConditionDetailCodeParserRuleCall_9_0()); 
             	    
-            pushFollow(FOLLOW_ruleDetailCode_in_ruleCPBranchTransition14097);
+            pushFollow(FOLLOW_ruleDetailCode_in_ruleCPBranchTransition14098);
             lv_condition_9_0=ruleDetailCode();
 
             state._fsp--;
@@ -17062,17 +17073,17 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6907:2: (otherlv_10= 'action' ( (lv_action_11_0= ruleDetailCode ) ) )?
-            int alt146=2;
-            int LA146_0 = input.LA(1);
+            int alt147=2;
+            int LA147_0 = input.LA(1);
 
-            if ( (LA146_0==94) ) {
-                alt146=1;
+            if ( (LA147_0==94) ) {
+                alt147=1;
             }
-            switch (alt146) {
+            switch (alt147) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6907:4: otherlv_10= 'action' ( (lv_action_11_0= ruleDetailCode ) )
                     {
-                    otherlv_10=(Token)match(input,94,FOLLOW_94_in_ruleCPBranchTransition14110); 
+                    otherlv_10=(Token)match(input,94,FOLLOW_94_in_ruleCPBranchTransition14111); 
 
                         	newLeafNode(otherlv_10, grammarAccess.getCPBranchTransitionAccess().getActionKeyword_10_0());
                         
@@ -17085,7 +17096,7 @@
                      
                     	        newCompositeNode(grammarAccess.getCPBranchTransitionAccess().getActionDetailCodeParserRuleCall_10_1_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDetailCode_in_ruleCPBranchTransition14131);
+                    pushFollow(FOLLOW_ruleDetailCode_in_ruleCPBranchTransition14132);
                     lv_action_11_0=ruleDetailCode();
 
                     state._fsp--;
@@ -17113,7 +17124,7 @@
 
             }
 
-            otherlv_12=(Token)match(input,15,FOLLOW_15_in_ruleCPBranchTransition14145); 
+            otherlv_12=(Token)match(input,15,FOLLOW_15_in_ruleCPBranchTransition14146); 
 
                 	newLeafNode(otherlv_12, grammarAccess.getCPBranchTransitionAccess().getRightCurlyBracketKeyword_11());
                 
@@ -17150,13 +17161,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6943:2: iv_ruleRefinedTransition= ruleRefinedTransition EOF
             {
              newCompositeNode(grammarAccess.getRefinedTransitionRule()); 
-            pushFollow(FOLLOW_ruleRefinedTransition_in_entryRuleRefinedTransition14181);
+            pushFollow(FOLLOW_ruleRefinedTransition_in_entryRuleRefinedTransition14182);
             iv_ruleRefinedTransition=ruleRefinedTransition();
 
             state._fsp--;
 
              current =iv_ruleRefinedTransition; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleRefinedTransition14191); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleRefinedTransition14192); 
 
             }
 
@@ -17196,7 +17207,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6954:1: (otherlv_0= 'RefinedTransition' ( ( ruleFQN ) ) ( (lv_docu_2_0= ruleDocumentation ) )? otherlv_3= '{' otherlv_4= 'action' ( (lv_action_5_0= ruleDetailCode ) ) otherlv_6= '}' )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6954:3: otherlv_0= 'RefinedTransition' ( ( ruleFQN ) ) ( (lv_docu_2_0= ruleDocumentation ) )? otherlv_3= '{' otherlv_4= 'action' ( (lv_action_5_0= ruleDetailCode ) ) otherlv_6= '}'
             {
-            otherlv_0=(Token)match(input,99,FOLLOW_99_in_ruleRefinedTransition14228); 
+            otherlv_0=(Token)match(input,99,FOLLOW_99_in_ruleRefinedTransition14229); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getRefinedTransitionAccess().getRefinedTransitionKeyword_0());
                 
@@ -17214,7 +17225,7 @@
              
             	        newCompositeNode(grammarAccess.getRefinedTransitionAccess().getTargetTransitionCrossReference_1_0()); 
             	    
-            pushFollow(FOLLOW_ruleFQN_in_ruleRefinedTransition14251);
+            pushFollow(FOLLOW_ruleFQN_in_ruleRefinedTransition14252);
             ruleFQN();
 
             state._fsp--;
@@ -17229,13 +17240,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6973:2: ( (lv_docu_2_0= ruleDocumentation ) )?
-            int alt147=2;
-            int LA147_0 = input.LA(1);
+            int alt148=2;
+            int LA148_0 = input.LA(1);
 
-            if ( (LA147_0==34) ) {
-                alt147=1;
+            if ( (LA148_0==34) ) {
+                alt148=1;
             }
-            switch (alt147) {
+            switch (alt148) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:6974:1: (lv_docu_2_0= ruleDocumentation )
                     {
@@ -17245,7 +17256,7 @@
                      
                     	        newCompositeNode(grammarAccess.getRefinedTransitionAccess().getDocuDocumentationParserRuleCall_2_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDocumentation_in_ruleRefinedTransition14272);
+                    pushFollow(FOLLOW_ruleDocumentation_in_ruleRefinedTransition14273);
                     lv_docu_2_0=ruleDocumentation();
 
                     state._fsp--;
@@ -17270,11 +17281,11 @@
 
             }
 
-            otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleRefinedTransition14285); 
+            otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleRefinedTransition14286); 
 
                 	newLeafNode(otherlv_3, grammarAccess.getRefinedTransitionAccess().getLeftCurlyBracketKeyword_3());
                 
-            otherlv_4=(Token)match(input,94,FOLLOW_94_in_ruleRefinedTransition14297); 
+            otherlv_4=(Token)match(input,94,FOLLOW_94_in_ruleRefinedTransition14298); 
 
                 	newLeafNode(otherlv_4, grammarAccess.getRefinedTransitionAccess().getActionKeyword_4());
                 
@@ -17287,7 +17298,7 @@
              
             	        newCompositeNode(grammarAccess.getRefinedTransitionAccess().getActionDetailCodeParserRuleCall_5_0()); 
             	    
-            pushFollow(FOLLOW_ruleDetailCode_in_ruleRefinedTransition14318);
+            pushFollow(FOLLOW_ruleDetailCode_in_ruleRefinedTransition14319);
             lv_action_5_0=ruleDetailCode();
 
             state._fsp--;
@@ -17309,7 +17320,7 @@
 
             }
 
-            otherlv_6=(Token)match(input,15,FOLLOW_15_in_ruleRefinedTransition14330); 
+            otherlv_6=(Token)match(input,15,FOLLOW_15_in_ruleRefinedTransition14331); 
 
                 	newLeafNode(otherlv_6, grammarAccess.getRefinedTransitionAccess().getRightCurlyBracketKeyword_6());
                 
@@ -17346,13 +17357,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7031:2: iv_ruleTransitionTerminal= ruleTransitionTerminal EOF
             {
              newCompositeNode(grammarAccess.getTransitionTerminalRule()); 
-            pushFollow(FOLLOW_ruleTransitionTerminal_in_entryRuleTransitionTerminal14366);
+            pushFollow(FOLLOW_ruleTransitionTerminal_in_entryRuleTransitionTerminal14367);
             iv_ruleTransitionTerminal=ruleTransitionTerminal();
 
             state._fsp--;
 
              current =iv_ruleTransitionTerminal; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTransitionTerminal14376); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleTransitionTerminal14377); 
 
             }
 
@@ -17390,21 +17401,21 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7042:1: (this_StateTerminal_0= ruleStateTerminal | this_TrPointTerminal_1= ruleTrPointTerminal | this_SubStateTrPointTerminal_2= ruleSubStateTrPointTerminal | this_ChoicepointTerminal_3= ruleChoicepointTerminal )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7042:1: (this_StateTerminal_0= ruleStateTerminal | this_TrPointTerminal_1= ruleTrPointTerminal | this_SubStateTrPointTerminal_2= ruleSubStateTrPointTerminal | this_ChoicepointTerminal_3= ruleChoicepointTerminal )
-            int alt148=4;
+            int alt149=4;
             switch ( input.LA(1) ) {
             case RULE_ID:
                 {
-                int LA148_1 = input.LA(2);
+                int LA149_1 = input.LA(2);
 
-                if ( (LA148_1==24) ) {
-                    alt148=3;
+                if ( (LA149_1==24) ) {
+                    alt149=3;
                 }
-                else if ( (LA148_1==EOF||(LA148_1>=14 && LA148_1<=15)||LA148_1==19||LA148_1==34||LA148_1==81||(LA148_1>=86 && LA148_1<=92)||LA148_1==99) ) {
-                    alt148=1;
+                else if ( (LA149_1==EOF||(LA149_1>=14 && LA149_1<=15)||LA149_1==19||LA149_1==34||LA149_1==81||(LA149_1>=86 && LA149_1<=92)||LA149_1==99) ) {
+                    alt149=1;
                 }
                 else {
                     NoViableAltException nvae =
-                        new NoViableAltException("", 148, 1, input);
+                        new NoViableAltException("", 149, 1, input);
 
                     throw nvae;
                 }
@@ -17412,29 +17423,29 @@
                 break;
             case 100:
                 {
-                alt148=2;
+                alt149=2;
                 }
                 break;
             case 101:
                 {
-                alt148=4;
+                alt149=4;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 148, 0, input);
+                    new NoViableAltException("", 149, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt148) {
+            switch (alt149) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7043:5: this_StateTerminal_0= ruleStateTerminal
                     {
                      
                             newCompositeNode(grammarAccess.getTransitionTerminalAccess().getStateTerminalParserRuleCall_0()); 
                         
-                    pushFollow(FOLLOW_ruleStateTerminal_in_ruleTransitionTerminal14423);
+                    pushFollow(FOLLOW_ruleStateTerminal_in_ruleTransitionTerminal14424);
                     this_StateTerminal_0=ruleStateTerminal();
 
                     state._fsp--;
@@ -17452,7 +17463,7 @@
                      
                             newCompositeNode(grammarAccess.getTransitionTerminalAccess().getTrPointTerminalParserRuleCall_1()); 
                         
-                    pushFollow(FOLLOW_ruleTrPointTerminal_in_ruleTransitionTerminal14450);
+                    pushFollow(FOLLOW_ruleTrPointTerminal_in_ruleTransitionTerminal14451);
                     this_TrPointTerminal_1=ruleTrPointTerminal();
 
                     state._fsp--;
@@ -17470,7 +17481,7 @@
                      
                             newCompositeNode(grammarAccess.getTransitionTerminalAccess().getSubStateTrPointTerminalParserRuleCall_2()); 
                         
-                    pushFollow(FOLLOW_ruleSubStateTrPointTerminal_in_ruleTransitionTerminal14477);
+                    pushFollow(FOLLOW_ruleSubStateTrPointTerminal_in_ruleTransitionTerminal14478);
                     this_SubStateTrPointTerminal_2=ruleSubStateTrPointTerminal();
 
                     state._fsp--;
@@ -17488,7 +17499,7 @@
                      
                             newCompositeNode(grammarAccess.getTransitionTerminalAccess().getChoicepointTerminalParserRuleCall_3()); 
                         
-                    pushFollow(FOLLOW_ruleChoicepointTerminal_in_ruleTransitionTerminal14504);
+                    pushFollow(FOLLOW_ruleChoicepointTerminal_in_ruleTransitionTerminal14505);
                     this_ChoicepointTerminal_3=ruleChoicepointTerminal();
 
                     state._fsp--;
@@ -17533,13 +17544,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7091:2: iv_ruleStateTerminal= ruleStateTerminal EOF
             {
              newCompositeNode(grammarAccess.getStateTerminalRule()); 
-            pushFollow(FOLLOW_ruleStateTerminal_in_entryRuleStateTerminal14539);
+            pushFollow(FOLLOW_ruleStateTerminal_in_entryRuleStateTerminal14540);
             iv_ruleStateTerminal=ruleStateTerminal();
 
             state._fsp--;
 
              current =iv_ruleStateTerminal; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleStateTerminal14549); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleStateTerminal14550); 
 
             }
 
@@ -17580,7 +17591,7 @@
             	            current = createModelElement(grammarAccess.getStateTerminalRule());
             	        }
                     
-            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleStateTerminal14593); 
+            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleStateTerminal14594); 
 
             		newLeafNode(otherlv_0, grammarAccess.getStateTerminalAccess().getStateStateCrossReference_0()); 
             	
@@ -17620,13 +17631,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7125:2: iv_ruleTrPointTerminal= ruleTrPointTerminal EOF
             {
              newCompositeNode(grammarAccess.getTrPointTerminalRule()); 
-            pushFollow(FOLLOW_ruleTrPointTerminal_in_entryRuleTrPointTerminal14628);
+            pushFollow(FOLLOW_ruleTrPointTerminal_in_entryRuleTrPointTerminal14629);
             iv_ruleTrPointTerminal=ruleTrPointTerminal();
 
             state._fsp--;
 
              current =iv_ruleTrPointTerminal; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTrPointTerminal14638); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleTrPointTerminal14639); 
 
             }
 
@@ -17660,7 +17671,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7136:1: (otherlv_0= 'my' ( (otherlv_1= RULE_ID ) ) )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7136:3: otherlv_0= 'my' ( (otherlv_1= RULE_ID ) )
             {
-            otherlv_0=(Token)match(input,100,FOLLOW_100_in_ruleTrPointTerminal14675); 
+            otherlv_0=(Token)match(input,100,FOLLOW_100_in_ruleTrPointTerminal14676); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getTrPointTerminalAccess().getMyKeyword_0());
                 
@@ -17675,7 +17686,7 @@
             	            current = createModelElement(grammarAccess.getTrPointTerminalRule());
             	        }
                     
-            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTrPointTerminal14695); 
+            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTrPointTerminal14696); 
 
             		newLeafNode(otherlv_1, grammarAccess.getTrPointTerminalAccess().getTrPointTrPointCrossReference_1_0()); 
             	
@@ -17718,13 +17729,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7163:2: iv_ruleSubStateTrPointTerminal= ruleSubStateTrPointTerminal EOF
             {
              newCompositeNode(grammarAccess.getSubStateTrPointTerminalRule()); 
-            pushFollow(FOLLOW_ruleSubStateTrPointTerminal_in_entryRuleSubStateTrPointTerminal14731);
+            pushFollow(FOLLOW_ruleSubStateTrPointTerminal_in_entryRuleSubStateTrPointTerminal14732);
             iv_ruleSubStateTrPointTerminal=ruleSubStateTrPointTerminal();
 
             state._fsp--;
 
              current =iv_ruleSubStateTrPointTerminal; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleSubStateTrPointTerminal14741); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleSubStateTrPointTerminal14742); 
 
             }
 
@@ -17770,7 +17781,7 @@
             	            current = createModelElement(grammarAccess.getSubStateTrPointTerminalRule());
             	        }
                     
-            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSubStateTrPointTerminal14786); 
+            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSubStateTrPointTerminal14787); 
 
             		newLeafNode(otherlv_0, grammarAccess.getSubStateTrPointTerminalAccess().getTrPointTrPointCrossReference_0_0()); 
             	
@@ -17780,7 +17791,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,24,FOLLOW_24_in_ruleSubStateTrPointTerminal14798); 
+            otherlv_1=(Token)match(input,24,FOLLOW_24_in_ruleSubStateTrPointTerminal14799); 
 
                 	newLeafNode(otherlv_1, grammarAccess.getSubStateTrPointTerminalAccess().getOfKeyword_1());
                 
@@ -17795,7 +17806,7 @@
             	            current = createModelElement(grammarAccess.getSubStateTrPointTerminalRule());
             	        }
                     
-            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSubStateTrPointTerminal14818); 
+            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSubStateTrPointTerminal14819); 
 
             		newLeafNode(otherlv_2, grammarAccess.getSubStateTrPointTerminalAccess().getStateStateCrossReference_2_0()); 
             	
@@ -17838,13 +17849,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7214:2: iv_ruleChoicepointTerminal= ruleChoicepointTerminal EOF
             {
              newCompositeNode(grammarAccess.getChoicepointTerminalRule()); 
-            pushFollow(FOLLOW_ruleChoicepointTerminal_in_entryRuleChoicepointTerminal14854);
+            pushFollow(FOLLOW_ruleChoicepointTerminal_in_entryRuleChoicepointTerminal14855);
             iv_ruleChoicepointTerminal=ruleChoicepointTerminal();
 
             state._fsp--;
 
              current =iv_ruleChoicepointTerminal; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleChoicepointTerminal14864); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleChoicepointTerminal14865); 
 
             }
 
@@ -17878,7 +17889,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7225:1: (otherlv_0= 'cp' ( (otherlv_1= RULE_ID ) ) )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7225:3: otherlv_0= 'cp' ( (otherlv_1= RULE_ID ) )
             {
-            otherlv_0=(Token)match(input,101,FOLLOW_101_in_ruleChoicepointTerminal14901); 
+            otherlv_0=(Token)match(input,101,FOLLOW_101_in_ruleChoicepointTerminal14902); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getChoicepointTerminalAccess().getCpKeyword_0());
                 
@@ -17893,7 +17904,7 @@
             	            current = createModelElement(grammarAccess.getChoicepointTerminalRule());
             	        }
                     
-            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleChoicepointTerminal14921); 
+            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleChoicepointTerminal14922); 
 
             		newLeafNode(otherlv_1, grammarAccess.getChoicepointTerminalAccess().getCpChoicePointCrossReference_1_0()); 
             	
@@ -17936,13 +17947,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7252:2: iv_ruleTrigger= ruleTrigger EOF
             {
              newCompositeNode(grammarAccess.getTriggerRule()); 
-            pushFollow(FOLLOW_ruleTrigger_in_entryRuleTrigger14957);
+            pushFollow(FOLLOW_ruleTrigger_in_entryRuleTrigger14958);
             iv_ruleTrigger=ruleTrigger();
 
             state._fsp--;
 
              current =iv_ruleTrigger; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleTrigger14967); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleTrigger14968); 
 
             }
 
@@ -17983,7 +17994,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7263:1: (otherlv_0= '<' ( (lv_msgFromIfPairs_1_0= ruleMessageFromIf ) ) (otherlv_2= '|' ( (lv_msgFromIfPairs_3_0= ruleMessageFromIf ) ) )* ( (lv_guard_4_0= ruleGuard ) )? otherlv_5= '>' )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7263:3: otherlv_0= '<' ( (lv_msgFromIfPairs_1_0= ruleMessageFromIf ) ) (otherlv_2= '|' ( (lv_msgFromIfPairs_3_0= ruleMessageFromIf ) ) )* ( (lv_guard_4_0= ruleGuard ) )? otherlv_5= '>'
             {
-            otherlv_0=(Token)match(input,102,FOLLOW_102_in_ruleTrigger15004); 
+            otherlv_0=(Token)match(input,102,FOLLOW_102_in_ruleTrigger15005); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getTriggerAccess().getLessThanSignKeyword_0());
                 
@@ -17996,7 +18007,7 @@
              
             	        newCompositeNode(grammarAccess.getTriggerAccess().getMsgFromIfPairsMessageFromIfParserRuleCall_1_0()); 
             	    
-            pushFollow(FOLLOW_ruleMessageFromIf_in_ruleTrigger15025);
+            pushFollow(FOLLOW_ruleMessageFromIf_in_ruleTrigger15026);
             lv_msgFromIfPairs_1_0=ruleMessageFromIf();
 
             state._fsp--;
@@ -18019,21 +18030,21 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7285:2: (otherlv_2= '|' ( (lv_msgFromIfPairs_3_0= ruleMessageFromIf ) ) )*
-            loop149:
+            loop150:
             do {
-                int alt149=2;
-                int LA149_0 = input.LA(1);
+                int alt150=2;
+                int LA150_0 = input.LA(1);
 
-                if ( (LA149_0==103) ) {
-                    alt149=1;
+                if ( (LA150_0==103) ) {
+                    alt150=1;
                 }
 
 
-                switch (alt149) {
+                switch (alt150) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7285:4: otherlv_2= '|' ( (lv_msgFromIfPairs_3_0= ruleMessageFromIf ) )
             	    {
-            	    otherlv_2=(Token)match(input,103,FOLLOW_103_in_ruleTrigger15038); 
+            	    otherlv_2=(Token)match(input,103,FOLLOW_103_in_ruleTrigger15039); 
 
             	        	newLeafNode(otherlv_2, grammarAccess.getTriggerAccess().getVerticalLineKeyword_2_0());
             	        
@@ -18046,7 +18057,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getTriggerAccess().getMsgFromIfPairsMessageFromIfParserRuleCall_2_1_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleMessageFromIf_in_ruleTrigger15059);
+            	    pushFollow(FOLLOW_ruleMessageFromIf_in_ruleTrigger15060);
             	    lv_msgFromIfPairs_3_0=ruleMessageFromIf();
 
             	    state._fsp--;
@@ -18073,18 +18084,18 @@
             	    break;
 
             	default :
-            	    break loop149;
+            	    break loop150;
                 }
             } while (true);
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7307:4: ( (lv_guard_4_0= ruleGuard ) )?
-            int alt150=2;
-            int LA150_0 = input.LA(1);
+            int alt151=2;
+            int LA151_0 = input.LA(1);
 
-            if ( (LA150_0==97) ) {
-                alt150=1;
+            if ( (LA151_0==97) ) {
+                alt151=1;
             }
-            switch (alt150) {
+            switch (alt151) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7308:1: (lv_guard_4_0= ruleGuard )
                     {
@@ -18094,7 +18105,7 @@
                      
                     	        newCompositeNode(grammarAccess.getTriggerAccess().getGuardGuardParserRuleCall_3_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleGuard_in_ruleTrigger15082);
+                    pushFollow(FOLLOW_ruleGuard_in_ruleTrigger15083);
                     lv_guard_4_0=ruleGuard();
 
                     state._fsp--;
@@ -18119,7 +18130,7 @@
 
             }
 
-            otherlv_5=(Token)match(input,104,FOLLOW_104_in_ruleTrigger15095); 
+            otherlv_5=(Token)match(input,104,FOLLOW_104_in_ruleTrigger15096); 
 
                 	newLeafNode(otherlv_5, grammarAccess.getTriggerAccess().getGreaterThanSignKeyword_4());
                 
@@ -18156,13 +18167,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7339:2: iv_ruleMessageFromIf= ruleMessageFromIf EOF
             {
              newCompositeNode(grammarAccess.getMessageFromIfRule()); 
-            pushFollow(FOLLOW_ruleMessageFromIf_in_entryRuleMessageFromIf15131);
+            pushFollow(FOLLOW_ruleMessageFromIf_in_entryRuleMessageFromIf15132);
             iv_ruleMessageFromIf=ruleMessageFromIf();
 
             state._fsp--;
 
              current =iv_ruleMessageFromIf; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleMessageFromIf15141); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleMessageFromIf15142); 
 
             }
 
@@ -18208,7 +18219,7 @@
             	            current = createModelElement(grammarAccess.getMessageFromIfRule());
             	        }
                     
-            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMessageFromIf15186); 
+            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMessageFromIf15187); 
 
             		newLeafNode(otherlv_0, grammarAccess.getMessageFromIfAccess().getMessageEObjectCrossReference_0_0()); 
             	
@@ -18218,7 +18229,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,16,FOLLOW_16_in_ruleMessageFromIf15198); 
+            otherlv_1=(Token)match(input,16,FOLLOW_16_in_ruleMessageFromIf15199); 
 
                 	newLeafNode(otherlv_1, grammarAccess.getMessageFromIfAccess().getColonKeyword_1());
                 
@@ -18233,7 +18244,7 @@
             	            current = createModelElement(grammarAccess.getMessageFromIfRule());
             	        }
                     
-            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMessageFromIf15218); 
+            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMessageFromIf15219); 
 
             		newLeafNode(otherlv_2, grammarAccess.getMessageFromIfAccess().getFromAbstractInterfaceItemCrossReference_2_0()); 
             	
@@ -18276,13 +18287,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7390:2: iv_ruleGuard= ruleGuard EOF
             {
              newCompositeNode(grammarAccess.getGuardRule()); 
-            pushFollow(FOLLOW_ruleGuard_in_entryRuleGuard15254);
+            pushFollow(FOLLOW_ruleGuard_in_entryRuleGuard15255);
             iv_ruleGuard=ruleGuard();
 
             state._fsp--;
 
              current =iv_ruleGuard; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleGuard15264); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleGuard15265); 
 
             }
 
@@ -18317,7 +18328,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7401:1: (otherlv_0= 'guard' ( (lv_guard_1_0= ruleDetailCode ) ) )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7401:3: otherlv_0= 'guard' ( (lv_guard_1_0= ruleDetailCode ) )
             {
-            otherlv_0=(Token)match(input,97,FOLLOW_97_in_ruleGuard15301); 
+            otherlv_0=(Token)match(input,97,FOLLOW_97_in_ruleGuard15302); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getGuardAccess().getGuardKeyword_0());
                 
@@ -18330,7 +18341,7 @@
              
             	        newCompositeNode(grammarAccess.getGuardAccess().getGuardDetailCodeParserRuleCall_1_0()); 
             	    
-            pushFollow(FOLLOW_ruleDetailCode_in_ruleGuard15322);
+            pushFollow(FOLLOW_ruleDetailCode_in_ruleGuard15323);
             lv_guard_1_0=ruleDetailCode();
 
             state._fsp--;
@@ -18385,13 +18396,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7433:2: iv_ruleProtocolSemantics= ruleProtocolSemantics EOF
             {
              newCompositeNode(grammarAccess.getProtocolSemanticsRule()); 
-            pushFollow(FOLLOW_ruleProtocolSemantics_in_entryRuleProtocolSemantics15358);
+            pushFollow(FOLLOW_ruleProtocolSemantics_in_entryRuleProtocolSemantics15359);
             iv_ruleProtocolSemantics=ruleProtocolSemantics();
 
             state._fsp--;
 
              current =iv_ruleProtocolSemantics; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleProtocolSemantics15368); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleProtocolSemantics15369); 
 
             }
 
@@ -18439,26 +18450,26 @@
 
             }
 
-            otherlv_1=(Token)match(input,105,FOLLOW_105_in_ruleProtocolSemantics15414); 
+            otherlv_1=(Token)match(input,105,FOLLOW_105_in_ruleProtocolSemantics15415); 
 
                 	newLeafNode(otherlv_1, grammarAccess.getProtocolSemanticsAccess().getSemanticsKeyword_1());
                 
-            otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleProtocolSemantics15426); 
+            otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleProtocolSemantics15427); 
 
                 	newLeafNode(otherlv_2, grammarAccess.getProtocolSemanticsAccess().getLeftCurlyBracketKeyword_2());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7458:1: ( (lv_rules_3_0= ruleSemanticsRule ) )*
-            loop151:
+            loop152:
             do {
-                int alt151=2;
-                int LA151_0 = input.LA(1);
+                int alt152=2;
+                int LA152_0 = input.LA(1);
 
-                if ( ((LA151_0>=106 && LA151_0<=107)) ) {
-                    alt151=1;
+                if ( ((LA152_0>=106 && LA152_0<=107)) ) {
+                    alt152=1;
                 }
 
 
-                switch (alt151) {
+                switch (alt152) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7459:1: (lv_rules_3_0= ruleSemanticsRule )
             	    {
@@ -18468,7 +18479,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getProtocolSemanticsAccess().getRulesSemanticsRuleParserRuleCall_3_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleSemanticsRule_in_ruleProtocolSemantics15447);
+            	    pushFollow(FOLLOW_ruleSemanticsRule_in_ruleProtocolSemantics15448);
             	    lv_rules_3_0=ruleSemanticsRule();
 
             	    state._fsp--;
@@ -18492,11 +18503,11 @@
             	    break;
 
             	default :
-            	    break loop151;
+            	    break loop152;
                 }
             } while (true);
 
-            otherlv_4=(Token)match(input,15,FOLLOW_15_in_ruleProtocolSemantics15460); 
+            otherlv_4=(Token)match(input,15,FOLLOW_15_in_ruleProtocolSemantics15461); 
 
                 	newLeafNode(otherlv_4, grammarAccess.getProtocolSemanticsAccess().getRightCurlyBracketKeyword_4());
                 
@@ -18533,13 +18544,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7490:2: iv_ruleSemanticsRule= ruleSemanticsRule EOF
             {
              newCompositeNode(grammarAccess.getSemanticsRuleRule()); 
-            pushFollow(FOLLOW_ruleSemanticsRule_in_entryRuleSemanticsRule15496);
+            pushFollow(FOLLOW_ruleSemanticsRule_in_entryRuleSemanticsRule15497);
             iv_ruleSemanticsRule=ruleSemanticsRule();
 
             state._fsp--;
 
              current =iv_ruleSemanticsRule; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleSemanticsRule15506); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleSemanticsRule15507); 
 
             }
 
@@ -18573,29 +18584,29 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7501:1: (this_InSemanticsRule_0= ruleInSemanticsRule | this_OutSemanticsRule_1= ruleOutSemanticsRule )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7501:1: (this_InSemanticsRule_0= ruleInSemanticsRule | this_OutSemanticsRule_1= ruleOutSemanticsRule )
-            int alt152=2;
-            int LA152_0 = input.LA(1);
+            int alt153=2;
+            int LA153_0 = input.LA(1);
 
-            if ( (LA152_0==106) ) {
-                alt152=1;
+            if ( (LA153_0==106) ) {
+                alt153=1;
             }
-            else if ( (LA152_0==107) ) {
-                alt152=2;
+            else if ( (LA153_0==107) ) {
+                alt153=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 152, 0, input);
+                    new NoViableAltException("", 153, 0, input);
 
                 throw nvae;
             }
-            switch (alt152) {
+            switch (alt153) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7502:5: this_InSemanticsRule_0= ruleInSemanticsRule
                     {
                      
                             newCompositeNode(grammarAccess.getSemanticsRuleAccess().getInSemanticsRuleParserRuleCall_0()); 
                         
-                    pushFollow(FOLLOW_ruleInSemanticsRule_in_ruleSemanticsRule15553);
+                    pushFollow(FOLLOW_ruleInSemanticsRule_in_ruleSemanticsRule15554);
                     this_InSemanticsRule_0=ruleInSemanticsRule();
 
                     state._fsp--;
@@ -18613,7 +18624,7 @@
                      
                             newCompositeNode(grammarAccess.getSemanticsRuleAccess().getOutSemanticsRuleParserRuleCall_1()); 
                         
-                    pushFollow(FOLLOW_ruleOutSemanticsRule_in_ruleSemanticsRule15580);
+                    pushFollow(FOLLOW_ruleOutSemanticsRule_in_ruleSemanticsRule15581);
                     this_OutSemanticsRule_1=ruleOutSemanticsRule();
 
                     state._fsp--;
@@ -18658,13 +18669,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7530:2: iv_ruleInSemanticsRule= ruleInSemanticsRule EOF
             {
              newCompositeNode(grammarAccess.getInSemanticsRuleRule()); 
-            pushFollow(FOLLOW_ruleInSemanticsRule_in_entryRuleInSemanticsRule15615);
+            pushFollow(FOLLOW_ruleInSemanticsRule_in_entryRuleInSemanticsRule15616);
             iv_ruleInSemanticsRule=ruleInSemanticsRule();
 
             state._fsp--;
 
              current =iv_ruleInSemanticsRule; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleInSemanticsRule15625); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleInSemanticsRule15626); 
 
             }
 
@@ -18709,11 +18720,11 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7541:1: (otherlv_0= 'in' otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) (otherlv_3= '->' ( ( (lv_followUps_4_0= ruleSemanticsRule ) ) | (otherlv_5= '(' ( (lv_followUps_6_0= ruleSemanticsRule ) ) (otherlv_7= ',' ( (lv_followUps_8_0= ruleSemanticsRule ) ) )+ otherlv_9= ')' ) ) )? )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7541:3: otherlv_0= 'in' otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) (otherlv_3= '->' ( ( (lv_followUps_4_0= ruleSemanticsRule ) ) | (otherlv_5= '(' ( (lv_followUps_6_0= ruleSemanticsRule ) ) (otherlv_7= ',' ( (lv_followUps_8_0= ruleSemanticsRule ) ) )+ otherlv_9= ')' ) ) )?
             {
-            otherlv_0=(Token)match(input,106,FOLLOW_106_in_ruleInSemanticsRule15662); 
+            otherlv_0=(Token)match(input,106,FOLLOW_106_in_ruleInSemanticsRule15663); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getInSemanticsRuleAccess().getInKeyword_0());
                 
-            otherlv_1=(Token)match(input,16,FOLLOW_16_in_ruleInSemanticsRule15674); 
+            otherlv_1=(Token)match(input,16,FOLLOW_16_in_ruleInSemanticsRule15675); 
 
                 	newLeafNode(otherlv_1, grammarAccess.getInSemanticsRuleAccess().getColonKeyword_1());
                 
@@ -18728,7 +18739,7 @@
             	            current = createModelElement(grammarAccess.getInSemanticsRuleRule());
             	        }
                     
-            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleInSemanticsRule15694); 
+            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleInSemanticsRule15695); 
 
             		newLeafNode(otherlv_2, grammarAccess.getInSemanticsRuleAccess().getMsgEObjectCrossReference_2_0()); 
             	
@@ -18739,37 +18750,37 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7562:2: (otherlv_3= '->' ( ( (lv_followUps_4_0= ruleSemanticsRule ) ) | (otherlv_5= '(' ( (lv_followUps_6_0= ruleSemanticsRule ) ) (otherlv_7= ',' ( (lv_followUps_8_0= ruleSemanticsRule ) ) )+ otherlv_9= ')' ) ) )?
-            int alt155=2;
-            int LA155_0 = input.LA(1);
+            int alt156=2;
+            int LA156_0 = input.LA(1);
 
-            if ( (LA155_0==19) ) {
-                alt155=1;
+            if ( (LA156_0==19) ) {
+                alt156=1;
             }
-            switch (alt155) {
+            switch (alt156) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7562:4: otherlv_3= '->' ( ( (lv_followUps_4_0= ruleSemanticsRule ) ) | (otherlv_5= '(' ( (lv_followUps_6_0= ruleSemanticsRule ) ) (otherlv_7= ',' ( (lv_followUps_8_0= ruleSemanticsRule ) ) )+ otherlv_9= ')' ) )
                     {
-                    otherlv_3=(Token)match(input,19,FOLLOW_19_in_ruleInSemanticsRule15707); 
+                    otherlv_3=(Token)match(input,19,FOLLOW_19_in_ruleInSemanticsRule15708); 
 
                         	newLeafNode(otherlv_3, grammarAccess.getInSemanticsRuleAccess().getHyphenMinusGreaterThanSignKeyword_3_0());
                         
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7566:1: ( ( (lv_followUps_4_0= ruleSemanticsRule ) ) | (otherlv_5= '(' ( (lv_followUps_6_0= ruleSemanticsRule ) ) (otherlv_7= ',' ( (lv_followUps_8_0= ruleSemanticsRule ) ) )+ otherlv_9= ')' ) )
-                    int alt154=2;
-                    int LA154_0 = input.LA(1);
+                    int alt155=2;
+                    int LA155_0 = input.LA(1);
 
-                    if ( ((LA154_0>=106 && LA154_0<=107)) ) {
-                        alt154=1;
+                    if ( ((LA155_0>=106 && LA155_0<=107)) ) {
+                        alt155=1;
                     }
-                    else if ( (LA154_0==20) ) {
-                        alt154=2;
+                    else if ( (LA155_0==20) ) {
+                        alt155=2;
                     }
                     else {
                         NoViableAltException nvae =
-                            new NoViableAltException("", 154, 0, input);
+                            new NoViableAltException("", 155, 0, input);
 
                         throw nvae;
                     }
-                    switch (alt154) {
+                    switch (alt155) {
                         case 1 :
                             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7566:2: ( (lv_followUps_4_0= ruleSemanticsRule ) )
                             {
@@ -18782,7 +18793,7 @@
                              
                             	        newCompositeNode(grammarAccess.getInSemanticsRuleAccess().getFollowUpsSemanticsRuleParserRuleCall_3_1_0_0()); 
                             	    
-                            pushFollow(FOLLOW_ruleSemanticsRule_in_ruleInSemanticsRule15729);
+                            pushFollow(FOLLOW_ruleSemanticsRule_in_ruleInSemanticsRule15730);
                             lv_followUps_4_0=ruleSemanticsRule();
 
                             state._fsp--;
@@ -18813,7 +18824,7 @@
                             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7585:6: (otherlv_5= '(' ( (lv_followUps_6_0= ruleSemanticsRule ) ) (otherlv_7= ',' ( (lv_followUps_8_0= ruleSemanticsRule ) ) )+ otherlv_9= ')' )
                             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7585:8: otherlv_5= '(' ( (lv_followUps_6_0= ruleSemanticsRule ) ) (otherlv_7= ',' ( (lv_followUps_8_0= ruleSemanticsRule ) ) )+ otherlv_9= ')'
                             {
-                            otherlv_5=(Token)match(input,20,FOLLOW_20_in_ruleInSemanticsRule15748); 
+                            otherlv_5=(Token)match(input,20,FOLLOW_20_in_ruleInSemanticsRule15749); 
 
                                 	newLeafNode(otherlv_5, grammarAccess.getInSemanticsRuleAccess().getLeftParenthesisKeyword_3_1_1_0());
                                 
@@ -18826,7 +18837,7 @@
                              
                             	        newCompositeNode(grammarAccess.getInSemanticsRuleAccess().getFollowUpsSemanticsRuleParserRuleCall_3_1_1_1_0()); 
                             	    
-                            pushFollow(FOLLOW_ruleSemanticsRule_in_ruleInSemanticsRule15769);
+                            pushFollow(FOLLOW_ruleSemanticsRule_in_ruleInSemanticsRule15770);
                             lv_followUps_6_0=ruleSemanticsRule();
 
                             state._fsp--;
@@ -18849,22 +18860,22 @@
                             }
 
                             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7607:2: (otherlv_7= ',' ( (lv_followUps_8_0= ruleSemanticsRule ) ) )+
-                            int cnt153=0;
-                            loop153:
+                            int cnt154=0;
+                            loop154:
                             do {
-                                int alt153=2;
-                                int LA153_0 = input.LA(1);
+                                int alt154=2;
+                                int LA154_0 = input.LA(1);
 
-                                if ( (LA153_0==25) ) {
-                                    alt153=1;
+                                if ( (LA154_0==25) ) {
+                                    alt154=1;
                                 }
 
 
-                                switch (alt153) {
+                                switch (alt154) {
                             	case 1 :
                             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7607:4: otherlv_7= ',' ( (lv_followUps_8_0= ruleSemanticsRule ) )
                             	    {
-                            	    otherlv_7=(Token)match(input,25,FOLLOW_25_in_ruleInSemanticsRule15782); 
+                            	    otherlv_7=(Token)match(input,25,FOLLOW_25_in_ruleInSemanticsRule15783); 
 
                             	        	newLeafNode(otherlv_7, grammarAccess.getInSemanticsRuleAccess().getCommaKeyword_3_1_1_2_0());
                             	        
@@ -18877,7 +18888,7 @@
                             	     
                             	    	        newCompositeNode(grammarAccess.getInSemanticsRuleAccess().getFollowUpsSemanticsRuleParserRuleCall_3_1_1_2_1_0()); 
                             	    	    
-                            	    pushFollow(FOLLOW_ruleSemanticsRule_in_ruleInSemanticsRule15803);
+                            	    pushFollow(FOLLOW_ruleSemanticsRule_in_ruleInSemanticsRule15804);
                             	    lv_followUps_8_0=ruleSemanticsRule();
 
                             	    state._fsp--;
@@ -18904,15 +18915,15 @@
                             	    break;
 
                             	default :
-                            	    if ( cnt153 >= 1 ) break loop153;
+                            	    if ( cnt154 >= 1 ) break loop154;
                                         EarlyExitException eee =
-                                            new EarlyExitException(153, input);
+                                            new EarlyExitException(154, input);
                                         throw eee;
                                 }
-                                cnt153++;
+                                cnt154++;
                             } while (true);
 
-                            otherlv_9=(Token)match(input,21,FOLLOW_21_in_ruleInSemanticsRule15817); 
+                            otherlv_9=(Token)match(input,21,FOLLOW_21_in_ruleInSemanticsRule15818); 
 
                                 	newLeafNode(otherlv_9, grammarAccess.getInSemanticsRuleAccess().getRightParenthesisKeyword_3_1_1_3());
                                 
@@ -18964,13 +18975,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7643:2: iv_ruleOutSemanticsRule= ruleOutSemanticsRule EOF
             {
              newCompositeNode(grammarAccess.getOutSemanticsRuleRule()); 
-            pushFollow(FOLLOW_ruleOutSemanticsRule_in_entryRuleOutSemanticsRule15857);
+            pushFollow(FOLLOW_ruleOutSemanticsRule_in_entryRuleOutSemanticsRule15858);
             iv_ruleOutSemanticsRule=ruleOutSemanticsRule();
 
             state._fsp--;
 
              current =iv_ruleOutSemanticsRule; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleOutSemanticsRule15867); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOutSemanticsRule15868); 
 
             }
 
@@ -19015,11 +19026,11 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7654:1: (otherlv_0= 'out' otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) (otherlv_3= '->' ( ( (lv_followUps_4_0= ruleSemanticsRule ) ) | (otherlv_5= '(' ( (lv_followUps_6_0= ruleSemanticsRule ) ) (otherlv_7= ',' ( (lv_followUps_8_0= ruleSemanticsRule ) ) )+ otherlv_9= ')' ) ) )? )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7654:3: otherlv_0= 'out' otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) (otherlv_3= '->' ( ( (lv_followUps_4_0= ruleSemanticsRule ) ) | (otherlv_5= '(' ( (lv_followUps_6_0= ruleSemanticsRule ) ) (otherlv_7= ',' ( (lv_followUps_8_0= ruleSemanticsRule ) ) )+ otherlv_9= ')' ) ) )?
             {
-            otherlv_0=(Token)match(input,107,FOLLOW_107_in_ruleOutSemanticsRule15904); 
+            otherlv_0=(Token)match(input,107,FOLLOW_107_in_ruleOutSemanticsRule15905); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getOutSemanticsRuleAccess().getOutKeyword_0());
                 
-            otherlv_1=(Token)match(input,16,FOLLOW_16_in_ruleOutSemanticsRule15916); 
+            otherlv_1=(Token)match(input,16,FOLLOW_16_in_ruleOutSemanticsRule15917); 
 
                 	newLeafNode(otherlv_1, grammarAccess.getOutSemanticsRuleAccess().getColonKeyword_1());
                 
@@ -19034,7 +19045,7 @@
             	            current = createModelElement(grammarAccess.getOutSemanticsRuleRule());
             	        }
                     
-            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleOutSemanticsRule15936); 
+            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleOutSemanticsRule15937); 
 
             		newLeafNode(otherlv_2, grammarAccess.getOutSemanticsRuleAccess().getMsgEObjectCrossReference_2_0()); 
             	
@@ -19045,37 +19056,37 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7675:2: (otherlv_3= '->' ( ( (lv_followUps_4_0= ruleSemanticsRule ) ) | (otherlv_5= '(' ( (lv_followUps_6_0= ruleSemanticsRule ) ) (otherlv_7= ',' ( (lv_followUps_8_0= ruleSemanticsRule ) ) )+ otherlv_9= ')' ) ) )?
-            int alt158=2;
-            int LA158_0 = input.LA(1);
+            int alt159=2;
+            int LA159_0 = input.LA(1);
 
-            if ( (LA158_0==19) ) {
-                alt158=1;
+            if ( (LA159_0==19) ) {
+                alt159=1;
             }
-            switch (alt158) {
+            switch (alt159) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7675:4: otherlv_3= '->' ( ( (lv_followUps_4_0= ruleSemanticsRule ) ) | (otherlv_5= '(' ( (lv_followUps_6_0= ruleSemanticsRule ) ) (otherlv_7= ',' ( (lv_followUps_8_0= ruleSemanticsRule ) ) )+ otherlv_9= ')' ) )
                     {
-                    otherlv_3=(Token)match(input,19,FOLLOW_19_in_ruleOutSemanticsRule15949); 
+                    otherlv_3=(Token)match(input,19,FOLLOW_19_in_ruleOutSemanticsRule15950); 
 
                         	newLeafNode(otherlv_3, grammarAccess.getOutSemanticsRuleAccess().getHyphenMinusGreaterThanSignKeyword_3_0());
                         
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7679:1: ( ( (lv_followUps_4_0= ruleSemanticsRule ) ) | (otherlv_5= '(' ( (lv_followUps_6_0= ruleSemanticsRule ) ) (otherlv_7= ',' ( (lv_followUps_8_0= ruleSemanticsRule ) ) )+ otherlv_9= ')' ) )
-                    int alt157=2;
-                    int LA157_0 = input.LA(1);
+                    int alt158=2;
+                    int LA158_0 = input.LA(1);
 
-                    if ( ((LA157_0>=106 && LA157_0<=107)) ) {
-                        alt157=1;
+                    if ( ((LA158_0>=106 && LA158_0<=107)) ) {
+                        alt158=1;
                     }
-                    else if ( (LA157_0==20) ) {
-                        alt157=2;
+                    else if ( (LA158_0==20) ) {
+                        alt158=2;
                     }
                     else {
                         NoViableAltException nvae =
-                            new NoViableAltException("", 157, 0, input);
+                            new NoViableAltException("", 158, 0, input);
 
                         throw nvae;
                     }
-                    switch (alt157) {
+                    switch (alt158) {
                         case 1 :
                             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7679:2: ( (lv_followUps_4_0= ruleSemanticsRule ) )
                             {
@@ -19088,7 +19099,7 @@
                              
                             	        newCompositeNode(grammarAccess.getOutSemanticsRuleAccess().getFollowUpsSemanticsRuleParserRuleCall_3_1_0_0()); 
                             	    
-                            pushFollow(FOLLOW_ruleSemanticsRule_in_ruleOutSemanticsRule15971);
+                            pushFollow(FOLLOW_ruleSemanticsRule_in_ruleOutSemanticsRule15972);
                             lv_followUps_4_0=ruleSemanticsRule();
 
                             state._fsp--;
@@ -19119,7 +19130,7 @@
                             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7698:6: (otherlv_5= '(' ( (lv_followUps_6_0= ruleSemanticsRule ) ) (otherlv_7= ',' ( (lv_followUps_8_0= ruleSemanticsRule ) ) )+ otherlv_9= ')' )
                             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7698:8: otherlv_5= '(' ( (lv_followUps_6_0= ruleSemanticsRule ) ) (otherlv_7= ',' ( (lv_followUps_8_0= ruleSemanticsRule ) ) )+ otherlv_9= ')'
                             {
-                            otherlv_5=(Token)match(input,20,FOLLOW_20_in_ruleOutSemanticsRule15990); 
+                            otherlv_5=(Token)match(input,20,FOLLOW_20_in_ruleOutSemanticsRule15991); 
 
                                 	newLeafNode(otherlv_5, grammarAccess.getOutSemanticsRuleAccess().getLeftParenthesisKeyword_3_1_1_0());
                                 
@@ -19132,7 +19143,7 @@
                              
                             	        newCompositeNode(grammarAccess.getOutSemanticsRuleAccess().getFollowUpsSemanticsRuleParserRuleCall_3_1_1_1_0()); 
                             	    
-                            pushFollow(FOLLOW_ruleSemanticsRule_in_ruleOutSemanticsRule16011);
+                            pushFollow(FOLLOW_ruleSemanticsRule_in_ruleOutSemanticsRule16012);
                             lv_followUps_6_0=ruleSemanticsRule();
 
                             state._fsp--;
@@ -19155,22 +19166,22 @@
                             }
 
                             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7720:2: (otherlv_7= ',' ( (lv_followUps_8_0= ruleSemanticsRule ) ) )+
-                            int cnt156=0;
-                            loop156:
+                            int cnt157=0;
+                            loop157:
                             do {
-                                int alt156=2;
-                                int LA156_0 = input.LA(1);
+                                int alt157=2;
+                                int LA157_0 = input.LA(1);
 
-                                if ( (LA156_0==25) ) {
-                                    alt156=1;
+                                if ( (LA157_0==25) ) {
+                                    alt157=1;
                                 }
 
 
-                                switch (alt156) {
+                                switch (alt157) {
                             	case 1 :
                             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7720:4: otherlv_7= ',' ( (lv_followUps_8_0= ruleSemanticsRule ) )
                             	    {
-                            	    otherlv_7=(Token)match(input,25,FOLLOW_25_in_ruleOutSemanticsRule16024); 
+                            	    otherlv_7=(Token)match(input,25,FOLLOW_25_in_ruleOutSemanticsRule16025); 
 
                             	        	newLeafNode(otherlv_7, grammarAccess.getOutSemanticsRuleAccess().getCommaKeyword_3_1_1_2_0());
                             	        
@@ -19183,7 +19194,7 @@
                             	     
                             	    	        newCompositeNode(grammarAccess.getOutSemanticsRuleAccess().getFollowUpsSemanticsRuleParserRuleCall_3_1_1_2_1_0()); 
                             	    	    
-                            	    pushFollow(FOLLOW_ruleSemanticsRule_in_ruleOutSemanticsRule16045);
+                            	    pushFollow(FOLLOW_ruleSemanticsRule_in_ruleOutSemanticsRule16046);
                             	    lv_followUps_8_0=ruleSemanticsRule();
 
                             	    state._fsp--;
@@ -19210,15 +19221,15 @@
                             	    break;
 
                             	default :
-                            	    if ( cnt156 >= 1 ) break loop156;
+                            	    if ( cnt157 >= 1 ) break loop157;
                                         EarlyExitException eee =
-                                            new EarlyExitException(156, input);
+                                            new EarlyExitException(157, input);
                                         throw eee;
                                 }
-                                cnt156++;
+                                cnt157++;
                             } while (true);
 
-                            otherlv_9=(Token)match(input,21,FOLLOW_21_in_ruleOutSemanticsRule16059); 
+                            otherlv_9=(Token)match(input,21,FOLLOW_21_in_ruleOutSemanticsRule16060); 
 
                                 	newLeafNode(otherlv_9, grammarAccess.getOutSemanticsRuleAccess().getRightParenthesisKeyword_3_1_1_3());
                                 
@@ -19270,13 +19281,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7756:2: iv_ruleAnnotation= ruleAnnotation EOF
             {
              newCompositeNode(grammarAccess.getAnnotationRule()); 
-            pushFollow(FOLLOW_ruleAnnotation_in_entryRuleAnnotation16099);
+            pushFollow(FOLLOW_ruleAnnotation_in_entryRuleAnnotation16100);
             iv_ruleAnnotation=ruleAnnotation();
 
             state._fsp--;
 
              current =iv_ruleAnnotation; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleAnnotation16109); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleAnnotation16110); 
 
             }
 
@@ -19316,7 +19327,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7767:1: (otherlv_0= '@' ( ( ruleFQN ) ) (otherlv_2= '(' ( (lv_attributes_3_0= ruleKeyValue ) ) (otherlv_4= ',' ( (lv_attributes_5_0= ruleKeyValue ) ) )* otherlv_6= ')' )? )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7767:3: otherlv_0= '@' ( ( ruleFQN ) ) (otherlv_2= '(' ( (lv_attributes_3_0= ruleKeyValue ) ) (otherlv_4= ',' ( (lv_attributes_5_0= ruleKeyValue ) ) )* otherlv_6= ')' )?
             {
-            otherlv_0=(Token)match(input,108,FOLLOW_108_in_ruleAnnotation16146); 
+            otherlv_0=(Token)match(input,108,FOLLOW_108_in_ruleAnnotation16147); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getAnnotationAccess().getCommercialAtKeyword_0());
                 
@@ -19334,7 +19345,7 @@
              
             	        newCompositeNode(grammarAccess.getAnnotationAccess().getTypeAnnotationTypeCrossReference_1_0()); 
             	    
-            pushFollow(FOLLOW_ruleFQN_in_ruleAnnotation16169);
+            pushFollow(FOLLOW_ruleFQN_in_ruleAnnotation16170);
             ruleFQN();
 
             state._fsp--;
@@ -19349,17 +19360,17 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7786:2: (otherlv_2= '(' ( (lv_attributes_3_0= ruleKeyValue ) ) (otherlv_4= ',' ( (lv_attributes_5_0= ruleKeyValue ) ) )* otherlv_6= ')' )?
-            int alt160=2;
-            int LA160_0 = input.LA(1);
+            int alt161=2;
+            int LA161_0 = input.LA(1);
 
-            if ( (LA160_0==20) ) {
-                alt160=1;
+            if ( (LA161_0==20) ) {
+                alt161=1;
             }
-            switch (alt160) {
+            switch (alt161) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7786:4: otherlv_2= '(' ( (lv_attributes_3_0= ruleKeyValue ) ) (otherlv_4= ',' ( (lv_attributes_5_0= ruleKeyValue ) ) )* otherlv_6= ')'
                     {
-                    otherlv_2=(Token)match(input,20,FOLLOW_20_in_ruleAnnotation16182); 
+                    otherlv_2=(Token)match(input,20,FOLLOW_20_in_ruleAnnotation16183); 
 
                         	newLeafNode(otherlv_2, grammarAccess.getAnnotationAccess().getLeftParenthesisKeyword_2_0());
                         
@@ -19372,7 +19383,7 @@
                      
                     	        newCompositeNode(grammarAccess.getAnnotationAccess().getAttributesKeyValueParserRuleCall_2_1_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleKeyValue_in_ruleAnnotation16203);
+                    pushFollow(FOLLOW_ruleKeyValue_in_ruleAnnotation16204);
                     lv_attributes_3_0=ruleKeyValue();
 
                     state._fsp--;
@@ -19395,21 +19406,21 @@
                     }
 
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7808:2: (otherlv_4= ',' ( (lv_attributes_5_0= ruleKeyValue ) ) )*
-                    loop159:
+                    loop160:
                     do {
-                        int alt159=2;
-                        int LA159_0 = input.LA(1);
+                        int alt160=2;
+                        int LA160_0 = input.LA(1);
 
-                        if ( (LA159_0==25) ) {
-                            alt159=1;
+                        if ( (LA160_0==25) ) {
+                            alt160=1;
                         }
 
 
-                        switch (alt159) {
+                        switch (alt160) {
                     	case 1 :
                     	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7808:4: otherlv_4= ',' ( (lv_attributes_5_0= ruleKeyValue ) )
                     	    {
-                    	    otherlv_4=(Token)match(input,25,FOLLOW_25_in_ruleAnnotation16216); 
+                    	    otherlv_4=(Token)match(input,25,FOLLOW_25_in_ruleAnnotation16217); 
 
                     	        	newLeafNode(otherlv_4, grammarAccess.getAnnotationAccess().getCommaKeyword_2_2_0());
                     	        
@@ -19422,7 +19433,7 @@
                     	     
                     	    	        newCompositeNode(grammarAccess.getAnnotationAccess().getAttributesKeyValueParserRuleCall_2_2_1_0()); 
                     	    	    
-                    	    pushFollow(FOLLOW_ruleKeyValue_in_ruleAnnotation16237);
+                    	    pushFollow(FOLLOW_ruleKeyValue_in_ruleAnnotation16238);
                     	    lv_attributes_5_0=ruleKeyValue();
 
                     	    state._fsp--;
@@ -19449,11 +19460,11 @@
                     	    break;
 
                     	default :
-                    	    break loop159;
+                    	    break loop160;
                         }
                     } while (true);
 
-                    otherlv_6=(Token)match(input,21,FOLLOW_21_in_ruleAnnotation16251); 
+                    otherlv_6=(Token)match(input,21,FOLLOW_21_in_ruleAnnotation16252); 
 
                         	newLeafNode(otherlv_6, grammarAccess.getAnnotationAccess().getRightParenthesisKeyword_2_3());
                         
@@ -19496,13 +19507,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7844:2: iv_ruleKeyValue= ruleKeyValue EOF
             {
              newCompositeNode(grammarAccess.getKeyValueRule()); 
-            pushFollow(FOLLOW_ruleKeyValue_in_entryRuleKeyValue16289);
+            pushFollow(FOLLOW_ruleKeyValue_in_entryRuleKeyValue16290);
             iv_ruleKeyValue=ruleKeyValue();
 
             state._fsp--;
 
              current =iv_ruleKeyValue; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleKeyValue16299); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleKeyValue16300); 
 
             }
 
@@ -19544,7 +19555,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7856:1: (lv_key_0_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7857:3: lv_key_0_0= RULE_ID
             {
-            lv_key_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleKeyValue16341); 
+            lv_key_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleKeyValue16342); 
 
             			newLeafNode(lv_key_0_0, grammarAccess.getKeyValueAccess().getKeyIDTerminalRuleCall_0_0()); 
             		
@@ -19564,7 +19575,7 @@
 
             }
 
-            otherlv_1=(Token)match(input,26,FOLLOW_26_in_ruleKeyValue16358); 
+            otherlv_1=(Token)match(input,26,FOLLOW_26_in_ruleKeyValue16359); 
 
                 	newLeafNode(otherlv_1, grammarAccess.getKeyValueAccess().getEqualsSignKeyword_1());
                 
@@ -19577,7 +19588,7 @@
              
             	        newCompositeNode(grammarAccess.getKeyValueAccess().getValueLiteralParserRuleCall_2_0()); 
             	    
-            pushFollow(FOLLOW_ruleLiteral_in_ruleKeyValue16379);
+            pushFollow(FOLLOW_ruleLiteral_in_ruleKeyValue16380);
             lv_value_2_0=ruleLiteral();
 
             state._fsp--;
@@ -19632,13 +19643,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7905:2: iv_ruleAnnotationType= ruleAnnotationType EOF
             {
              newCompositeNode(grammarAccess.getAnnotationTypeRule()); 
-            pushFollow(FOLLOW_ruleAnnotationType_in_entryRuleAnnotationType16415);
+            pushFollow(FOLLOW_ruleAnnotationType_in_entryRuleAnnotationType16416);
             iv_ruleAnnotationType=ruleAnnotationType();
 
             state._fsp--;
 
              current =iv_ruleAnnotationType; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleAnnotationType16425); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleAnnotationType16426); 
 
             }
 
@@ -19689,7 +19700,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7916:1: (otherlv_0= 'AnnotationType' ( (lv_name_1_0= RULE_ID ) ) ( (lv_docu_2_0= ruleDocumentation ) )? otherlv_3= '{' otherlv_4= 'target' otherlv_5= '=' ( ( (lv_targets_6_0= ruleAnnotationTargetType ) ) | (otherlv_7= '{' ( (lv_targets_8_0= ruleAnnotationTargetType ) ) (otherlv_9= ',' ( (lv_targets_10_0= ruleAnnotationTargetType ) ) )* otherlv_11= '}' ) ) ( (lv_attributes_12_0= ruleAnnotationAttribute ) )* otherlv_13= '}' )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7916:3: otherlv_0= 'AnnotationType' ( (lv_name_1_0= RULE_ID ) ) ( (lv_docu_2_0= ruleDocumentation ) )? otherlv_3= '{' otherlv_4= 'target' otherlv_5= '=' ( ( (lv_targets_6_0= ruleAnnotationTargetType ) ) | (otherlv_7= '{' ( (lv_targets_8_0= ruleAnnotationTargetType ) ) (otherlv_9= ',' ( (lv_targets_10_0= ruleAnnotationTargetType ) ) )* otherlv_11= '}' ) ) ( (lv_attributes_12_0= ruleAnnotationAttribute ) )* otherlv_13= '}'
             {
-            otherlv_0=(Token)match(input,109,FOLLOW_109_in_ruleAnnotationType16462); 
+            otherlv_0=(Token)match(input,109,FOLLOW_109_in_ruleAnnotationType16463); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getAnnotationTypeAccess().getAnnotationTypeKeyword_0());
                 
@@ -19699,7 +19710,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7921:1: (lv_name_1_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7922:3: lv_name_1_0= RULE_ID
             {
-            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleAnnotationType16479); 
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleAnnotationType16480); 
 
             			newLeafNode(lv_name_1_0, grammarAccess.getAnnotationTypeAccess().getNameIDTerminalRuleCall_1_0()); 
             		
@@ -19720,13 +19731,13 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7938:2: ( (lv_docu_2_0= ruleDocumentation ) )?
-            int alt161=2;
-            int LA161_0 = input.LA(1);
+            int alt162=2;
+            int LA162_0 = input.LA(1);
 
-            if ( (LA161_0==34) ) {
-                alt161=1;
+            if ( (LA162_0==34) ) {
+                alt162=1;
             }
-            switch (alt161) {
+            switch (alt162) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7939:1: (lv_docu_2_0= ruleDocumentation )
                     {
@@ -19736,7 +19747,7 @@
                      
                     	        newCompositeNode(grammarAccess.getAnnotationTypeAccess().getDocuDocumentationParserRuleCall_2_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleDocumentation_in_ruleAnnotationType16505);
+                    pushFollow(FOLLOW_ruleDocumentation_in_ruleAnnotationType16506);
                     lv_docu_2_0=ruleDocumentation();
 
                     state._fsp--;
@@ -19761,35 +19772,35 @@
 
             }
 
-            otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleAnnotationType16518); 
+            otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleAnnotationType16519); 
 
                 	newLeafNode(otherlv_3, grammarAccess.getAnnotationTypeAccess().getLeftCurlyBracketKeyword_3());
                 
-            otherlv_4=(Token)match(input,110,FOLLOW_110_in_ruleAnnotationType16530); 
+            otherlv_4=(Token)match(input,110,FOLLOW_110_in_ruleAnnotationType16531); 
 
                 	newLeafNode(otherlv_4, grammarAccess.getAnnotationTypeAccess().getTargetKeyword_4());
                 
-            otherlv_5=(Token)match(input,26,FOLLOW_26_in_ruleAnnotationType16542); 
+            otherlv_5=(Token)match(input,26,FOLLOW_26_in_ruleAnnotationType16543); 
 
                 	newLeafNode(otherlv_5, grammarAccess.getAnnotationTypeAccess().getEqualsSignKeyword_5());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7968:1: ( ( (lv_targets_6_0= ruleAnnotationTargetType ) ) | (otherlv_7= '{' ( (lv_targets_8_0= ruleAnnotationTargetType ) ) (otherlv_9= ',' ( (lv_targets_10_0= ruleAnnotationTargetType ) ) )* otherlv_11= '}' ) )
-            int alt163=2;
-            int LA163_0 = input.LA(1);
+            int alt164=2;
+            int LA164_0 = input.LA(1);
 
-            if ( (LA163_0==28||LA163_0==42||LA163_0==48||LA163_0==55||LA163_0==64||LA163_0==66||LA163_0==79) ) {
-                alt163=1;
+            if ( (LA164_0==28||LA164_0==42||LA164_0==48||LA164_0==55||LA164_0==64||LA164_0==66||LA164_0==79) ) {
+                alt164=1;
             }
-            else if ( (LA163_0==14) ) {
-                alt163=2;
+            else if ( (LA164_0==14) ) {
+                alt164=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 163, 0, input);
+                    new NoViableAltException("", 164, 0, input);
 
                 throw nvae;
             }
-            switch (alt163) {
+            switch (alt164) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7968:2: ( (lv_targets_6_0= ruleAnnotationTargetType ) )
                     {
@@ -19802,7 +19813,7 @@
                      
                     	        newCompositeNode(grammarAccess.getAnnotationTypeAccess().getTargetsAnnotationTargetTypeParserRuleCall_6_0_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleAnnotationTargetType_in_ruleAnnotationType16564);
+                    pushFollow(FOLLOW_ruleAnnotationTargetType_in_ruleAnnotationType16565);
                     lv_targets_6_0=ruleAnnotationTargetType();
 
                     state._fsp--;
@@ -19833,7 +19844,7 @@
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7987:6: (otherlv_7= '{' ( (lv_targets_8_0= ruleAnnotationTargetType ) ) (otherlv_9= ',' ( (lv_targets_10_0= ruleAnnotationTargetType ) ) )* otherlv_11= '}' )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:7987:8: otherlv_7= '{' ( (lv_targets_8_0= ruleAnnotationTargetType ) ) (otherlv_9= ',' ( (lv_targets_10_0= ruleAnnotationTargetType ) ) )* otherlv_11= '}'
                     {
-                    otherlv_7=(Token)match(input,14,FOLLOW_14_in_ruleAnnotationType16583); 
+                    otherlv_7=(Token)match(input,14,FOLLOW_14_in_ruleAnnotationType16584); 
 
                         	newLeafNode(otherlv_7, grammarAccess.getAnnotationTypeAccess().getLeftCurlyBracketKeyword_6_1_0());
                         
@@ -19846,7 +19857,7 @@
                      
                     	        newCompositeNode(grammarAccess.getAnnotationTypeAccess().getTargetsAnnotationTargetTypeParserRuleCall_6_1_1_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleAnnotationTargetType_in_ruleAnnotationType16604);
+                    pushFollow(FOLLOW_ruleAnnotationTargetType_in_ruleAnnotationType16605);
                     lv_targets_8_0=ruleAnnotationTargetType();
 
                     state._fsp--;
@@ -19869,21 +19880,21 @@
                     }
 
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8009:2: (otherlv_9= ',' ( (lv_targets_10_0= ruleAnnotationTargetType ) ) )*
-                    loop162:
+                    loop163:
                     do {
-                        int alt162=2;
-                        int LA162_0 = input.LA(1);
+                        int alt163=2;
+                        int LA163_0 = input.LA(1);
 
-                        if ( (LA162_0==25) ) {
-                            alt162=1;
+                        if ( (LA163_0==25) ) {
+                            alt163=1;
                         }
 
 
-                        switch (alt162) {
+                        switch (alt163) {
                     	case 1 :
                     	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8009:4: otherlv_9= ',' ( (lv_targets_10_0= ruleAnnotationTargetType ) )
                     	    {
-                    	    otherlv_9=(Token)match(input,25,FOLLOW_25_in_ruleAnnotationType16617); 
+                    	    otherlv_9=(Token)match(input,25,FOLLOW_25_in_ruleAnnotationType16618); 
 
                     	        	newLeafNode(otherlv_9, grammarAccess.getAnnotationTypeAccess().getCommaKeyword_6_1_2_0());
                     	        
@@ -19896,7 +19907,7 @@
                     	     
                     	    	        newCompositeNode(grammarAccess.getAnnotationTypeAccess().getTargetsAnnotationTargetTypeParserRuleCall_6_1_2_1_0()); 
                     	    	    
-                    	    pushFollow(FOLLOW_ruleAnnotationTargetType_in_ruleAnnotationType16638);
+                    	    pushFollow(FOLLOW_ruleAnnotationTargetType_in_ruleAnnotationType16639);
                     	    lv_targets_10_0=ruleAnnotationTargetType();
 
                     	    state._fsp--;
@@ -19923,11 +19934,11 @@
                     	    break;
 
                     	default :
-                    	    break loop162;
+                    	    break loop163;
                         }
                     } while (true);
 
-                    otherlv_11=(Token)match(input,15,FOLLOW_15_in_ruleAnnotationType16652); 
+                    otherlv_11=(Token)match(input,15,FOLLOW_15_in_ruleAnnotationType16653); 
 
                         	newLeafNode(otherlv_11, grammarAccess.getAnnotationTypeAccess().getRightCurlyBracketKeyword_6_1_3());
                         
@@ -19941,17 +19952,17 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8035:3: ( (lv_attributes_12_0= ruleAnnotationAttribute ) )*
-            loop164:
+            loop165:
             do {
-                int alt164=2;
-                int LA164_0 = input.LA(1);
+                int alt165=2;
+                int LA165_0 = input.LA(1);
 
-                if ( ((LA164_0>=111 && LA164_0<=112)) ) {
-                    alt164=1;
+                if ( ((LA165_0>=111 && LA165_0<=112)) ) {
+                    alt165=1;
                 }
 
 
-                switch (alt164) {
+                switch (alt165) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8036:1: (lv_attributes_12_0= ruleAnnotationAttribute )
             	    {
@@ -19961,7 +19972,7 @@
             	     
             	    	        newCompositeNode(grammarAccess.getAnnotationTypeAccess().getAttributesAnnotationAttributeParserRuleCall_7_0()); 
             	    	    
-            	    pushFollow(FOLLOW_ruleAnnotationAttribute_in_ruleAnnotationType16675);
+            	    pushFollow(FOLLOW_ruleAnnotationAttribute_in_ruleAnnotationType16676);
             	    lv_attributes_12_0=ruleAnnotationAttribute();
 
             	    state._fsp--;
@@ -19985,11 +19996,11 @@
             	    break;
 
             	default :
-            	    break loop164;
+            	    break loop165;
                 }
             } while (true);
 
-            otherlv_13=(Token)match(input,15,FOLLOW_15_in_ruleAnnotationType16688); 
+            otherlv_13=(Token)match(input,15,FOLLOW_15_in_ruleAnnotationType16689); 
 
                 	newLeafNode(otherlv_13, grammarAccess.getAnnotationTypeAccess().getRightCurlyBracketKeyword_8());
                 
@@ -20026,13 +20037,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8067:2: iv_ruleAnnotationAttribute= ruleAnnotationAttribute EOF
             {
              newCompositeNode(grammarAccess.getAnnotationAttributeRule()); 
-            pushFollow(FOLLOW_ruleAnnotationAttribute_in_entryRuleAnnotationAttribute16724);
+            pushFollow(FOLLOW_ruleAnnotationAttribute_in_entryRuleAnnotationAttribute16725);
             iv_ruleAnnotationAttribute=ruleAnnotationAttribute();
 
             state._fsp--;
 
              current =iv_ruleAnnotationAttribute; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleAnnotationAttribute16734); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleAnnotationAttribute16735); 
 
             }
 
@@ -20066,115 +20077,115 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8078:1: (this_SimpleAnnotationAttribute_0= ruleSimpleAnnotationAttribute | this_EnumAnnotationAttribute_1= ruleEnumAnnotationAttribute )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8078:1: (this_SimpleAnnotationAttribute_0= ruleSimpleAnnotationAttribute | this_EnumAnnotationAttribute_1= ruleEnumAnnotationAttribute )
-            int alt165=2;
-            int LA165_0 = input.LA(1);
+            int alt166=2;
+            int LA166_0 = input.LA(1);
 
-            if ( (LA165_0==111) ) {
-                int LA165_1 = input.LA(2);
+            if ( (LA166_0==111) ) {
+                int LA166_1 = input.LA(2);
 
-                if ( (LA165_1==113) ) {
-                    int LA165_3 = input.LA(3);
+                if ( (LA166_1==113) ) {
+                    int LA166_3 = input.LA(3);
 
-                    if ( (LA165_3==RULE_ID) ) {
-                        int LA165_4 = input.LA(4);
+                    if ( (LA166_3==RULE_ID) ) {
+                        int LA166_4 = input.LA(4);
 
-                        if ( (LA165_4==16) ) {
-                            int LA165_5 = input.LA(5);
+                        if ( (LA166_4==16) ) {
+                            int LA166_5 = input.LA(5);
 
-                            if ( (LA165_5==14) ) {
-                                alt165=2;
+                            if ( ((LA166_5>=127 && LA166_5<=130)) ) {
+                                alt166=1;
                             }
-                            else if ( ((LA165_5>=127 && LA165_5<=130)) ) {
-                                alt165=1;
+                            else if ( (LA166_5==14) ) {
+                                alt166=2;
                             }
                             else {
                                 NoViableAltException nvae =
-                                    new NoViableAltException("", 165, 5, input);
+                                    new NoViableAltException("", 166, 5, input);
 
                                 throw nvae;
                             }
                         }
                         else {
                             NoViableAltException nvae =
-                                new NoViableAltException("", 165, 4, input);
+                                new NoViableAltException("", 166, 4, input);
 
                             throw nvae;
                         }
                     }
                     else {
                         NoViableAltException nvae =
-                            new NoViableAltException("", 165, 3, input);
+                            new NoViableAltException("", 166, 3, input);
 
                         throw nvae;
                     }
                 }
                 else {
                     NoViableAltException nvae =
-                        new NoViableAltException("", 165, 1, input);
+                        new NoViableAltException("", 166, 1, input);
 
                     throw nvae;
                 }
             }
-            else if ( (LA165_0==112) ) {
-                int LA165_2 = input.LA(2);
+            else if ( (LA166_0==112) ) {
+                int LA166_2 = input.LA(2);
 
-                if ( (LA165_2==113) ) {
-                    int LA165_3 = input.LA(3);
+                if ( (LA166_2==113) ) {
+                    int LA166_3 = input.LA(3);
 
-                    if ( (LA165_3==RULE_ID) ) {
-                        int LA165_4 = input.LA(4);
+                    if ( (LA166_3==RULE_ID) ) {
+                        int LA166_4 = input.LA(4);
 
-                        if ( (LA165_4==16) ) {
-                            int LA165_5 = input.LA(5);
+                        if ( (LA166_4==16) ) {
+                            int LA166_5 = input.LA(5);
 
-                            if ( (LA165_5==14) ) {
-                                alt165=2;
+                            if ( ((LA166_5>=127 && LA166_5<=130)) ) {
+                                alt166=1;
                             }
-                            else if ( ((LA165_5>=127 && LA165_5<=130)) ) {
-                                alt165=1;
+                            else if ( (LA166_5==14) ) {
+                                alt166=2;
                             }
                             else {
                                 NoViableAltException nvae =
-                                    new NoViableAltException("", 165, 5, input);
+                                    new NoViableAltException("", 166, 5, input);
 
                                 throw nvae;
                             }
                         }
                         else {
                             NoViableAltException nvae =
-                                new NoViableAltException("", 165, 4, input);
+                                new NoViableAltException("", 166, 4, input);
 
                             throw nvae;
                         }
                     }
                     else {
                         NoViableAltException nvae =
-                            new NoViableAltException("", 165, 3, input);
+                            new NoViableAltException("", 166, 3, input);
 
                         throw nvae;
                     }
                 }
                 else {
                     NoViableAltException nvae =
-                        new NoViableAltException("", 165, 2, input);
+                        new NoViableAltException("", 166, 2, input);
 
                     throw nvae;
                 }
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 165, 0, input);
+                    new NoViableAltException("", 166, 0, input);
 
                 throw nvae;
             }
-            switch (alt165) {
+            switch (alt166) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8079:5: this_SimpleAnnotationAttribute_0= ruleSimpleAnnotationAttribute
                     {
                      
                             newCompositeNode(grammarAccess.getAnnotationAttributeAccess().getSimpleAnnotationAttributeParserRuleCall_0()); 
                         
-                    pushFollow(FOLLOW_ruleSimpleAnnotationAttribute_in_ruleAnnotationAttribute16781);
+                    pushFollow(FOLLOW_ruleSimpleAnnotationAttribute_in_ruleAnnotationAttribute16782);
                     this_SimpleAnnotationAttribute_0=ruleSimpleAnnotationAttribute();
 
                     state._fsp--;
@@ -20192,7 +20203,7 @@
                      
                             newCompositeNode(grammarAccess.getAnnotationAttributeAccess().getEnumAnnotationAttributeParserRuleCall_1()); 
                         
-                    pushFollow(FOLLOW_ruleEnumAnnotationAttribute_in_ruleAnnotationAttribute16808);
+                    pushFollow(FOLLOW_ruleEnumAnnotationAttribute_in_ruleAnnotationAttribute16809);
                     this_EnumAnnotationAttribute_1=ruleEnumAnnotationAttribute();
 
                     state._fsp--;
@@ -20237,13 +20248,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8107:2: iv_ruleSimpleAnnotationAttribute= ruleSimpleAnnotationAttribute EOF
             {
              newCompositeNode(grammarAccess.getSimpleAnnotationAttributeRule()); 
-            pushFollow(FOLLOW_ruleSimpleAnnotationAttribute_in_entryRuleSimpleAnnotationAttribute16843);
+            pushFollow(FOLLOW_ruleSimpleAnnotationAttribute_in_entryRuleSimpleAnnotationAttribute16844);
             iv_ruleSimpleAnnotationAttribute=ruleSimpleAnnotationAttribute();
 
             state._fsp--;
 
              current =iv_ruleSimpleAnnotationAttribute; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleSimpleAnnotationAttribute16853); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleSimpleAnnotationAttribute16854); 
 
             }
 
@@ -20283,22 +20294,22 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8118:2: ( ( (lv_optional_0_0= 'optional' ) ) | otherlv_1= 'mandatory' ) otherlv_2= 'attribute' ( (lv_name_3_0= RULE_ID ) ) otherlv_4= ':' ( (lv_type_5_0= ruleLiteralType ) )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8118:2: ( ( (lv_optional_0_0= 'optional' ) ) | otherlv_1= 'mandatory' )
-            int alt166=2;
-            int LA166_0 = input.LA(1);
+            int alt167=2;
+            int LA167_0 = input.LA(1);
 
-            if ( (LA166_0==111) ) {
-                alt166=1;
+            if ( (LA167_0==111) ) {
+                alt167=1;
             }
-            else if ( (LA166_0==112) ) {
-                alt166=2;
+            else if ( (LA167_0==112) ) {
+                alt167=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 166, 0, input);
+                    new NoViableAltException("", 167, 0, input);
 
                 throw nvae;
             }
-            switch (alt166) {
+            switch (alt167) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8118:3: ( (lv_optional_0_0= 'optional' ) )
                     {
@@ -20308,7 +20319,7 @@
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8119:1: (lv_optional_0_0= 'optional' )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8120:3: lv_optional_0_0= 'optional'
                     {
-                    lv_optional_0_0=(Token)match(input,111,FOLLOW_111_in_ruleSimpleAnnotationAttribute16897); 
+                    lv_optional_0_0=(Token)match(input,111,FOLLOW_111_in_ruleSimpleAnnotationAttribute16898); 
 
                             newLeafNode(lv_optional_0_0, grammarAccess.getSimpleAnnotationAttributeAccess().getOptionalOptionalKeyword_0_0_0());
                         
@@ -20330,7 +20341,7 @@
                 case 2 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8134:7: otherlv_1= 'mandatory'
                     {
-                    otherlv_1=(Token)match(input,112,FOLLOW_112_in_ruleSimpleAnnotationAttribute16928); 
+                    otherlv_1=(Token)match(input,112,FOLLOW_112_in_ruleSimpleAnnotationAttribute16929); 
 
                         	newLeafNode(otherlv_1, grammarAccess.getSimpleAnnotationAttributeAccess().getMandatoryKeyword_0_1());
                         
@@ -20340,7 +20351,7 @@
 
             }
 
-            otherlv_2=(Token)match(input,113,FOLLOW_113_in_ruleSimpleAnnotationAttribute16941); 
+            otherlv_2=(Token)match(input,113,FOLLOW_113_in_ruleSimpleAnnotationAttribute16942); 
 
                 	newLeafNode(otherlv_2, grammarAccess.getSimpleAnnotationAttributeAccess().getAttributeKeyword_1());
                 
@@ -20350,7 +20361,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8143:1: (lv_name_3_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8144:3: lv_name_3_0= RULE_ID
             {
-            lv_name_3_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSimpleAnnotationAttribute16958); 
+            lv_name_3_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSimpleAnnotationAttribute16959); 
 
             			newLeafNode(lv_name_3_0, grammarAccess.getSimpleAnnotationAttributeAccess().getNameIDTerminalRuleCall_2_0()); 
             		
@@ -20370,7 +20381,7 @@
 
             }
 
-            otherlv_4=(Token)match(input,16,FOLLOW_16_in_ruleSimpleAnnotationAttribute16975); 
+            otherlv_4=(Token)match(input,16,FOLLOW_16_in_ruleSimpleAnnotationAttribute16976); 
 
                 	newLeafNode(otherlv_4, grammarAccess.getSimpleAnnotationAttributeAccess().getColonKeyword_3());
                 
@@ -20383,7 +20394,7 @@
              
             	        newCompositeNode(grammarAccess.getSimpleAnnotationAttributeAccess().getTypeLiteralTypeEnumRuleCall_4_0()); 
             	    
-            pushFollow(FOLLOW_ruleLiteralType_in_ruleSimpleAnnotationAttribute16996);
+            pushFollow(FOLLOW_ruleLiteralType_in_ruleSimpleAnnotationAttribute16997);
             lv_type_5_0=ruleLiteralType();
 
             state._fsp--;
@@ -20438,13 +20449,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8192:2: iv_ruleEnumAnnotationAttribute= ruleEnumAnnotationAttribute EOF
             {
              newCompositeNode(grammarAccess.getEnumAnnotationAttributeRule()); 
-            pushFollow(FOLLOW_ruleEnumAnnotationAttribute_in_entryRuleEnumAnnotationAttribute17032);
+            pushFollow(FOLLOW_ruleEnumAnnotationAttribute_in_entryRuleEnumAnnotationAttribute17033);
             iv_ruleEnumAnnotationAttribute=ruleEnumAnnotationAttribute();
 
             state._fsp--;
 
              current =iv_ruleEnumAnnotationAttribute; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleEnumAnnotationAttribute17042); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleEnumAnnotationAttribute17043); 
 
             }
 
@@ -20487,22 +20498,22 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8203:2: ( ( (lv_optional_0_0= 'optional' ) ) | otherlv_1= 'mandatory' ) otherlv_2= 'attribute' ( (lv_name_3_0= RULE_ID ) ) otherlv_4= ':' otherlv_5= '{' ( (lv_values_6_0= RULE_STRING ) ) (otherlv_7= ',' ( (lv_values_8_0= RULE_STRING ) ) )* otherlv_9= '}'
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8203:2: ( ( (lv_optional_0_0= 'optional' ) ) | otherlv_1= 'mandatory' )
-            int alt167=2;
-            int LA167_0 = input.LA(1);
+            int alt168=2;
+            int LA168_0 = input.LA(1);
 
-            if ( (LA167_0==111) ) {
-                alt167=1;
+            if ( (LA168_0==111) ) {
+                alt168=1;
             }
-            else if ( (LA167_0==112) ) {
-                alt167=2;
+            else if ( (LA168_0==112) ) {
+                alt168=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 167, 0, input);
+                    new NoViableAltException("", 168, 0, input);
 
                 throw nvae;
             }
-            switch (alt167) {
+            switch (alt168) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8203:3: ( (lv_optional_0_0= 'optional' ) )
                     {
@@ -20512,7 +20523,7 @@
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8204:1: (lv_optional_0_0= 'optional' )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8205:3: lv_optional_0_0= 'optional'
                     {
-                    lv_optional_0_0=(Token)match(input,111,FOLLOW_111_in_ruleEnumAnnotationAttribute17086); 
+                    lv_optional_0_0=(Token)match(input,111,FOLLOW_111_in_ruleEnumAnnotationAttribute17087); 
 
                             newLeafNode(lv_optional_0_0, grammarAccess.getEnumAnnotationAttributeAccess().getOptionalOptionalKeyword_0_0_0());
                         
@@ -20534,7 +20545,7 @@
                 case 2 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8219:7: otherlv_1= 'mandatory'
                     {
-                    otherlv_1=(Token)match(input,112,FOLLOW_112_in_ruleEnumAnnotationAttribute17117); 
+                    otherlv_1=(Token)match(input,112,FOLLOW_112_in_ruleEnumAnnotationAttribute17118); 
 
                         	newLeafNode(otherlv_1, grammarAccess.getEnumAnnotationAttributeAccess().getMandatoryKeyword_0_1());
                         
@@ -20544,7 +20555,7 @@
 
             }
 
-            otherlv_2=(Token)match(input,113,FOLLOW_113_in_ruleEnumAnnotationAttribute17130); 
+            otherlv_2=(Token)match(input,113,FOLLOW_113_in_ruleEnumAnnotationAttribute17131); 
 
                 	newLeafNode(otherlv_2, grammarAccess.getEnumAnnotationAttributeAccess().getAttributeKeyword_1());
                 
@@ -20554,7 +20565,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8228:1: (lv_name_3_0= RULE_ID )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8229:3: lv_name_3_0= RULE_ID
             {
-            lv_name_3_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleEnumAnnotationAttribute17147); 
+            lv_name_3_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleEnumAnnotationAttribute17148); 
 
             			newLeafNode(lv_name_3_0, grammarAccess.getEnumAnnotationAttributeAccess().getNameIDTerminalRuleCall_2_0()); 
             		
@@ -20574,11 +20585,11 @@
 
             }
 
-            otherlv_4=(Token)match(input,16,FOLLOW_16_in_ruleEnumAnnotationAttribute17164); 
+            otherlv_4=(Token)match(input,16,FOLLOW_16_in_ruleEnumAnnotationAttribute17165); 
 
                 	newLeafNode(otherlv_4, grammarAccess.getEnumAnnotationAttributeAccess().getColonKeyword_3());
                 
-            otherlv_5=(Token)match(input,14,FOLLOW_14_in_ruleEnumAnnotationAttribute17176); 
+            otherlv_5=(Token)match(input,14,FOLLOW_14_in_ruleEnumAnnotationAttribute17177); 
 
                 	newLeafNode(otherlv_5, grammarAccess.getEnumAnnotationAttributeAccess().getLeftCurlyBracketKeyword_4());
                 
@@ -20588,7 +20599,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8254:1: (lv_values_6_0= RULE_STRING )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8255:3: lv_values_6_0= RULE_STRING
             {
-            lv_values_6_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleEnumAnnotationAttribute17193); 
+            lv_values_6_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleEnumAnnotationAttribute17194); 
 
             			newLeafNode(lv_values_6_0, grammarAccess.getEnumAnnotationAttributeAccess().getValuesSTRINGTerminalRuleCall_5_0()); 
             		
@@ -20609,21 +20620,21 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8271:2: (otherlv_7= ',' ( (lv_values_8_0= RULE_STRING ) ) )*
-            loop168:
+            loop169:
             do {
-                int alt168=2;
-                int LA168_0 = input.LA(1);
+                int alt169=2;
+                int LA169_0 = input.LA(1);
 
-                if ( (LA168_0==25) ) {
-                    alt168=1;
+                if ( (LA169_0==25) ) {
+                    alt169=1;
                 }
 
 
-                switch (alt168) {
+                switch (alt169) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8271:4: otherlv_7= ',' ( (lv_values_8_0= RULE_STRING ) )
             	    {
-            	    otherlv_7=(Token)match(input,25,FOLLOW_25_in_ruleEnumAnnotationAttribute17211); 
+            	    otherlv_7=(Token)match(input,25,FOLLOW_25_in_ruleEnumAnnotationAttribute17212); 
 
             	        	newLeafNode(otherlv_7, grammarAccess.getEnumAnnotationAttributeAccess().getCommaKeyword_6_0());
             	        
@@ -20633,7 +20644,7 @@
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8276:1: (lv_values_8_0= RULE_STRING )
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8277:3: lv_values_8_0= RULE_STRING
             	    {
-            	    lv_values_8_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleEnumAnnotationAttribute17228); 
+            	    lv_values_8_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleEnumAnnotationAttribute17229); 
 
             	    			newLeafNode(lv_values_8_0, grammarAccess.getEnumAnnotationAttributeAccess().getValuesSTRINGTerminalRuleCall_6_1_0()); 
             	    		
@@ -20658,11 +20669,11 @@
             	    break;
 
             	default :
-            	    break loop168;
+            	    break loop169;
                 }
             } while (true);
 
-            otherlv_9=(Token)match(input,15,FOLLOW_15_in_ruleEnumAnnotationAttribute17247); 
+            otherlv_9=(Token)match(input,15,FOLLOW_15_in_ruleEnumAnnotationAttribute17248); 
 
                 	newLeafNode(otherlv_9, grammarAccess.getEnumAnnotationAttributeAccess().getRightCurlyBracketKeyword_7());
                 
@@ -20699,13 +20710,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8307:2: iv_ruleImport= ruleImport EOF
             {
              newCompositeNode(grammarAccess.getImportRule()); 
-            pushFollow(FOLLOW_ruleImport_in_entryRuleImport17283);
+            pushFollow(FOLLOW_ruleImport_in_entryRuleImport17284);
             iv_ruleImport=ruleImport();
 
             state._fsp--;
 
              current =iv_ruleImport; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleImport17293); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleImport17294); 
 
             }
 
@@ -20743,27 +20754,27 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8318:1: (otherlv_0= 'import' ( ( ( (lv_importedNamespace_1_0= ruleImportedFQN ) ) otherlv_2= 'from' ) | otherlv_3= 'model' ) ( (lv_importURI_4_0= RULE_STRING ) ) )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8318:3: otherlv_0= 'import' ( ( ( (lv_importedNamespace_1_0= ruleImportedFQN ) ) otherlv_2= 'from' ) | otherlv_3= 'model' ) ( (lv_importURI_4_0= RULE_STRING ) )
             {
-            otherlv_0=(Token)match(input,114,FOLLOW_114_in_ruleImport17330); 
+            otherlv_0=(Token)match(input,114,FOLLOW_114_in_ruleImport17331); 
 
                 	newLeafNode(otherlv_0, grammarAccess.getImportAccess().getImportKeyword_0());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8322:1: ( ( ( (lv_importedNamespace_1_0= ruleImportedFQN ) ) otherlv_2= 'from' ) | otherlv_3= 'model' )
-            int alt169=2;
-            int LA169_0 = input.LA(1);
+            int alt170=2;
+            int LA170_0 = input.LA(1);
 
-            if ( (LA169_0==RULE_ID) ) {
-                alt169=1;
+            if ( (LA170_0==RULE_ID) ) {
+                alt170=1;
             }
-            else if ( (LA169_0==116) ) {
-                alt169=2;
+            else if ( (LA170_0==116) ) {
+                alt170=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 169, 0, input);
+                    new NoViableAltException("", 170, 0, input);
 
                 throw nvae;
             }
-            switch (alt169) {
+            switch (alt170) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8322:2: ( ( (lv_importedNamespace_1_0= ruleImportedFQN ) ) otherlv_2= 'from' )
                     {
@@ -20779,7 +20790,7 @@
                      
                     	        newCompositeNode(grammarAccess.getImportAccess().getImportedNamespaceImportedFQNParserRuleCall_1_0_0_0()); 
                     	    
-                    pushFollow(FOLLOW_ruleImportedFQN_in_ruleImport17353);
+                    pushFollow(FOLLOW_ruleImportedFQN_in_ruleImport17354);
                     lv_importedNamespace_1_0=ruleImportedFQN();
 
                     state._fsp--;
@@ -20801,7 +20812,7 @@
 
                     }
 
-                    otherlv_2=(Token)match(input,115,FOLLOW_115_in_ruleImport17365); 
+                    otherlv_2=(Token)match(input,115,FOLLOW_115_in_ruleImport17366); 
 
                         	newLeafNode(otherlv_2, grammarAccess.getImportAccess().getFromKeyword_1_0_1());
                         
@@ -20814,7 +20825,7 @@
                 case 2 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8345:7: otherlv_3= 'model'
                     {
-                    otherlv_3=(Token)match(input,116,FOLLOW_116_in_ruleImport17384); 
+                    otherlv_3=(Token)match(input,116,FOLLOW_116_in_ruleImport17385); 
 
                         	newLeafNode(otherlv_3, grammarAccess.getImportAccess().getModelKeyword_1_1());
                         
@@ -20830,7 +20841,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8350:1: (lv_importURI_4_0= RULE_STRING )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8351:3: lv_importURI_4_0= RULE_STRING
             {
-            lv_importURI_4_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleImport17402); 
+            lv_importURI_4_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleImport17403); 
 
             			newLeafNode(lv_importURI_4_0, grammarAccess.getImportAccess().getImportURISTRINGTerminalRuleCall_2_0()); 
             		
@@ -20883,13 +20894,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8377:2: iv_ruleImportedFQN= ruleImportedFQN EOF
             {
              newCompositeNode(grammarAccess.getImportedFQNRule()); 
-            pushFollow(FOLLOW_ruleImportedFQN_in_entryRuleImportedFQN17444);
+            pushFollow(FOLLOW_ruleImportedFQN_in_entryRuleImportedFQN17445);
             iv_ruleImportedFQN=ruleImportedFQN();
 
             state._fsp--;
 
              current =iv_ruleImportedFQN.getText(); 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleImportedFQN17455); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleImportedFQN17456); 
 
             }
 
@@ -20927,7 +20938,7 @@
              
                     newCompositeNode(grammarAccess.getImportedFQNAccess().getFQNParserRuleCall_0()); 
                 
-            pushFollow(FOLLOW_ruleFQN_in_ruleImportedFQN17502);
+            pushFollow(FOLLOW_ruleFQN_in_ruleImportedFQN17503);
             this_FQN_0=ruleFQN();
 
             state._fsp--;
@@ -20939,17 +20950,17 @@
                     afterParserOrEnumRuleCall();
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8399:1: (kw= '.*' )?
-            int alt170=2;
-            int LA170_0 = input.LA(1);
+            int alt171=2;
+            int LA171_0 = input.LA(1);
 
-            if ( (LA170_0==117) ) {
-                alt170=1;
+            if ( (LA171_0==117) ) {
+                alt171=1;
             }
-            switch (alt170) {
+            switch (alt171) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8400:2: kw= '.*'
                     {
-                    kw=(Token)match(input,117,FOLLOW_117_in_ruleImportedFQN17521); 
+                    kw=(Token)match(input,117,FOLLOW_117_in_ruleImportedFQN17522); 
 
                             current.merge(kw);
                             newLeafNode(kw, grammarAccess.getImportedFQNAccess().getFullStopAsteriskKeyword_1()); 
@@ -20993,13 +21004,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8415:2: iv_ruleDocumentation= ruleDocumentation EOF
             {
              newCompositeNode(grammarAccess.getDocumentationRule()); 
-            pushFollow(FOLLOW_ruleDocumentation_in_entryRuleDocumentation17563);
+            pushFollow(FOLLOW_ruleDocumentation_in_entryRuleDocumentation17564);
             iv_ruleDocumentation=ruleDocumentation();
 
             state._fsp--;
 
              current =iv_ruleDocumentation; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleDocumentation17573); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDocumentation17574); 
 
             }
 
@@ -21045,29 +21056,29 @@
 
             }
 
-            otherlv_1=(Token)match(input,34,FOLLOW_34_in_ruleDocumentation17619); 
+            otherlv_1=(Token)match(input,34,FOLLOW_34_in_ruleDocumentation17620); 
 
                 	newLeafNode(otherlv_1, grammarAccess.getDocumentationAccess().getLeftSquareBracketKeyword_1());
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8436:1: ( (lv_lines_2_0= RULE_STRING ) )*
-            loop171:
+            loop172:
             do {
-                int alt171=2;
-                int LA171_0 = input.LA(1);
+                int alt172=2;
+                int LA172_0 = input.LA(1);
 
-                if ( (LA171_0==RULE_STRING) ) {
-                    alt171=1;
+                if ( (LA172_0==RULE_STRING) ) {
+                    alt172=1;
                 }
 
 
-                switch (alt171) {
+                switch (alt172) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8437:1: (lv_lines_2_0= RULE_STRING )
             	    {
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8437:1: (lv_lines_2_0= RULE_STRING )
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8438:3: lv_lines_2_0= RULE_STRING
             	    {
-            	    lv_lines_2_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDocumentation17636); 
+            	    lv_lines_2_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDocumentation17637); 
 
             	    			newLeafNode(lv_lines_2_0, grammarAccess.getDocumentationAccess().getLinesSTRINGTerminalRuleCall_2_0()); 
             	    		
@@ -21089,11 +21100,11 @@
             	    break;
 
             	default :
-            	    break loop171;
+            	    break loop172;
                 }
             } while (true);
 
-            otherlv_3=(Token)match(input,35,FOLLOW_35_in_ruleDocumentation17654); 
+            otherlv_3=(Token)match(input,35,FOLLOW_35_in_ruleDocumentation17655); 
 
                 	newLeafNode(otherlv_3, grammarAccess.getDocumentationAccess().getRightSquareBracketKeyword_3());
                 
@@ -21130,13 +21141,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8472:2: iv_ruleLiteral= ruleLiteral EOF
             {
              newCompositeNode(grammarAccess.getLiteralRule()); 
-            pushFollow(FOLLOW_ruleLiteral_in_entryRuleLiteral17694);
+            pushFollow(FOLLOW_ruleLiteral_in_entryRuleLiteral17695);
             iv_ruleLiteral=ruleLiteral();
 
             state._fsp--;
 
              current =iv_ruleLiteral; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleLiteral17704); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleLiteral17705); 
 
             }
 
@@ -21172,12 +21183,12 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8483:1: (this_BooleanLiteral_0= ruleBooleanLiteral | this_NumberLiteral_1= ruleNumberLiteral | this_StringLiteral_2= ruleStringLiteral )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8483:1: (this_BooleanLiteral_0= ruleBooleanLiteral | this_NumberLiteral_1= ruleNumberLiteral | this_StringLiteral_2= ruleStringLiteral )
-            int alt172=3;
+            int alt173=3;
             switch ( input.LA(1) ) {
             case 118:
             case 119:
                 {
-                alt172=1;
+                alt173=1;
                 }
                 break;
             case RULE_INT:
@@ -21186,29 +21197,29 @@
             case 120:
             case 121:
                 {
-                alt172=2;
+                alt173=2;
                 }
                 break;
             case RULE_STRING:
                 {
-                alt172=3;
+                alt173=3;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 172, 0, input);
+                    new NoViableAltException("", 173, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt172) {
+            switch (alt173) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8484:5: this_BooleanLiteral_0= ruleBooleanLiteral
                     {
                      
                             newCompositeNode(grammarAccess.getLiteralAccess().getBooleanLiteralParserRuleCall_0()); 
                         
-                    pushFollow(FOLLOW_ruleBooleanLiteral_in_ruleLiteral17751);
+                    pushFollow(FOLLOW_ruleBooleanLiteral_in_ruleLiteral17752);
                     this_BooleanLiteral_0=ruleBooleanLiteral();
 
                     state._fsp--;
@@ -21226,7 +21237,7 @@
                      
                             newCompositeNode(grammarAccess.getLiteralAccess().getNumberLiteralParserRuleCall_1()); 
                         
-                    pushFollow(FOLLOW_ruleNumberLiteral_in_ruleLiteral17778);
+                    pushFollow(FOLLOW_ruleNumberLiteral_in_ruleLiteral17779);
                     this_NumberLiteral_1=ruleNumberLiteral();
 
                     state._fsp--;
@@ -21244,7 +21255,7 @@
                      
                             newCompositeNode(grammarAccess.getLiteralAccess().getStringLiteralParserRuleCall_2()); 
                         
-                    pushFollow(FOLLOW_ruleStringLiteral_in_ruleLiteral17805);
+                    pushFollow(FOLLOW_ruleStringLiteral_in_ruleLiteral17806);
                     this_StringLiteral_2=ruleStringLiteral();
 
                     state._fsp--;
@@ -21289,13 +21300,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8522:2: iv_ruleBooleanLiteral= ruleBooleanLiteral EOF
             {
              newCompositeNode(grammarAccess.getBooleanLiteralRule()); 
-            pushFollow(FOLLOW_ruleBooleanLiteral_in_entryRuleBooleanLiteral17840);
+            pushFollow(FOLLOW_ruleBooleanLiteral_in_entryRuleBooleanLiteral17841);
             iv_ruleBooleanLiteral=ruleBooleanLiteral();
 
             state._fsp--;
 
              current =iv_ruleBooleanLiteral; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleBooleanLiteral17850); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleBooleanLiteral17851); 
 
             }
 
@@ -21341,26 +21352,26 @@
             }
 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8539:2: (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
-            int alt173=2;
-            int LA173_0 = input.LA(1);
+            int alt174=2;
+            int LA174_0 = input.LA(1);
 
-            if ( (LA173_0==118) ) {
-                alt173=1;
+            if ( (LA174_0==118) ) {
+                alt174=1;
             }
-            else if ( (LA173_0==119) ) {
-                alt173=2;
+            else if ( (LA174_0==119) ) {
+                alt174=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 173, 0, input);
+                    new NoViableAltException("", 174, 0, input);
 
                 throw nvae;
             }
-            switch (alt173) {
+            switch (alt174) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8539:4: otherlv_1= 'false'
                     {
-                    otherlv_1=(Token)match(input,118,FOLLOW_118_in_ruleBooleanLiteral17897); 
+                    otherlv_1=(Token)match(input,118,FOLLOW_118_in_ruleBooleanLiteral17898); 
 
                         	newLeafNode(otherlv_1, grammarAccess.getBooleanLiteralAccess().getFalseKeyword_1_0());
                         
@@ -21376,7 +21387,7 @@
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8545:1: (lv_isTrue_2_0= 'true' )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8546:3: lv_isTrue_2_0= 'true'
                     {
-                    lv_isTrue_2_0=(Token)match(input,119,FOLLOW_119_in_ruleBooleanLiteral17921); 
+                    lv_isTrue_2_0=(Token)match(input,119,FOLLOW_119_in_ruleBooleanLiteral17922); 
 
                             newLeafNode(lv_isTrue_2_0, grammarAccess.getBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0());
                         
@@ -21431,13 +21442,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8569:2: iv_ruleNumberLiteral= ruleNumberLiteral EOF
             {
              newCompositeNode(grammarAccess.getNumberLiteralRule()); 
-            pushFollow(FOLLOW_ruleNumberLiteral_in_entryRuleNumberLiteral17971);
+            pushFollow(FOLLOW_ruleNumberLiteral_in_entryRuleNumberLiteral17972);
             iv_ruleNumberLiteral=ruleNumberLiteral();
 
             state._fsp--;
 
              current =iv_ruleNumberLiteral; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleNumberLiteral17981); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleNumberLiteral17982); 
 
             }
 
@@ -21471,34 +21482,34 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8580:1: (this_IntLiteral_0= ruleIntLiteral | this_RealLiteral_1= ruleRealLiteral )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8580:1: (this_IntLiteral_0= ruleIntLiteral | this_RealLiteral_1= ruleRealLiteral )
-            int alt174=2;
+            int alt175=2;
             switch ( input.LA(1) ) {
             case 120:
                 {
-                int LA174_1 = input.LA(2);
+                int LA175_1 = input.LA(2);
 
-                if ( (LA174_1==RULE_INT) ) {
-                    int LA174_3 = input.LA(3);
+                if ( (LA175_1==72) ) {
+                    alt175=2;
+                }
+                else if ( (LA175_1==RULE_INT) ) {
+                    int LA175_3 = input.LA(3);
 
-                    if ( (LA174_3==72) ) {
-                        alt174=2;
+                    if ( (LA175_3==72) ) {
+                        alt175=2;
                     }
-                    else if ( (LA174_3==EOF||LA174_3==21||LA174_3==25) ) {
-                        alt174=1;
+                    else if ( (LA175_3==EOF||LA175_3==21||LA175_3==25) ) {
+                        alt175=1;
                     }
                     else {
                         NoViableAltException nvae =
-                            new NoViableAltException("", 174, 3, input);
+                            new NoViableAltException("", 175, 3, input);
 
                         throw nvae;
                     }
                 }
-                else if ( (LA174_1==72) ) {
-                    alt174=2;
-                }
                 else {
                     NoViableAltException nvae =
-                        new NoViableAltException("", 174, 1, input);
+                        new NoViableAltException("", 175, 1, input);
 
                     throw nvae;
                 }
@@ -21506,30 +21517,30 @@
                 break;
             case 121:
                 {
-                int LA174_2 = input.LA(2);
+                int LA175_2 = input.LA(2);
 
-                if ( (LA174_2==72) ) {
-                    alt174=2;
-                }
-                else if ( (LA174_2==RULE_INT) ) {
-                    int LA174_3 = input.LA(3);
+                if ( (LA175_2==RULE_INT) ) {
+                    int LA175_3 = input.LA(3);
 
-                    if ( (LA174_3==72) ) {
-                        alt174=2;
+                    if ( (LA175_3==72) ) {
+                        alt175=2;
                     }
-                    else if ( (LA174_3==EOF||LA174_3==21||LA174_3==25) ) {
-                        alt174=1;
+                    else if ( (LA175_3==EOF||LA175_3==21||LA175_3==25) ) {
+                        alt175=1;
                     }
                     else {
                         NoViableAltException nvae =
-                            new NoViableAltException("", 174, 3, input);
+                            new NoViableAltException("", 175, 3, input);
 
                         throw nvae;
                     }
                 }
+                else if ( (LA175_2==72) ) {
+                    alt175=2;
+                }
                 else {
                     NoViableAltException nvae =
-                        new NoViableAltException("", 174, 2, input);
+                        new NoViableAltException("", 175, 2, input);
 
                     throw nvae;
                 }
@@ -21537,17 +21548,17 @@
                 break;
             case RULE_INT:
                 {
-                int LA174_3 = input.LA(2);
+                int LA175_3 = input.LA(2);
 
-                if ( (LA174_3==72) ) {
-                    alt174=2;
+                if ( (LA175_3==72) ) {
+                    alt175=2;
                 }
-                else if ( (LA174_3==EOF||LA174_3==21||LA174_3==25) ) {
-                    alt174=1;
+                else if ( (LA175_3==EOF||LA175_3==21||LA175_3==25) ) {
+                    alt175=1;
                 }
                 else {
                     NoViableAltException nvae =
-                        new NoViableAltException("", 174, 3, input);
+                        new NoViableAltException("", 175, 3, input);
 
                     throw nvae;
                 }
@@ -21555,29 +21566,29 @@
                 break;
             case RULE_HEX:
                 {
-                alt174=1;
+                alt175=1;
                 }
                 break;
             case 72:
                 {
-                alt174=2;
+                alt175=2;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 174, 0, input);
+                    new NoViableAltException("", 175, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt174) {
+            switch (alt175) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8581:5: this_IntLiteral_0= ruleIntLiteral
                     {
                      
                             newCompositeNode(grammarAccess.getNumberLiteralAccess().getIntLiteralParserRuleCall_0()); 
                         
-                    pushFollow(FOLLOW_ruleIntLiteral_in_ruleNumberLiteral18028);
+                    pushFollow(FOLLOW_ruleIntLiteral_in_ruleNumberLiteral18029);
                     this_IntLiteral_0=ruleIntLiteral();
 
                     state._fsp--;
@@ -21595,7 +21606,7 @@
                      
                             newCompositeNode(grammarAccess.getNumberLiteralAccess().getRealLiteralParserRuleCall_1()); 
                         
-                    pushFollow(FOLLOW_ruleRealLiteral_in_ruleNumberLiteral18055);
+                    pushFollow(FOLLOW_ruleRealLiteral_in_ruleNumberLiteral18056);
                     this_RealLiteral_1=ruleRealLiteral();
 
                     state._fsp--;
@@ -21640,13 +21651,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8609:2: iv_ruleRealLiteral= ruleRealLiteral EOF
             {
              newCompositeNode(grammarAccess.getRealLiteralRule()); 
-            pushFollow(FOLLOW_ruleRealLiteral_in_entryRuleRealLiteral18090);
+            pushFollow(FOLLOW_ruleRealLiteral_in_entryRuleRealLiteral18091);
             iv_ruleRealLiteral=ruleRealLiteral();
 
             state._fsp--;
 
              current =iv_ruleRealLiteral; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleRealLiteral18100); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleRealLiteral18101); 
 
             }
 
@@ -21700,7 +21711,7 @@
              
             	        newCompositeNode(grammarAccess.getRealLiteralAccess().getValueRealParserRuleCall_1_0()); 
             	    
-            pushFollow(FOLLOW_ruleReal_in_ruleRealLiteral18155);
+            pushFollow(FOLLOW_ruleReal_in_ruleRealLiteral18156);
             lv_value_1_0=ruleReal();
 
             state._fsp--;
@@ -21755,13 +21766,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8654:2: iv_ruleIntLiteral= ruleIntLiteral EOF
             {
              newCompositeNode(grammarAccess.getIntLiteralRule()); 
-            pushFollow(FOLLOW_ruleIntLiteral_in_entryRuleIntLiteral18191);
+            pushFollow(FOLLOW_ruleIntLiteral_in_entryRuleIntLiteral18192);
             iv_ruleIntLiteral=ruleIntLiteral();
 
             state._fsp--;
 
              current =iv_ruleIntLiteral; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleIntLiteral18201); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleIntLiteral18202); 
 
             }
 
@@ -21815,7 +21826,7 @@
              
             	        newCompositeNode(grammarAccess.getIntLiteralAccess().getValueIntegerParserRuleCall_1_0()); 
             	    
-            pushFollow(FOLLOW_ruleInteger_in_ruleIntLiteral18256);
+            pushFollow(FOLLOW_ruleInteger_in_ruleIntLiteral18257);
             lv_value_1_0=ruleInteger();
 
             state._fsp--;
@@ -21870,13 +21881,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8699:2: iv_ruleStringLiteral= ruleStringLiteral EOF
             {
              newCompositeNode(grammarAccess.getStringLiteralRule()); 
-            pushFollow(FOLLOW_ruleStringLiteral_in_entryRuleStringLiteral18292);
+            pushFollow(FOLLOW_ruleStringLiteral_in_entryRuleStringLiteral18293);
             iv_ruleStringLiteral=ruleStringLiteral();
 
             state._fsp--;
 
              current =iv_ruleStringLiteral; 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleStringLiteral18302); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleStringLiteral18303); 
 
             }
 
@@ -21926,7 +21937,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8717:1: (lv_value_1_0= RULE_STRING )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8718:3: lv_value_1_0= RULE_STRING
             {
-            lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleStringLiteral18353); 
+            lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleStringLiteral18354); 
 
             			newLeafNode(lv_value_1_0, grammarAccess.getStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0()); 
             		
@@ -21979,13 +21990,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8744:2: iv_ruleInteger= ruleInteger EOF
             {
              newCompositeNode(grammarAccess.getIntegerRule()); 
-            pushFollow(FOLLOW_ruleInteger_in_entryRuleInteger18395);
+            pushFollow(FOLLOW_ruleInteger_in_entryRuleInteger18396);
             iv_ruleInteger=ruleInteger();
 
             state._fsp--;
 
              current =iv_ruleInteger.getText(); 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleInteger18406); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleInteger18407); 
 
             }
 
@@ -22019,29 +22030,29 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8755:1: (this_SignedInteger_0= ruleSignedInteger | this_Hexadecimal_1= ruleHexadecimal )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8755:1: (this_SignedInteger_0= ruleSignedInteger | this_Hexadecimal_1= ruleHexadecimal )
-            int alt175=2;
-            int LA175_0 = input.LA(1);
+            int alt176=2;
+            int LA176_0 = input.LA(1);
 
-            if ( (LA175_0==RULE_INT||(LA175_0>=120 && LA175_0<=121)) ) {
-                alt175=1;
+            if ( (LA176_0==RULE_INT||(LA176_0>=120 && LA176_0<=121)) ) {
+                alt176=1;
             }
-            else if ( (LA175_0==RULE_HEX) ) {
-                alt175=2;
+            else if ( (LA176_0==RULE_HEX) ) {
+                alt176=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 175, 0, input);
+                    new NoViableAltException("", 176, 0, input);
 
                 throw nvae;
             }
-            switch (alt175) {
+            switch (alt176) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8756:5: this_SignedInteger_0= ruleSignedInteger
                     {
                      
                             newCompositeNode(grammarAccess.getIntegerAccess().getSignedIntegerParserRuleCall_0()); 
                         
-                    pushFollow(FOLLOW_ruleSignedInteger_in_ruleInteger18453);
+                    pushFollow(FOLLOW_ruleSignedInteger_in_ruleInteger18454);
                     this_SignedInteger_0=ruleSignedInteger();
 
                     state._fsp--;
@@ -22061,7 +22072,7 @@
                      
                             newCompositeNode(grammarAccess.getIntegerAccess().getHexadecimalParserRuleCall_1()); 
                         
-                    pushFollow(FOLLOW_ruleHexadecimal_in_ruleInteger18486);
+                    pushFollow(FOLLOW_ruleHexadecimal_in_ruleInteger18487);
                     this_Hexadecimal_1=ruleHexadecimal();
 
                     state._fsp--;
@@ -22111,13 +22122,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8791:2: iv_ruleSignedInteger= ruleSignedInteger EOF
             {
              newCompositeNode(grammarAccess.getSignedIntegerRule()); 
-            pushFollow(FOLLOW_ruleSignedInteger_in_entryRuleSignedInteger18538);
+            pushFollow(FOLLOW_ruleSignedInteger_in_entryRuleSignedInteger18539);
             iv_ruleSignedInteger=ruleSignedInteger();
 
             state._fsp--;
 
              current =iv_ruleSignedInteger.getText(); 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleSignedInteger18549); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleSignedInteger18550); 
 
             }
 
@@ -22156,20 +22167,20 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8806:2: (kw= '+' | kw= '-' )? this_INT_2= RULE_INT
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8806:2: (kw= '+' | kw= '-' )?
-            int alt176=3;
-            int LA176_0 = input.LA(1);
+            int alt177=3;
+            int LA177_0 = input.LA(1);
 
-            if ( (LA176_0==120) ) {
-                alt176=1;
+            if ( (LA177_0==120) ) {
+                alt177=1;
             }
-            else if ( (LA176_0==121) ) {
-                alt176=2;
+            else if ( (LA177_0==121) ) {
+                alt177=2;
             }
-            switch (alt176) {
+            switch (alt177) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8807:2: kw= '+'
                     {
-                    kw=(Token)match(input,120,FOLLOW_120_in_ruleSignedInteger18592); 
+                    kw=(Token)match(input,120,FOLLOW_120_in_ruleSignedInteger18593); 
 
                             current.merge(kw);
                             newLeafNode(kw, grammarAccess.getSignedIntegerAccess().getPlusSignKeyword_0_0()); 
@@ -22180,7 +22191,7 @@
                 case 2 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8814:2: kw= '-'
                     {
-                    kw=(Token)match(input,121,FOLLOW_121_in_ruleSignedInteger18611); 
+                    kw=(Token)match(input,121,FOLLOW_121_in_ruleSignedInteger18612); 
 
                             current.merge(kw);
                             newLeafNode(kw, grammarAccess.getSignedIntegerAccess().getHyphenMinusKeyword_0_1()); 
@@ -22191,7 +22202,7 @@
 
             }
 
-            this_INT_2=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSignedInteger18628); 
+            this_INT_2=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSignedInteger18629); 
 
             		current.merge(this_INT_2);
                 
@@ -22237,13 +22248,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8842:2: iv_ruleHexadecimal= ruleHexadecimal EOF
             {
              newCompositeNode(grammarAccess.getHexadecimalRule()); 
-            pushFollow(FOLLOW_ruleHexadecimal_in_entryRuleHexadecimal18684);
+            pushFollow(FOLLOW_ruleHexadecimal_in_entryRuleHexadecimal18685);
             iv_ruleHexadecimal=ruleHexadecimal();
 
             state._fsp--;
 
              current =iv_ruleHexadecimal.getText(); 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleHexadecimal18695); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleHexadecimal18696); 
 
             }
 
@@ -22277,7 +22288,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8856:28: (this_HEX_0= RULE_HEX )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8857:5: this_HEX_0= RULE_HEX
             {
-            this_HEX_0=(Token)match(input,RULE_HEX,FOLLOW_RULE_HEX_in_ruleHexadecimal18738); 
+            this_HEX_0=(Token)match(input,RULE_HEX,FOLLOW_RULE_HEX_in_ruleHexadecimal18739); 
 
             		current.merge(this_HEX_0);
                 
@@ -22317,13 +22328,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8877:2: iv_ruleReal= ruleReal EOF
             {
              newCompositeNode(grammarAccess.getRealRule()); 
-            pushFollow(FOLLOW_ruleReal_in_entryRuleReal18787);
+            pushFollow(FOLLOW_ruleReal_in_entryRuleReal18788);
             iv_ruleReal=ruleReal();
 
             state._fsp--;
 
              current =iv_ruleReal.getText(); 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleReal18798); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleReal18799); 
 
             }
 
@@ -22361,16 +22372,16 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8888:1: (this_Decimal_0= ruleDecimal | this_DotDecimal_1= ruleDotDecimal | this_DecimalDot_2= ruleDecimalDot | this_DecimalExp_3= ruleDecimalExp )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8888:1: (this_Decimal_0= ruleDecimal | this_DotDecimal_1= ruleDotDecimal | this_DecimalDot_2= ruleDecimalDot | this_DecimalExp_3= ruleDecimalExp )
-            int alt177=4;
-            alt177 = dfa177.predict(input);
-            switch (alt177) {
+            int alt178=4;
+            alt178 = dfa178.predict(input);
+            switch (alt178) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8889:5: this_Decimal_0= ruleDecimal
                     {
                      
                             newCompositeNode(grammarAccess.getRealAccess().getDecimalParserRuleCall_0()); 
                         
-                    pushFollow(FOLLOW_ruleDecimal_in_ruleReal18845);
+                    pushFollow(FOLLOW_ruleDecimal_in_ruleReal18846);
                     this_Decimal_0=ruleDecimal();
 
                     state._fsp--;
@@ -22390,7 +22401,7 @@
                      
                             newCompositeNode(grammarAccess.getRealAccess().getDotDecimalParserRuleCall_1()); 
                         
-                    pushFollow(FOLLOW_ruleDotDecimal_in_ruleReal18878);
+                    pushFollow(FOLLOW_ruleDotDecimal_in_ruleReal18879);
                     this_DotDecimal_1=ruleDotDecimal();
 
                     state._fsp--;
@@ -22410,7 +22421,7 @@
                      
                             newCompositeNode(grammarAccess.getRealAccess().getDecimalDotParserRuleCall_2()); 
                         
-                    pushFollow(FOLLOW_ruleDecimalDot_in_ruleReal18911);
+                    pushFollow(FOLLOW_ruleDecimalDot_in_ruleReal18912);
                     this_DecimalDot_2=ruleDecimalDot();
 
                     state._fsp--;
@@ -22430,7 +22441,7 @@
                      
                             newCompositeNode(grammarAccess.getRealAccess().getDecimalExpParserRuleCall_3()); 
                         
-                    pushFollow(FOLLOW_ruleDecimalExp_in_ruleReal18944);
+                    pushFollow(FOLLOW_ruleDecimalExp_in_ruleReal18945);
                     this_DecimalExp_3=ruleDecimalExp();
 
                     state._fsp--;
@@ -22480,13 +22491,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8948:2: iv_ruleDecimal= ruleDecimal EOF
             {
              newCompositeNode(grammarAccess.getDecimalRule()); 
-            pushFollow(FOLLOW_ruleDecimal_in_entryRuleDecimal18996);
+            pushFollow(FOLLOW_ruleDecimal_in_entryRuleDecimal18997);
             iv_ruleDecimal=ruleDecimal();
 
             state._fsp--;
 
              current =iv_ruleDecimal.getText(); 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleDecimal19007); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDecimal19008); 
 
             }
 
@@ -22526,20 +22537,20 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8963:2: (kw= '+' | kw= '-' )? this_INT_2= RULE_INT kw= '.' this_INT_4= RULE_INT
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8963:2: (kw= '+' | kw= '-' )?
-            int alt178=3;
-            int LA178_0 = input.LA(1);
+            int alt179=3;
+            int LA179_0 = input.LA(1);
 
-            if ( (LA178_0==120) ) {
-                alt178=1;
+            if ( (LA179_0==120) ) {
+                alt179=1;
             }
-            else if ( (LA178_0==121) ) {
-                alt178=2;
+            else if ( (LA179_0==121) ) {
+                alt179=2;
             }
-            switch (alt178) {
+            switch (alt179) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8964:2: kw= '+'
                     {
-                    kw=(Token)match(input,120,FOLLOW_120_in_ruleDecimal19050); 
+                    kw=(Token)match(input,120,FOLLOW_120_in_ruleDecimal19051); 
 
                             current.merge(kw);
                             newLeafNode(kw, grammarAccess.getDecimalAccess().getPlusSignKeyword_0_0()); 
@@ -22550,7 +22561,7 @@
                 case 2 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:8971:2: kw= '-'
                     {
-                    kw=(Token)match(input,121,FOLLOW_121_in_ruleDecimal19069); 
+                    kw=(Token)match(input,121,FOLLOW_121_in_ruleDecimal19070); 
 
                             current.merge(kw);
                             newLeafNode(kw, grammarAccess.getDecimalAccess().getHyphenMinusKeyword_0_1()); 
@@ -22561,19 +22572,19 @@
 
             }
 
-            this_INT_2=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleDecimal19086); 
+            this_INT_2=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleDecimal19087); 
 
             		current.merge(this_INT_2);
                 
              
                 newLeafNode(this_INT_2, grammarAccess.getDecimalAccess().getINTTerminalRuleCall_1()); 
                 
-            kw=(Token)match(input,72,FOLLOW_72_in_ruleDecimal19104); 
+            kw=(Token)match(input,72,FOLLOW_72_in_ruleDecimal19105); 
 
                     current.merge(kw);
                     newLeafNode(kw, grammarAccess.getDecimalAccess().getFullStopKeyword_2()); 
                 
-            this_INT_4=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleDecimal19119); 
+            this_INT_4=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleDecimal19120); 
 
             		current.merge(this_INT_4);
                 
@@ -22619,13 +22630,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9012:2: iv_ruleDotDecimal= ruleDotDecimal EOF
             {
              newCompositeNode(grammarAccess.getDotDecimalRule()); 
-            pushFollow(FOLLOW_ruleDotDecimal_in_entryRuleDotDecimal19175);
+            pushFollow(FOLLOW_ruleDotDecimal_in_entryRuleDotDecimal19176);
             iv_ruleDotDecimal=ruleDotDecimal();
 
             state._fsp--;
 
              current =iv_ruleDotDecimal.getText(); 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleDotDecimal19186); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDotDecimal19187); 
 
             }
 
@@ -22664,20 +22675,20 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9027:2: (kw= '+' | kw= '-' )? kw= '.' this_INT_3= RULE_INT
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9027:2: (kw= '+' | kw= '-' )?
-            int alt179=3;
-            int LA179_0 = input.LA(1);
+            int alt180=3;
+            int LA180_0 = input.LA(1);
 
-            if ( (LA179_0==120) ) {
-                alt179=1;
+            if ( (LA180_0==120) ) {
+                alt180=1;
             }
-            else if ( (LA179_0==121) ) {
-                alt179=2;
+            else if ( (LA180_0==121) ) {
+                alt180=2;
             }
-            switch (alt179) {
+            switch (alt180) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9028:2: kw= '+'
                     {
-                    kw=(Token)match(input,120,FOLLOW_120_in_ruleDotDecimal19229); 
+                    kw=(Token)match(input,120,FOLLOW_120_in_ruleDotDecimal19230); 
 
                             current.merge(kw);
                             newLeafNode(kw, grammarAccess.getDotDecimalAccess().getPlusSignKeyword_0_0()); 
@@ -22688,7 +22699,7 @@
                 case 2 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9035:2: kw= '-'
                     {
-                    kw=(Token)match(input,121,FOLLOW_121_in_ruleDotDecimal19248); 
+                    kw=(Token)match(input,121,FOLLOW_121_in_ruleDotDecimal19249); 
 
                             current.merge(kw);
                             newLeafNode(kw, grammarAccess.getDotDecimalAccess().getHyphenMinusKeyword_0_1()); 
@@ -22699,12 +22710,12 @@
 
             }
 
-            kw=(Token)match(input,72,FOLLOW_72_in_ruleDotDecimal19263); 
+            kw=(Token)match(input,72,FOLLOW_72_in_ruleDotDecimal19264); 
 
                     current.merge(kw);
                     newLeafNode(kw, grammarAccess.getDotDecimalAccess().getFullStopKeyword_1()); 
                 
-            this_INT_3=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleDotDecimal19278); 
+            this_INT_3=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleDotDecimal19279); 
 
             		current.merge(this_INT_3);
                 
@@ -22750,13 +22761,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9069:2: iv_ruleDecimalDot= ruleDecimalDot EOF
             {
              newCompositeNode(grammarAccess.getDecimalDotRule()); 
-            pushFollow(FOLLOW_ruleDecimalDot_in_entryRuleDecimalDot19334);
+            pushFollow(FOLLOW_ruleDecimalDot_in_entryRuleDecimalDot19335);
             iv_ruleDecimalDot=ruleDecimalDot();
 
             state._fsp--;
 
              current =iv_ruleDecimalDot.getText(); 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleDecimalDot19345); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDecimalDot19346); 
 
             }
 
@@ -22795,20 +22806,20 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9084:2: (kw= '+' | kw= '-' )? this_INT_2= RULE_INT kw= '.'
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9084:2: (kw= '+' | kw= '-' )?
-            int alt180=3;
-            int LA180_0 = input.LA(1);
+            int alt181=3;
+            int LA181_0 = input.LA(1);
 
-            if ( (LA180_0==120) ) {
-                alt180=1;
+            if ( (LA181_0==120) ) {
+                alt181=1;
             }
-            else if ( (LA180_0==121) ) {
-                alt180=2;
+            else if ( (LA181_0==121) ) {
+                alt181=2;
             }
-            switch (alt180) {
+            switch (alt181) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9085:2: kw= '+'
                     {
-                    kw=(Token)match(input,120,FOLLOW_120_in_ruleDecimalDot19388); 
+                    kw=(Token)match(input,120,FOLLOW_120_in_ruleDecimalDot19389); 
 
                             current.merge(kw);
                             newLeafNode(kw, grammarAccess.getDecimalDotAccess().getPlusSignKeyword_0_0()); 
@@ -22819,7 +22830,7 @@
                 case 2 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9092:2: kw= '-'
                     {
-                    kw=(Token)match(input,121,FOLLOW_121_in_ruleDecimalDot19407); 
+                    kw=(Token)match(input,121,FOLLOW_121_in_ruleDecimalDot19408); 
 
                             current.merge(kw);
                             newLeafNode(kw, grammarAccess.getDecimalDotAccess().getHyphenMinusKeyword_0_1()); 
@@ -22830,14 +22841,14 @@
 
             }
 
-            this_INT_2=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleDecimalDot19424); 
+            this_INT_2=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleDecimalDot19425); 
 
             		current.merge(this_INT_2);
                 
              
                 newLeafNode(this_INT_2, grammarAccess.getDecimalDotAccess().getINTTerminalRuleCall_1()); 
                 
-            kw=(Token)match(input,72,FOLLOW_72_in_ruleDecimalDot19442); 
+            kw=(Token)match(input,72,FOLLOW_72_in_ruleDecimalDot19443); 
 
                     current.merge(kw);
                     newLeafNode(kw, grammarAccess.getDecimalDotAccess().getFullStopKeyword_2()); 
@@ -22881,13 +22892,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9126:2: iv_ruleDecimalExp= ruleDecimalExp EOF
             {
              newCompositeNode(grammarAccess.getDecimalExpRule()); 
-            pushFollow(FOLLOW_ruleDecimalExp_in_entryRuleDecimalExp19493);
+            pushFollow(FOLLOW_ruleDecimalExp_in_entryRuleDecimalExp19494);
             iv_ruleDecimalExp=ruleDecimalExp();
 
             state._fsp--;
 
              current =iv_ruleDecimalExp.getText(); 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleDecimalExp19504); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDecimalExp19505); 
 
             }
 
@@ -22928,20 +22939,20 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9141:2: (kw= '+' | kw= '-' )? this_INT_2= RULE_INT kw= '.' this_INT_4= RULE_INT this_EXP_5= RULE_EXP
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9141:2: (kw= '+' | kw= '-' )?
-            int alt181=3;
-            int LA181_0 = input.LA(1);
+            int alt182=3;
+            int LA182_0 = input.LA(1);
 
-            if ( (LA181_0==120) ) {
-                alt181=1;
+            if ( (LA182_0==120) ) {
+                alt182=1;
             }
-            else if ( (LA181_0==121) ) {
-                alt181=2;
+            else if ( (LA182_0==121) ) {
+                alt182=2;
             }
-            switch (alt181) {
+            switch (alt182) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9142:2: kw= '+'
                     {
-                    kw=(Token)match(input,120,FOLLOW_120_in_ruleDecimalExp19547); 
+                    kw=(Token)match(input,120,FOLLOW_120_in_ruleDecimalExp19548); 
 
                             current.merge(kw);
                             newLeafNode(kw, grammarAccess.getDecimalExpAccess().getPlusSignKeyword_0_0()); 
@@ -22952,7 +22963,7 @@
                 case 2 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9149:2: kw= '-'
                     {
-                    kw=(Token)match(input,121,FOLLOW_121_in_ruleDecimalExp19566); 
+                    kw=(Token)match(input,121,FOLLOW_121_in_ruleDecimalExp19567); 
 
                             current.merge(kw);
                             newLeafNode(kw, grammarAccess.getDecimalExpAccess().getHyphenMinusKeyword_0_1()); 
@@ -22963,26 +22974,26 @@
 
             }
 
-            this_INT_2=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleDecimalExp19583); 
+            this_INT_2=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleDecimalExp19584); 
 
             		current.merge(this_INT_2);
                 
              
                 newLeafNode(this_INT_2, grammarAccess.getDecimalExpAccess().getINTTerminalRuleCall_1()); 
                 
-            kw=(Token)match(input,72,FOLLOW_72_in_ruleDecimalExp19601); 
+            kw=(Token)match(input,72,FOLLOW_72_in_ruleDecimalExp19602); 
 
                     current.merge(kw);
                     newLeafNode(kw, grammarAccess.getDecimalExpAccess().getFullStopKeyword_2()); 
                 
-            this_INT_4=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleDecimalExp19616); 
+            this_INT_4=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleDecimalExp19617); 
 
             		current.merge(this_INT_4);
                 
              
                 newLeafNode(this_INT_4, grammarAccess.getDecimalExpAccess().getINTTerminalRuleCall_3()); 
                 
-            this_EXP_5=(Token)match(input,RULE_EXP,FOLLOW_RULE_EXP_in_ruleDecimalExp19636); 
+            this_EXP_5=(Token)match(input,RULE_EXP,FOLLOW_RULE_EXP_in_ruleDecimalExp19637); 
 
             		current.merge(this_EXP_5);
                 
@@ -23025,13 +23036,13 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9194:2: iv_ruleFQN= ruleFQN EOF
             {
              newCompositeNode(grammarAccess.getFQNRule()); 
-            pushFollow(FOLLOW_ruleFQN_in_entryRuleFQN19686);
+            pushFollow(FOLLOW_ruleFQN_in_entryRuleFQN19687);
             iv_ruleFQN=ruleFQN();
 
             state._fsp--;
 
              current =iv_ruleFQN.getText(); 
-            match(input,EOF,FOLLOW_EOF_in_entryRuleFQN19697); 
+            match(input,EOF,FOLLOW_EOF_in_entryRuleFQN19698); 
 
             }
 
@@ -23066,7 +23077,7 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9205:1: (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* )
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9205:6: this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )*
             {
-            this_ID_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleFQN19737); 
+            this_ID_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleFQN19738); 
 
             		current.merge(this_ID_0);
                 
@@ -23074,26 +23085,26 @@
                 newLeafNode(this_ID_0, grammarAccess.getFQNAccess().getIDTerminalRuleCall_0()); 
                 
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9212:1: (kw= '.' this_ID_2= RULE_ID )*
-            loop182:
+            loop183:
             do {
-                int alt182=2;
-                int LA182_0 = input.LA(1);
+                int alt183=2;
+                int LA183_0 = input.LA(1);
 
-                if ( (LA182_0==72) ) {
-                    alt182=1;
+                if ( (LA183_0==72) ) {
+                    alt183=1;
                 }
 
 
-                switch (alt182) {
+                switch (alt183) {
             	case 1 :
             	    // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9213:2: kw= '.' this_ID_2= RULE_ID
             	    {
-            	    kw=(Token)match(input,72,FOLLOW_72_in_ruleFQN19756); 
+            	    kw=(Token)match(input,72,FOLLOW_72_in_ruleFQN19757); 
 
             	            current.merge(kw);
             	            newLeafNode(kw, grammarAccess.getFQNAccess().getFullStopKeyword_1_0()); 
             	        
-            	    this_ID_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleFQN19771); 
+            	    this_ID_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleFQN19772); 
 
             	    		current.merge(this_ID_2);
             	        
@@ -23105,7 +23116,7 @@
             	    break;
 
             	default :
-            	    break loop182;
+            	    break loop183;
                 }
             } while (true);
 
@@ -23144,38 +23155,38 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9236:1: ( (enumLiteral_0= 'eventdriven' ) | (enumLiteral_1= 'datadriven' ) | (enumLiteral_2= 'sync' ) )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9236:1: ( (enumLiteral_0= 'eventdriven' ) | (enumLiteral_1= 'datadriven' ) | (enumLiteral_2= 'sync' ) )
-            int alt183=3;
+            int alt184=3;
             switch ( input.LA(1) ) {
             case 122:
                 {
-                alt183=1;
+                alt184=1;
                 }
                 break;
             case 123:
                 {
-                alt183=2;
+                alt184=2;
                 }
                 break;
             case 124:
                 {
-                alt183=3;
+                alt184=3;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 183, 0, input);
+                    new NoViableAltException("", 184, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt183) {
+            switch (alt184) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9236:2: (enumLiteral_0= 'eventdriven' )
                     {
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9236:2: (enumLiteral_0= 'eventdriven' )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9236:4: enumLiteral_0= 'eventdriven'
                     {
-                    enumLiteral_0=(Token)match(input,122,FOLLOW_122_in_ruleCommunicationType19832); 
+                    enumLiteral_0=(Token)match(input,122,FOLLOW_122_in_ruleCommunicationType19833); 
 
                             current = grammarAccess.getCommunicationTypeAccess().getEVENT_DRIVENEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                             newLeafNode(enumLiteral_0, grammarAccess.getCommunicationTypeAccess().getEVENT_DRIVENEnumLiteralDeclaration_0()); 
@@ -23192,7 +23203,7 @@
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9242:6: (enumLiteral_1= 'datadriven' )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9242:8: enumLiteral_1= 'datadriven'
                     {
-                    enumLiteral_1=(Token)match(input,123,FOLLOW_123_in_ruleCommunicationType19849); 
+                    enumLiteral_1=(Token)match(input,123,FOLLOW_123_in_ruleCommunicationType19850); 
 
                             current = grammarAccess.getCommunicationTypeAccess().getDATA_DRIVENEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                             newLeafNode(enumLiteral_1, grammarAccess.getCommunicationTypeAccess().getDATA_DRIVENEnumLiteralDeclaration_1()); 
@@ -23209,7 +23220,7 @@
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9248:6: (enumLiteral_2= 'sync' )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9248:8: enumLiteral_2= 'sync'
                     {
-                    enumLiteral_2=(Token)match(input,124,FOLLOW_124_in_ruleCommunicationType19866); 
+                    enumLiteral_2=(Token)match(input,124,FOLLOW_124_in_ruleCommunicationType19867); 
 
                             current = grammarAccess.getCommunicationTypeAccess().getSYNCHRONOUSEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                             newLeafNode(enumLiteral_2, grammarAccess.getCommunicationTypeAccess().getSYNCHRONOUSEnumLiteralDeclaration_2()); 
@@ -23254,29 +23265,29 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9261:1: ( (enumLiteral_0= 'fixed' ) | (enumLiteral_1= 'optional' ) )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9261:1: ( (enumLiteral_0= 'fixed' ) | (enumLiteral_1= 'optional' ) )
-            int alt184=2;
-            int LA184_0 = input.LA(1);
+            int alt185=2;
+            int LA185_0 = input.LA(1);
 
-            if ( (LA184_0==125) ) {
-                alt184=1;
+            if ( (LA185_0==125) ) {
+                alt185=1;
             }
-            else if ( (LA184_0==111) ) {
-                alt184=2;
+            else if ( (LA185_0==111) ) {
+                alt185=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 184, 0, input);
+                    new NoViableAltException("", 185, 0, input);
 
                 throw nvae;
             }
-            switch (alt184) {
+            switch (alt185) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9261:2: (enumLiteral_0= 'fixed' )
                     {
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9261:2: (enumLiteral_0= 'fixed' )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9261:4: enumLiteral_0= 'fixed'
                     {
-                    enumLiteral_0=(Token)match(input,125,FOLLOW_125_in_ruleReferenceType19911); 
+                    enumLiteral_0=(Token)match(input,125,FOLLOW_125_in_ruleReferenceType19912); 
 
                             current = grammarAccess.getReferenceTypeAccess().getFIXEDEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                             newLeafNode(enumLiteral_0, grammarAccess.getReferenceTypeAccess().getFIXEDEnumLiteralDeclaration_0()); 
@@ -23293,7 +23304,7 @@
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9267:6: (enumLiteral_1= 'optional' )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9267:8: enumLiteral_1= 'optional'
                     {
-                    enumLiteral_1=(Token)match(input,111,FOLLOW_111_in_ruleReferenceType19928); 
+                    enumLiteral_1=(Token)match(input,111,FOLLOW_111_in_ruleReferenceType19929); 
 
                             current = grammarAccess.getReferenceTypeAccess().getOPTIONALEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                             newLeafNode(enumLiteral_1, grammarAccess.getReferenceTypeAccess().getOPTIONALEnumLiteralDeclaration_1()); 
@@ -23340,43 +23351,43 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9282:1: ( (enumLiteral_0= 'eventdriven' ) | (enumLiteral_1= 'datadriven' ) | (enumLiteral_2= 'async' ) | (enumLiteral_3= 'sync' ) )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9282:1: ( (enumLiteral_0= 'eventdriven' ) | (enumLiteral_1= 'datadriven' ) | (enumLiteral_2= 'async' ) | (enumLiteral_3= 'sync' ) )
-            int alt185=4;
+            int alt186=4;
             switch ( input.LA(1) ) {
             case 122:
                 {
-                alt185=1;
+                alt186=1;
                 }
                 break;
             case 123:
                 {
-                alt185=2;
+                alt186=2;
                 }
                 break;
             case 126:
                 {
-                alt185=3;
+                alt186=3;
                 }
                 break;
             case 124:
                 {
-                alt185=4;
+                alt186=4;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 185, 0, input);
+                    new NoViableAltException("", 186, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt185) {
+            switch (alt186) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9282:2: (enumLiteral_0= 'eventdriven' )
                     {
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9282:2: (enumLiteral_0= 'eventdriven' )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9282:4: enumLiteral_0= 'eventdriven'
                     {
-                    enumLiteral_0=(Token)match(input,122,FOLLOW_122_in_ruleComponentCommunicationType19975); 
+                    enumLiteral_0=(Token)match(input,122,FOLLOW_122_in_ruleComponentCommunicationType19976); 
 
                             current = grammarAccess.getComponentCommunicationTypeAccess().getEVENT_DRIVENEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                             newLeafNode(enumLiteral_0, grammarAccess.getComponentCommunicationTypeAccess().getEVENT_DRIVENEnumLiteralDeclaration_0()); 
@@ -23393,7 +23404,7 @@
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9288:6: (enumLiteral_1= 'datadriven' )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9288:8: enumLiteral_1= 'datadriven'
                     {
-                    enumLiteral_1=(Token)match(input,123,FOLLOW_123_in_ruleComponentCommunicationType19992); 
+                    enumLiteral_1=(Token)match(input,123,FOLLOW_123_in_ruleComponentCommunicationType19993); 
 
                             current = grammarAccess.getComponentCommunicationTypeAccess().getDATA_DRIVENEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                             newLeafNode(enumLiteral_1, grammarAccess.getComponentCommunicationTypeAccess().getDATA_DRIVENEnumLiteralDeclaration_1()); 
@@ -23410,7 +23421,7 @@
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9294:6: (enumLiteral_2= 'async' )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9294:8: enumLiteral_2= 'async'
                     {
-                    enumLiteral_2=(Token)match(input,126,FOLLOW_126_in_ruleComponentCommunicationType20009); 
+                    enumLiteral_2=(Token)match(input,126,FOLLOW_126_in_ruleComponentCommunicationType20010); 
 
                             current = grammarAccess.getComponentCommunicationTypeAccess().getASYNCHRONOUSEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                             newLeafNode(enumLiteral_2, grammarAccess.getComponentCommunicationTypeAccess().getASYNCHRONOUSEnumLiteralDeclaration_2()); 
@@ -23427,7 +23438,7 @@
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9300:6: (enumLiteral_3= 'sync' )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9300:8: enumLiteral_3= 'sync'
                     {
-                    enumLiteral_3=(Token)match(input,124,FOLLOW_124_in_ruleComponentCommunicationType20026); 
+                    enumLiteral_3=(Token)match(input,124,FOLLOW_124_in_ruleComponentCommunicationType20027); 
 
                             current = grammarAccess.getComponentCommunicationTypeAccess().getSYNCHRONOUSEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                             newLeafNode(enumLiteral_3, grammarAccess.getComponentCommunicationTypeAccess().getSYNCHRONOUSEnumLiteralDeclaration_3()); 
@@ -23474,43 +23485,43 @@
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9313:1: ( (enumLiteral_0= 'ptBoolean' ) | (enumLiteral_1= 'ptInteger' ) | (enumLiteral_2= 'ptReal' ) | (enumLiteral_3= 'ptCharacter' ) )
             {
             // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9313:1: ( (enumLiteral_0= 'ptBoolean' ) | (enumLiteral_1= 'ptInteger' ) | (enumLiteral_2= 'ptReal' ) | (enumLiteral_3= 'ptCharacter' ) )
-            int alt186=4;
+            int alt187=4;
             switch ( input.LA(1) ) {
             case 127:
                 {
-                alt186=1;
+                alt187=1;
                 }
                 break;
             case 128:
                 {
-                alt186=2;
+                alt187=2;
                 }
                 break;
             case 129:
                 {
-                alt186=3;
+                alt187=3;
                 }
                 break;
             case 130:
                 {
-                alt186=4;
+                alt187=4;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 186, 0, input);
+                    new NoViableAltException("", 187, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt186) {
+            switch (alt187) {
                 case 1 :
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9313:2: (enumLiteral_0= 'ptBoolean' )
                     {
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9313:2: (enumLiteral_0= 'ptBoolean' )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9313:4: enumLiteral_0= 'ptBoolean'
                     {
-                    enumLiteral_0=(Token)match(input,127,FOLLOW_127_in_ruleLiteralType20071); 
+                    enumLiteral_0=(Token)match(input,127,FOLLOW_127_in_ruleLiteralType20072); 
 
                             current = grammarAccess.getLiteralTypeAccess().getBOOLEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                             newLeafNode(enumLiteral_0, grammarAccess.getLiteralTypeAccess().getBOOLEnumLiteralDeclaration_0()); 
@@ -23527,7 +23538,7 @@
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9319:6: (enumLiteral_1= 'ptInteger' )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9319:8: enumLiteral_1= 'ptInteger'
                     {
-                    enumLiteral_1=(Token)match(input,128,FOLLOW_128_in_ruleLiteralType20088); 
+                    enumLiteral_1=(Token)match(input,128,FOLLOW_128_in_ruleLiteralType20089); 
 
                             current = grammarAccess.getLiteralTypeAccess().getINTEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                             newLeafNode(enumLiteral_1, grammarAccess.getLiteralTypeAccess().getINTEnumLiteralDeclaration_1()); 
@@ -23544,7 +23555,7 @@
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9325:6: (enumLiteral_2= 'ptReal' )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9325:8: enumLiteral_2= 'ptReal'
                     {
-                    enumLiteral_2=(Token)match(input,129,FOLLOW_129_in_ruleLiteralType20105); 
+                    enumLiteral_2=(Token)match(input,129,FOLLOW_129_in_ruleLiteralType20106); 
 
                             current = grammarAccess.getLiteralTypeAccess().getREALEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                             newLeafNode(enumLiteral_2, grammarAccess.getLiteralTypeAccess().getREALEnumLiteralDeclaration_2()); 
@@ -23561,7 +23572,7 @@
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9331:6: (enumLiteral_3= 'ptCharacter' )
                     // ../org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/parser/antlr/internal/InternalRoom.g:9331:8: enumLiteral_3= 'ptCharacter'
                     {
-                    enumLiteral_3=(Token)match(input,130,FOLLOW_130_in_ruleLiteralType20122); 
+                    enumLiteral_3=(Token)match(input,130,FOLLOW_130_in_ruleLiteralType20123); 
 
                             current = grammarAccess.getLiteralTypeAccess().getCHAREnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                             newLeafNode(enumLiteral_3, grammarAccess.getLiteralTypeAccess().getCHAREnumLiteralDeclaration_3()); 
@@ -23595,9 +23606,9 @@
 
 
     protected DFA3 dfa3 = new DFA3(this);
-    protected DFA127 dfa127 = new DFA127(this);
     protected DFA128 dfa128 = new DFA128(this);
-    protected DFA177 dfa177 = new DFA177(this);
+    protected DFA129 dfa129 = new DFA129(this);
+    protected DFA178 dfa178 = new DFA178(this);
     static final String DFA3_eotS =
         "\16\uffff";
     static final String DFA3_eofS =
@@ -23662,21 +23673,21 @@
             return "()* loopback of 143:3: ( ( (lv_primitiveTypes_5_0= rulePrimitiveType ) ) | ( (lv_enumerationTypes_6_0= ruleEnumerationType ) ) | ( (lv_externalTypes_7_0= ruleExternalType ) ) | ( (lv_dataClasses_8_0= ruleDataClass ) ) | ( (lv_protocolClasses_9_0= ruleGeneralProtocolClass ) ) | ( (lv_actorClasses_10_0= ruleActorClass ) ) | ( (lv_subSystemClasses_11_0= ruleSubSystemClass ) ) | ( (lv_systems_12_0= ruleLogicalSystem ) ) | ( (lv_annotationTypes_13_0= ruleAnnotationType ) ) )*";
         }
     }
-    static final String DFA127_eotS =
+    static final String DFA128_eotS =
         "\32\uffff";
-    static final String DFA127_eofS =
-        "\13\uffff\1\22\7\uffff\3\22\1\uffff\1\22\2\uffff";
-    static final String DFA127_minS =
-        "\1\134\1\4\1\20\1\4\1\23\4\4\2\23\1\16\2\4\1\23\1\4\1\5\1\17\1"+
-        "\uffff\3\16\1\5\1\16\2\uffff";
-    static final String DFA127_maxS =
-        "\1\134\2\20\1\145\1\30\2\4\1\145\1\4\2\23\1\143\2\4\1\23\1\4\1"+
-        "\43\1\142\1\uffff\3\143\1\43\1\143\2\uffff";
-    static final String DFA127_acceptS =
-        "\22\uffff\1\2\5\uffff\1\1\1\3";
-    static final String DFA127_specialS =
+    static final String DFA128_eofS =
+        "\13\uffff\1\22\7\uffff\2\22\1\uffff\1\22\2\uffff\1\22";
+    static final String DFA128_minS =
+        "\1\134\1\4\1\20\1\4\1\23\4\4\2\23\1\16\2\4\1\23\1\5\1\17\1\4\1"+
+        "\uffff\2\16\1\5\1\16\2\uffff\1\16";
+    static final String DFA128_maxS =
+        "\1\134\2\20\1\145\1\30\2\4\1\145\1\4\2\23\1\143\2\4\1\23\1\43\1"+
+        "\142\1\4\1\uffff\2\143\1\43\1\143\2\uffff\1\143";
+    static final String DFA128_acceptS =
+        "\22\uffff\1\2\4\uffff\1\1\1\3\1\uffff";
+    static final String DFA128_specialS =
         "\32\uffff}>";
-    static final String[] DFA127_transitionS = {
+    static final String[] DFA128_transitionS = {
             "\1\1",
             "\1\2\13\uffff\1\3",
             "\1\3",
@@ -23688,100 +23699,25 @@
             "\1\16",
             "\1\7",
             "\1\7",
-            "\1\21\1\22\10\uffff\1\17\11\uffff\1\20\56\uffff\1\22\4\uffff"+
+            "\1\20\1\22\10\uffff\1\21\11\uffff\1\17\56\uffff\1\22\4\uffff"+
             "\7\22\6\uffff\1\22",
             "\1\23",
             "\1\24",
             "\1\7",
-            "\1\25",
-            "\1\26\35\uffff\1\27",
-            "\1\22\116\uffff\1\22\1\30\1\uffff\1\30\1\31",
-            "",
-            "\1\21\1\22\22\uffff\1\20\56\uffff\1\22\4\uffff\7\22\6\uffff"+
-            "\1\22",
-            "\1\21\1\22\22\uffff\1\20\56\uffff\1\22\4\uffff\7\22\6\uffff"+
-            "\1\22",
-            "\1\21\1\22\22\uffff\1\20\56\uffff\1\22\4\uffff\7\22\6\uffff"+
-            "\1\22",
-            "\1\26\35\uffff\1\27",
-            "\1\21\1\22\101\uffff\1\22\4\uffff\7\22\6\uffff\1\22",
-            "",
-            ""
-    };
-
-    static final short[] DFA127_eot = DFA.unpackEncodedString(DFA127_eotS);
-    static final short[] DFA127_eof = DFA.unpackEncodedString(DFA127_eofS);
-    static final char[] DFA127_min = DFA.unpackEncodedStringToUnsignedChars(DFA127_minS);
-    static final char[] DFA127_max = DFA.unpackEncodedStringToUnsignedChars(DFA127_maxS);
-    static final short[] DFA127_accept = DFA.unpackEncodedString(DFA127_acceptS);
-    static final short[] DFA127_special = DFA.unpackEncodedString(DFA127_specialS);
-    static final short[][] DFA127_transition;
-
-    static {
-        int numStates = DFA127_transitionS.length;
-        DFA127_transition = new short[numStates][];
-        for (int i=0; i<numStates; i++) {
-            DFA127_transition[i] = DFA.unpackEncodedString(DFA127_transitionS[i]);
-        }
-    }
-
-    class DFA127 extends DFA {
-
-        public DFA127(BaseRecognizer recognizer) {
-            this.recognizer = recognizer;
-            this.decisionNumber = 127;
-            this.eot = DFA127_eot;
-            this.eof = DFA127_eof;
-            this.min = DFA127_min;
-            this.max = DFA127_max;
-            this.accept = DFA127_accept;
-            this.special = DFA127_special;
-            this.transition = DFA127_transition;
-        }
-        public String getDescription() {
-            return "6107:1: (this_TransitionChainStartTransition_0= ruleTransitionChainStartTransition | this_ContinuationTransition_1= ruleContinuationTransition | this_CPBranchTransition_2= ruleCPBranchTransition )";
-        }
-    }
-    static final String DFA128_eotS =
-        "\31\uffff";
-    static final String DFA128_eofS =
-        "\31\uffff";
-    static final String DFA128_minS =
-        "\1\134\1\4\1\20\1\4\1\23\4\4\3\23\1\16\3\4\1\5\1\137\3\16\1\5\1"+
-        "\16\2\uffff";
-    static final String DFA128_maxS =
-        "\1\134\2\20\1\145\1\30\3\4\1\145\3\23\1\42\3\4\1\43\1\141\3\42"+
-        "\1\43\1\16\2\uffff";
-    static final String DFA128_acceptS =
-        "\27\uffff\1\1\1\2";
-    static final String DFA128_specialS =
-        "\31\uffff}>";
-    static final String[] DFA128_transitionS = {
-            "\1\1",
-            "\1\2\13\uffff\1\3",
-            "\1\3",
-            "\1\4\137\uffff\1\5\1\6",
-            "\1\10\4\uffff\1\7",
-            "\1\11",
-            "\1\12",
-            "\1\13",
-            "\1\14\137\uffff\1\15\1\16",
-            "\1\10",
-            "\1\10",
-            "\1\10",
-            "\1\21\11\uffff\1\17\11\uffff\1\20",
-            "\1\22",
-            "\1\23",
-            "\1\24",
             "\1\25\35\uffff\1\26",
-            "\1\27\1\uffff\1\30",
-            "\1\21\23\uffff\1\20",
-            "\1\21\23\uffff\1\20",
-            "\1\21\23\uffff\1\20",
-            "\1\25\35\uffff\1\26",
-            "\1\21",
+            "\1\22\116\uffff\1\22\1\27\1\uffff\1\27\1\30",
+            "\1\31",
             "",
-            ""
+            "\1\20\1\22\22\uffff\1\17\56\uffff\1\22\4\uffff\7\22\6\uffff"+
+            "\1\22",
+            "\1\20\1\22\22\uffff\1\17\56\uffff\1\22\4\uffff\7\22\6\uffff"+
+            "\1\22",
+            "\1\25\35\uffff\1\26",
+            "\1\20\1\22\101\uffff\1\22\4\uffff\7\22\6\uffff\1\22",
+            "",
+            "",
+            "\1\20\1\22\22\uffff\1\17\56\uffff\1\22\4\uffff\7\22\6\uffff"+
+            "\1\22"
     };
 
     static final short[] DFA128_eot = DFA.unpackEncodedString(DFA128_eotS);
@@ -23814,22 +23750,97 @@
             this.transition = DFA128_transition;
         }
         public String getDescription() {
+            return "6107:1: (this_TransitionChainStartTransition_0= ruleTransitionChainStartTransition | this_ContinuationTransition_1= ruleContinuationTransition | this_CPBranchTransition_2= ruleCPBranchTransition )";
+        }
+    }
+    static final String DFA129_eotS =
+        "\31\uffff";
+    static final String DFA129_eofS =
+        "\31\uffff";
+    static final String DFA129_minS =
+        "\1\134\1\4\1\20\1\4\1\23\4\4\3\23\1\16\3\4\1\5\1\137\3\16\1\5\1"+
+        "\16\2\uffff";
+    static final String DFA129_maxS =
+        "\1\134\2\20\1\145\1\30\3\4\1\145\3\23\1\42\3\4\1\43\1\141\3\42"+
+        "\1\43\1\16\2\uffff";
+    static final String DFA129_acceptS =
+        "\27\uffff\1\1\1\2";
+    static final String DFA129_specialS =
+        "\31\uffff}>";
+    static final String[] DFA129_transitionS = {
+            "\1\1",
+            "\1\2\13\uffff\1\3",
+            "\1\3",
+            "\1\4\137\uffff\1\5\1\6",
+            "\1\10\4\uffff\1\7",
+            "\1\11",
+            "\1\12",
+            "\1\13",
+            "\1\14\137\uffff\1\15\1\16",
+            "\1\10",
+            "\1\10",
+            "\1\10",
+            "\1\21\11\uffff\1\17\11\uffff\1\20",
+            "\1\22",
+            "\1\23",
+            "\1\24",
+            "\1\25\35\uffff\1\26",
+            "\1\27\1\uffff\1\30",
+            "\1\21\23\uffff\1\20",
+            "\1\21\23\uffff\1\20",
+            "\1\21\23\uffff\1\20",
+            "\1\25\35\uffff\1\26",
+            "\1\21",
+            "",
+            ""
+    };
+
+    static final short[] DFA129_eot = DFA.unpackEncodedString(DFA129_eotS);
+    static final short[] DFA129_eof = DFA.unpackEncodedString(DFA129_eofS);
+    static final char[] DFA129_min = DFA.unpackEncodedStringToUnsignedChars(DFA129_minS);
+    static final char[] DFA129_max = DFA.unpackEncodedStringToUnsignedChars(DFA129_maxS);
+    static final short[] DFA129_accept = DFA.unpackEncodedString(DFA129_acceptS);
+    static final short[] DFA129_special = DFA.unpackEncodedString(DFA129_specialS);
+    static final short[][] DFA129_transition;
+
+    static {
+        int numStates = DFA129_transitionS.length;
+        DFA129_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA129_transition[i] = DFA.unpackEncodedString(DFA129_transitionS[i]);
+        }
+    }
+
+    class DFA129 extends DFA {
+
+        public DFA129(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 129;
+            this.eot = DFA129_eot;
+            this.eof = DFA129_eof;
+            this.min = DFA129_min;
+            this.max = DFA129_max;
+            this.accept = DFA129_accept;
+            this.special = DFA129_special;
+            this.transition = DFA129_transition;
+        }
+        public String getDescription() {
             return "6157:1: (this_TriggeredTransition_0= ruleTriggeredTransition | this_GuardedTransition_1= ruleGuardedTransition )";
         }
     }
-    static final String DFA177_eotS =
+    static final String DFA178_eotS =
         "\12\uffff";
-    static final String DFA177_eofS =
+    static final String DFA178_eofS =
         "\5\uffff\1\7\1\10\3\uffff";
-    static final String DFA177_minS =
+    static final String DFA178_minS =
         "\3\6\1\110\1\uffff\1\6\1\10\3\uffff";
-    static final String DFA177_maxS =
+    static final String DFA178_maxS =
         "\1\171\3\110\1\uffff\2\31\3\uffff";
-    static final String DFA177_acceptS =
+    static final String DFA178_acceptS =
         "\4\uffff\1\2\2\uffff\1\3\1\1\1\4";
-    static final String DFA177_specialS =
+    static final String DFA178_specialS =
         "\12\uffff}>";
-    static final String[] DFA177_transitionS = {
+    static final String[] DFA178_transitionS = {
             "\1\3\101\uffff\1\4\57\uffff\1\1\1\2",
             "\1\3\101\uffff\1\4",
             "\1\3\101\uffff\1\4",
@@ -23842,34 +23853,34 @@
             ""
     };
 
-    static final short[] DFA177_eot = DFA.unpackEncodedString(DFA177_eotS);
-    static final short[] DFA177_eof = DFA.unpackEncodedString(DFA177_eofS);
-    static final char[] DFA177_min = DFA.unpackEncodedStringToUnsignedChars(DFA177_minS);
-    static final char[] DFA177_max = DFA.unpackEncodedStringToUnsignedChars(DFA177_maxS);
-    static final short[] DFA177_accept = DFA.unpackEncodedString(DFA177_acceptS);
-    static final short[] DFA177_special = DFA.unpackEncodedString(DFA177_specialS);
-    static final short[][] DFA177_transition;
+    static final short[] DFA178_eot = DFA.unpackEncodedString(DFA178_eotS);
+    static final short[] DFA178_eof = DFA.unpackEncodedString(DFA178_eofS);
+    static final char[] DFA178_min = DFA.unpackEncodedStringToUnsignedChars(DFA178_minS);
+    static final char[] DFA178_max = DFA.unpackEncodedStringToUnsignedChars(DFA178_maxS);
+    static final short[] DFA178_accept = DFA.unpackEncodedString(DFA178_acceptS);
+    static final short[] DFA178_special = DFA.unpackEncodedString(DFA178_specialS);
+    static final short[][] DFA178_transition;
 
     static {
-        int numStates = DFA177_transitionS.length;
-        DFA177_transition = new short[numStates][];
+        int numStates = DFA178_transitionS.length;
+        DFA178_transition = new short[numStates][];
         for (int i=0; i<numStates; i++) {
-            DFA177_transition[i] = DFA.unpackEncodedString(DFA177_transitionS[i]);
+            DFA178_transition[i] = DFA.unpackEncodedString(DFA178_transitionS[i]);
         }
     }
 
-    class DFA177 extends DFA {
+    class DFA178 extends DFA {
 
-        public DFA177(BaseRecognizer recognizer) {
+        public DFA178(BaseRecognizer recognizer) {
             this.recognizer = recognizer;
-            this.decisionNumber = 177;
-            this.eot = DFA177_eot;
-            this.eof = DFA177_eof;
-            this.min = DFA177_min;
-            this.max = DFA177_max;
-            this.accept = DFA177_accept;
-            this.special = DFA177_special;
-            this.transition = DFA177_transition;
+            this.decisionNumber = 178;
+            this.eot = DFA178_eot;
+            this.eof = DFA178_eof;
+            this.min = DFA178_min;
+            this.max = DFA178_max;
+            this.accept = DFA178_accept;
+            this.special = DFA178_special;
+            this.transition = DFA178_transition;
         }
         public String getDescription() {
             return "8888:1: (this_Decimal_0= ruleDecimal | this_DotDecimal_1= ruleDotDecimal | this_DecimalDot_2= ruleDecimalDot | this_DecimalExp_3= ruleDecimalExp )";
@@ -23986,746 +23997,746 @@
     public static final BitSet FOLLOW_34_in_ruleAttribute2575 = new BitSet(new long[]{0x0000000000000040L});
     public static final BitSet FOLLOW_RULE_INT_in_ruleAttribute2592 = new BitSet(new long[]{0x0000000800000000L});
     public static final BitSet FOLLOW_35_in_ruleAttribute2609 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_16_in_ruleAttribute2623 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_16_in_ruleAttribute2623 = new BitSet(new long[]{0x0000000404000012L});
     public static final BitSet FOLLOW_ruleRefableType_in_ruleAttribute2644 = new BitSet(new long[]{0x0000000404000002L});
-    public static final BitSet FOLLOW_26_in_ruleAttribute2657 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_RULE_STRING_in_ruleAttribute2674 = new BitSet(new long[]{0x0000000400000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_ruleAttribute2702 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleStandardOperation_in_entryRuleStandardOperation2741 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleStandardOperation2751 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_36_in_ruleStandardOperation2794 = new BitSet(new long[]{0x0000002000000000L});
-    public static final BitSet FOLLOW_37_in_ruleStandardOperation2820 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleStandardOperation2837 = new BitSet(new long[]{0x0000000000100000L});
-    public static final BitSet FOLLOW_20_in_ruleStandardOperation2854 = new BitSet(new long[]{0x0000000000200010L});
-    public static final BitSet FOLLOW_ruleVarDecl_in_ruleStandardOperation2876 = new BitSet(new long[]{0x0000000002200000L});
-    public static final BitSet FOLLOW_25_in_ruleStandardOperation2889 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_ruleVarDecl_in_ruleStandardOperation2910 = new BitSet(new long[]{0x0000000002200000L});
-    public static final BitSet FOLLOW_21_in_ruleStandardOperation2926 = new BitSet(new long[]{0x0000000400014000L});
-    public static final BitSet FOLLOW_16_in_ruleStandardOperation2939 = new BitSet(new long[]{0x0000004000000010L});
-    public static final BitSet FOLLOW_38_in_ruleStandardOperation2952 = new BitSet(new long[]{0x0000000400004000L});
-    public static final BitSet FOLLOW_ruleRefableType_in_ruleStandardOperation2979 = new BitSet(new long[]{0x0000000400004000L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_ruleStandardOperation3003 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleStandardOperation3025 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rulePortOperation_in_entryRulePortOperation3061 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRulePortOperation3071 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_37_in_rulePortOperation3108 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_rulePortOperation3125 = new BitSet(new long[]{0x0000000000100000L});
-    public static final BitSet FOLLOW_20_in_rulePortOperation3142 = new BitSet(new long[]{0x0000000000200010L});
-    public static final BitSet FOLLOW_ruleVarDecl_in_rulePortOperation3164 = new BitSet(new long[]{0x0000000002200000L});
-    public static final BitSet FOLLOW_25_in_rulePortOperation3177 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_ruleVarDecl_in_rulePortOperation3198 = new BitSet(new long[]{0x0000000002200000L});
-    public static final BitSet FOLLOW_21_in_rulePortOperation3214 = new BitSet(new long[]{0x0000008400014000L});
-    public static final BitSet FOLLOW_16_in_rulePortOperation3228 = new BitSet(new long[]{0x0000004000000010L});
-    public static final BitSet FOLLOW_38_in_rulePortOperation3241 = new BitSet(new long[]{0x0000000400004000L});
-    public static final BitSet FOLLOW_ruleRefableType_in_rulePortOperation3268 = new BitSet(new long[]{0x0000000400004000L});
-    public static final BitSet FOLLOW_39_in_rulePortOperation3289 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_rulePortOperation3309 = new BitSet(new long[]{0x0000000400004000L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rulePortOperation3333 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rulePortOperation3355 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleClassStructor_in_entryRuleClassStructor3391 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleClassStructor3401 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_40_in_ruleClassStructor3446 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_41_in_ruleClassStructor3475 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleClassStructor3512 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleGeneralProtocolClass_in_entryRuleGeneralProtocolClass3548 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleGeneralProtocolClass3558 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleProtocolClass_in_ruleGeneralProtocolClass3605 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleCompoundProtocolClass_in_ruleGeneralProtocolClass3632 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleProtocolClass_in_entryRuleProtocolClass3667 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleProtocolClass3677 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleCommunicationType_in_ruleProtocolClass3723 = new BitSet(new long[]{0x0000040000000000L});
-    public static final BitSet FOLLOW_42_in_ruleProtocolClass3736 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleProtocolClass3753 = new BitSet(new long[]{0x0000000420004000L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_ruleProtocolClass3779 = new BitSet(new long[]{0x0000000020004000L});
-    public static final BitSet FOLLOW_29_in_ruleProtocolClass3793 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_ruleFQN_in_ruleProtocolClass3816 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_14_in_ruleProtocolClass3830 = new BitSet(new long[]{0x0000B801C0008000L,0x0000120000000000L});
-    public static final BitSet FOLLOW_ruleAnnotation_in_ruleProtocolClass3851 = new BitSet(new long[]{0x0000B801C0008000L,0x0000120000000000L});
-    public static final BitSet FOLLOW_30_in_ruleProtocolClass3865 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleProtocolClass3886 = new BitSet(new long[]{0x0000B80180008000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_31_in_ruleProtocolClass3901 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleProtocolClass3922 = new BitSet(new long[]{0x0000B80100008000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_32_in_ruleProtocolClass3937 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleProtocolClass3958 = new BitSet(new long[]{0x0000B80000008000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_43_in_ruleProtocolClass3973 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_14_in_ruleProtocolClass3985 = new BitSet(new long[]{0x000C000000008000L});
-    public static final BitSet FOLLOW_ruleMessage_in_ruleProtocolClass4006 = new BitSet(new long[]{0x000C000000008000L});
-    public static final BitSet FOLLOW_15_in_ruleProtocolClass4019 = new BitSet(new long[]{0x0000B00000008000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_44_in_ruleProtocolClass4034 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_14_in_ruleProtocolClass4046 = new BitSet(new long[]{0x000C000000008000L});
-    public static final BitSet FOLLOW_ruleMessage_in_ruleProtocolClass4067 = new BitSet(new long[]{0x000C000000008000L});
-    public static final BitSet FOLLOW_15_in_ruleProtocolClass4080 = new BitSet(new long[]{0x0000A00000008000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_45_in_ruleProtocolClass4095 = new BitSet(new long[]{0x0000400000000000L});
-    public static final BitSet FOLLOW_46_in_ruleProtocolClass4107 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_rulePortClass_in_ruleProtocolClass4128 = new BitSet(new long[]{0x0000800000008000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_47_in_ruleProtocolClass4143 = new BitSet(new long[]{0x0000400000000000L});
-    public static final BitSet FOLLOW_46_in_ruleProtocolClass4155 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_rulePortClass_in_ruleProtocolClass4176 = new BitSet(new long[]{0x0000000000008000L,0x0000020000000000L});
-    public static final BitSet FOLLOW_ruleProtocolSemantics_in_ruleProtocolClass4199 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_15_in_ruleProtocolClass4212 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleCompoundProtocolClass_in_entryRuleCompoundProtocolClass4248 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleCompoundProtocolClass4258 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_48_in_ruleCompoundProtocolClass4295 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleCompoundProtocolClass4312 = new BitSet(new long[]{0x0000000400004000L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_ruleCompoundProtocolClass4338 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_14_in_ruleCompoundProtocolClass4351 = new BitSet(new long[]{0x0002000000008000L,0x0000100000000000L});
-    public static final BitSet FOLLOW_ruleAnnotation_in_ruleCompoundProtocolClass4372 = new BitSet(new long[]{0x0002000000008000L,0x0000100000000000L});
-    public static final BitSet FOLLOW_ruleSubProtocol_in_ruleCompoundProtocolClass4394 = new BitSet(new long[]{0x0002000000008000L});
-    public static final BitSet FOLLOW_15_in_ruleCompoundProtocolClass4407 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSubProtocol_in_entryRuleSubProtocol4443 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleSubProtocol4453 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_49_in_ruleSubProtocol4490 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleSubProtocol4507 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_16_in_ruleSubProtocol4524 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_ruleFQN_in_ruleSubProtocol4547 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleMessage_in_entryRuleMessage4583 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleMessage4593 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_50_in_ruleMessage4636 = new BitSet(new long[]{0x0008000000000000L});
-    public static final BitSet FOLLOW_51_in_ruleMessage4662 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleMessage4679 = new BitSet(new long[]{0x0000000000100000L});
-    public static final BitSet FOLLOW_20_in_ruleMessage4696 = new BitSet(new long[]{0x0000000000200010L});
-    public static final BitSet FOLLOW_ruleVarDecl_in_ruleMessage4717 = new BitSet(new long[]{0x0000000000200000L});
-    public static final BitSet FOLLOW_21_in_ruleMessage4730 = new BitSet(new long[]{0x0000000400000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_ruleMessage4751 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rulePortClass_in_entryRulePortClass4788 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRulePortClass4798 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_14_in_rulePortClass4844 = new BitSet(new long[]{0x0030033200008000L});
-    public static final BitSet FOLLOW_52_in_rulePortClass4857 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_rulePortClass4878 = new BitSet(new long[]{0x0020033200008000L});
-    public static final BitSet FOLLOW_ruleMessageHandler_in_rulePortClass4902 = new BitSet(new long[]{0x0020033200008000L});
-    public static final BitSet FOLLOW_rulePortOperation_in_rulePortClass4929 = new BitSet(new long[]{0x0020033200008000L});
-    public static final BitSet FOLLOW_ruleAttribute_in_rulePortClass4956 = new BitSet(new long[]{0x0020033200008000L});
-    public static final BitSet FOLLOW_15_in_rulePortClass4970 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleMessageHandler_in_entryRuleMessageHandler5006 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleMessageHandler5016 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleInMessageHandler_in_ruleMessageHandler5063 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleOutMessageHandler_in_ruleMessageHandler5090 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleInMessageHandler_in_entryRuleInMessageHandler5125 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleInMessageHandler5135 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_53_in_ruleInMessageHandler5172 = new BitSet(new long[]{0x0000080000000000L});
-    public static final BitSet FOLLOW_43_in_ruleInMessageHandler5184 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleInMessageHandler5204 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleInMessageHandler5225 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleOutMessageHandler_in_entryRuleOutMessageHandler5261 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleOutMessageHandler5271 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_53_in_ruleOutMessageHandler5308 = new BitSet(new long[]{0x0000100000000000L});
-    public static final BitSet FOLLOW_44_in_ruleOutMessageHandler5320 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleOutMessageHandler5340 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleOutMessageHandler5361 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleModelComponent_in_entryRuleModelComponent5397 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleModelComponent5407 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleActorClass_in_ruleModelComponent5453 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleActorClass_in_entryRuleActorClass5487 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleActorClass5497 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_54_in_ruleActorClass5585 = new BitSet(new long[]{0x00C0000000000000L,0x5C00000000000000L});
-    public static final BitSet FOLLOW_ruleComponentCommunicationType_in_ruleActorClass5673 = new BitSet(new long[]{0x00C0000000000000L,0x5C00000000000000L});
-    public static final BitSet FOLLOW_55_in_ruleActorClass5725 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleActorClass5742 = new BitSet(new long[]{0x0000000420004000L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_ruleActorClass5768 = new BitSet(new long[]{0x0000000020004000L});
-    public static final BitSet FOLLOW_29_in_ruleActorClass5782 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_ruleFQN_in_ruleActorClass5805 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_14_in_ruleActorClass5819 = new BitSet(new long[]{0x0700000000008000L,0x0000100000000000L});
-    public static final BitSet FOLLOW_ruleAnnotation_in_ruleActorClass5840 = new BitSet(new long[]{0x0700000000008000L,0x0000100000000000L});
-    public static final BitSet FOLLOW_56_in_ruleActorClass5854 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_14_in_ruleActorClass5866 = new BitSet(new long[]{0x4800800000008000L});
-    public static final BitSet FOLLOW_ruleSPP_in_ruleActorClass5888 = new BitSet(new long[]{0x4800800000008000L});
-    public static final BitSet FOLLOW_rulePort_in_ruleActorClass5915 = new BitSet(new long[]{0x4800800000008000L});
-    public static final BitSet FOLLOW_15_in_ruleActorClass5929 = new BitSet(new long[]{0x0600000000008000L});
-    public static final BitSet FOLLOW_57_in_ruleActorClass5944 = new BitSet(new long[]{0x0000000400004000L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_ruleActorClass5965 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_14_in_ruleActorClass5978 = new BitSet(new long[]{0xF8008333C0008000L,0x2000800000002440L});
-    public static final BitSet FOLLOW_30_in_ruleActorClass5991 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleActorClass6012 = new BitSet(new long[]{0xF800833380008000L,0x2000800000002440L});
-    public static final BitSet FOLLOW_31_in_ruleActorClass6027 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleActorClass6048 = new BitSet(new long[]{0xF800833300008000L,0x2000800000002440L});
-    public static final BitSet FOLLOW_32_in_ruleActorClass6063 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleActorClass6084 = new BitSet(new long[]{0xF800833200008000L,0x2000800000002440L});
-    public static final BitSet FOLLOW_ruleLayerConnection_in_ruleActorClass6108 = new BitSet(new long[]{0xF800833200008000L,0x2000800000002440L});
-    public static final BitSet FOLLOW_ruleBinding_in_ruleActorClass6135 = new BitSet(new long[]{0xF800833200008000L,0x2000800000002440L});
-    public static final BitSet FOLLOW_ruleServiceImplementation_in_ruleActorClass6162 = new BitSet(new long[]{0xF800833200008000L,0x2000800000002440L});
-    public static final BitSet FOLLOW_ruleAttribute_in_ruleActorClass6189 = new BitSet(new long[]{0xF800833200008000L,0x2000800000002440L});
-    public static final BitSet FOLLOW_ruleActorRef_in_ruleActorClass6216 = new BitSet(new long[]{0xF800833200008000L,0x2000800000002440L});
-    public static final BitSet FOLLOW_ruleSAP_in_ruleActorClass6243 = new BitSet(new long[]{0xF800833200008000L,0x2000800000002440L});
-    public static final BitSet FOLLOW_rulePort_in_ruleActorClass6270 = new BitSet(new long[]{0xF800833200008000L,0x2000800000002440L});
-    public static final BitSet FOLLOW_ruleExternalPort_in_ruleActorClass6297 = new BitSet(new long[]{0xF800833200008000L,0x2000800000002440L});
-    public static final BitSet FOLLOW_15_in_ruleActorClass6311 = new BitSet(new long[]{0x0400000000008000L});
-    public static final BitSet FOLLOW_58_in_ruleActorClass6326 = new BitSet(new long[]{0x0000000400004000L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_ruleActorClass6347 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_14_in_ruleActorClass6360 = new BitSet(new long[]{0x0000033000008000L,0x0000100000010000L});
-    public static final BitSet FOLLOW_ruleAnnotation_in_ruleActorClass6381 = new BitSet(new long[]{0x0000033000008000L,0x0000100000010000L});
-    public static final BitSet FOLLOW_ruleStandardOperation_in_ruleActorClass6404 = new BitSet(new long[]{0x0000033000008000L,0x0000000000010000L});
-    public static final BitSet FOLLOW_ruleClassStructor_in_ruleActorClass6431 = new BitSet(new long[]{0x0000033000008000L,0x0000000000010000L});
-    public static final BitSet FOLLOW_ruleStateMachine_in_ruleActorClass6454 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_15_in_ruleActorClass6467 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_15_in_ruleActorClass6481 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleInterfaceItem_in_entryRuleInterfaceItem6517 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleInterfaceItem6527 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rulePort_in_ruleInterfaceItem6574 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSAP_in_ruleInterfaceItem6601 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSPP_in_ruleInterfaceItem6628 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_rulePort_in_entryRulePort6663 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRulePort6673 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_47_in_rulePort6716 = new BitSet(new long[]{0x0800000000000000L});
-    public static final BitSet FOLLOW_59_in_rulePort6742 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_rulePort6759 = new BitSet(new long[]{0x0000000400010000L});
-    public static final BitSet FOLLOW_ruleMULTIPLICITY_in_rulePort6785 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_16_in_rulePort6798 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_ruleFQN_in_rulePort6821 = new BitSet(new long[]{0x0000000400000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_rulePort6842 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleExternalPort_in_entryRuleExternalPort6879 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleExternalPort6889 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_60_in_ruleExternalPort6926 = new BitSet(new long[]{0x0800000000000000L});
-    public static final BitSet FOLLOW_59_in_ruleExternalPort6938 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleExternalPort6958 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSAP_in_entryRuleSAP6994 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleSAP7004 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_61_in_ruleSAP7041 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleSAP7058 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_16_in_ruleSAP7075 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_ruleFQN_in_ruleSAP7098 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSPP_in_entryRuleSPP7134 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleSPP7144 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_62_in_ruleSPP7181 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleSPP7198 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_16_in_ruleSPP7215 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_ruleFQN_in_ruleSPP7238 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleServiceImplementation_in_entryRuleServiceImplementation7274 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleServiceImplementation7284 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_63_in_ruleServiceImplementation7321 = new BitSet(new long[]{0x0000000001000000L});
-    public static final BitSet FOLLOW_24_in_ruleServiceImplementation7333 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleServiceImplementation7353 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleLogicalSystem_in_entryRuleLogicalSystem7389 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleLogicalSystem7399 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_64_in_ruleLogicalSystem7436 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleLogicalSystem7453 = new BitSet(new long[]{0x0000000400004000L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_ruleLogicalSystem7479 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_14_in_ruleLogicalSystem7492 = new BitSet(new long[]{0x0000000000008000L,0x0000100000000442L});
-    public static final BitSet FOLLOW_ruleAnnotation_in_ruleLogicalSystem7513 = new BitSet(new long[]{0x0000000000008000L,0x0000100000000442L});
-    public static final BitSet FOLLOW_ruleLayerConnection_in_ruleLogicalSystem7536 = new BitSet(new long[]{0x0000000000008000L,0x0000000000000442L});
-    public static final BitSet FOLLOW_ruleBinding_in_ruleLogicalSystem7563 = new BitSet(new long[]{0x0000000000008000L,0x0000000000000442L});
-    public static final BitSet FOLLOW_ruleSubSystemRef_in_ruleLogicalSystem7590 = new BitSet(new long[]{0x0000000000008000L,0x0000000000000442L});
-    public static final BitSet FOLLOW_15_in_ruleLogicalSystem7604 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSubSystemRef_in_entryRuleSubSystemRef7642 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleSubSystemRef7652 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_65_in_ruleSubSystemRef7689 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleSubSystemRef7706 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_16_in_ruleSubSystemRef7723 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_ruleFQN_in_ruleSubSystemRef7746 = new BitSet(new long[]{0x0000000400000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_ruleSubSystemRef7767 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSubSystemClass_in_entryRuleSubSystemClass7804 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleSubSystemClass7814 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_66_in_ruleSubSystemClass7851 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleSubSystemClass7868 = new BitSet(new long[]{0x0000000400004000L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_ruleSubSystemClass7894 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_14_in_ruleSubSystemClass7907 = new BitSet(new long[]{0x48008001C0008000L,0x2000900000002458L});
-    public static final BitSet FOLLOW_ruleAnnotation_in_ruleSubSystemClass7928 = new BitSet(new long[]{0x48008001C0008000L,0x2000900000002458L});
-    public static final BitSet FOLLOW_30_in_ruleSubSystemClass7942 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleSubSystemClass7963 = new BitSet(new long[]{0x4800800180008000L,0x2000800000002458L});
-    public static final BitSet FOLLOW_31_in_ruleSubSystemClass7978 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleSubSystemClass7999 = new BitSet(new long[]{0x4800800100008000L,0x2000800000002458L});
-    public static final BitSet FOLLOW_32_in_ruleSubSystemClass8014 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleSubSystemClass8035 = new BitSet(new long[]{0x4800800000008000L,0x2000800000002458L});
-    public static final BitSet FOLLOW_ruleActorInstanceMapping_in_ruleSubSystemClass8059 = new BitSet(new long[]{0x4800800000008000L,0x2000800000002458L});
-    public static final BitSet FOLLOW_ruleLogicalThread_in_ruleSubSystemClass8086 = new BitSet(new long[]{0x4800800000008000L,0x2000800000002458L});
-    public static final BitSet FOLLOW_ruleLayerConnection_in_ruleSubSystemClass8113 = new BitSet(new long[]{0x4800800000008000L,0x2000800000002458L});
-    public static final BitSet FOLLOW_ruleBinding_in_ruleSubSystemClass8140 = new BitSet(new long[]{0x4800800000008000L,0x2000800000002458L});
-    public static final BitSet FOLLOW_ruleActorRef_in_ruleSubSystemClass8167 = new BitSet(new long[]{0x4800800000008000L,0x2000800000002458L});
-    public static final BitSet FOLLOW_ruleSPP_in_ruleSubSystemClass8194 = new BitSet(new long[]{0x4800800000008000L,0x2000800000002458L});
-    public static final BitSet FOLLOW_rulePort_in_ruleSubSystemClass8221 = new BitSet(new long[]{0x4800800000008000L,0x2000800000002458L});
-    public static final BitSet FOLLOW_15_in_ruleSubSystemClass8235 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleLogicalThread_in_entryRuleLogicalThread8271 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleLogicalThread8281 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_67_in_ruleLogicalThread8318 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleLogicalThread8335 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleActorInstanceMapping_in_entryRuleActorInstanceMapping8376 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleActorInstanceMapping8386 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_68_in_ruleActorInstanceMapping8423 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_ruleRefPath_in_ruleActorInstanceMapping8444 = new BitSet(new long[]{0x0000000000080000L});
-    public static final BitSet FOLLOW_19_in_ruleActorInstanceMapping8456 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleActorInstanceMapping8476 = new BitSet(new long[]{0x0000000000004002L});
-    public static final BitSet FOLLOW_14_in_ruleActorInstanceMapping8489 = new BitSet(new long[]{0x0000000000008000L,0x0000000000000010L});
-    public static final BitSet FOLLOW_ruleActorInstanceMapping_in_ruleActorInstanceMapping8510 = new BitSet(new long[]{0x0000000000008000L,0x0000000000000010L});
-    public static final BitSet FOLLOW_15_in_ruleActorInstanceMapping8523 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRefPath_in_entryRuleRefPath8561 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleRefPath8571 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRefSegment_in_ruleRefPath8617 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000020L});
-    public static final BitSet FOLLOW_69_in_ruleRefPath8630 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_ruleRefSegment_in_ruleRefPath8651 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000020L});
-    public static final BitSet FOLLOW_ruleRefSegment_in_entryRuleRefSegment8689 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleRefSegment8699 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleRefSegment8741 = new BitSet(new long[]{0x0000000000010002L});
-    public static final BitSet FOLLOW_16_in_ruleRefSegment8759 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_RULE_INT_in_ruleRefSegment8776 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleBinding_in_entryRuleBinding8819 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleBinding8829 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_70_in_ruleBinding8866 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_ruleBindingEndPoint_in_ruleBinding8887 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
-    public static final BitSet FOLLOW_71_in_ruleBinding8899 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_ruleBindingEndPoint_in_ruleBinding8920 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleBindingEndPoint_in_entryRuleBindingEndPoint8956 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleBindingEndPoint8966 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleBindingEndPoint9012 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_72_in_ruleBindingEndPoint9024 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleBindingEndPoint9046 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000200L});
-    public static final BitSet FOLLOW_73_in_ruleBindingEndPoint9059 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleBindingEndPoint9079 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleLayerConnection_in_entryRuleLayerConnection9117 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleLayerConnection9127 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_74_in_ruleLayerConnection9164 = new BitSet(new long[]{0x0000000000020000L,0x0000000000001000L});
-    public static final BitSet FOLLOW_ruleSAPoint_in_ruleLayerConnection9185 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
-    public static final BitSet FOLLOW_75_in_ruleLayerConnection9197 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_ruleSPPoint_in_ruleLayerConnection9218 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSAPoint_in_entryRuleSAPoint9254 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleSAPoint9264 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRefSAPoint_in_ruleSAPoint9311 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRelaySAPoint_in_ruleSAPoint9338 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRefSAPoint_in_entryRuleRefSAPoint9373 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleRefSAPoint9383 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_17_in_ruleRefSAPoint9420 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleRefSAPoint9440 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRelaySAPoint_in_entryRuleRelaySAPoint9476 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleRelaySAPoint9486 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_76_in_ruleRelaySAPoint9523 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleRelaySAPoint9543 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSPPoint_in_entryRuleSPPoint9579 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleSPPoint9589 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleSPPoint9634 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_72_in_ruleSPPoint9646 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleSPPoint9666 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleActorRef_in_entryRuleActorRef9702 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleActorRef9712 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleReferenceType_in_ruleActorRef9758 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
-    public static final BitSet FOLLOW_77_in_ruleActorRef9771 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleActorRef9788 = new BitSet(new long[]{0x0000000400010000L});
-    public static final BitSet FOLLOW_ruleMULTIPLICITY_in_ruleActorRef9814 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_16_in_ruleActorRef9827 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_ruleFQN_in_ruleActorRef9850 = new BitSet(new long[]{0x0000000400000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_ruleActorRef9871 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleMULTIPLICITY_in_entryRuleMULTIPLICITY9911 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleMULTIPLICITY9922 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_34_in_ruleMULTIPLICITY9960 = new BitSet(new long[]{0x0000000000000040L,0x0000000000004000L});
-    public static final BitSet FOLLOW_78_in_ruleMULTIPLICITY9974 = new BitSet(new long[]{0x0000000800000000L});
-    public static final BitSet FOLLOW_RULE_INT_in_ruleMULTIPLICITY9995 = new BitSet(new long[]{0x0000000800000000L});
-    public static final BitSet FOLLOW_35_in_ruleMULTIPLICITY10014 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleAnnotationTargetType_in_entryRuleAnnotationTargetType10055 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleAnnotationTargetType10066 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_28_in_ruleAnnotationTargetType10104 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_55_in_ruleAnnotationTargetType10123 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_79_in_ruleAnnotationTargetType10142 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_42_in_ruleAnnotationTargetType10161 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_48_in_ruleAnnotationTargetType10180 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_66_in_ruleAnnotationTargetType10199 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_64_in_ruleAnnotationTargetType10218 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleStateGraphNode_in_entryRuleStateGraphNode10260 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleStateGraphNode10270 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleState_in_ruleStateGraphNode10317 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleChoicePoint_in_ruleStateGraphNode10344 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTrPoint_in_ruleStateGraphNode10371 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleStateGraph_in_entryRuleStateGraph10408 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleStateGraph10418 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_14_in_ruleStateGraph10464 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
-    public static final BitSet FOLLOW_ruleState_in_ruleStateGraph10486 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
-    public static final BitSet FOLLOW_ruleTrPoint_in_ruleStateGraph10513 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
-    public static final BitSet FOLLOW_ruleChoicePoint_in_ruleStateGraph10540 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
-    public static final BitSet FOLLOW_ruleTransition_in_ruleStateGraph10567 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
-    public static final BitSet FOLLOW_ruleRefinedTransition_in_ruleStateGraph10594 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
-    public static final BitSet FOLLOW_15_in_ruleStateGraph10608 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleStateMachine_in_entryRuleStateMachine10644 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleStateMachine10654 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_80_in_ruleStateMachine10700 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_14_in_ruleStateMachine10712 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
-    public static final BitSet FOLLOW_ruleState_in_ruleStateMachine10734 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
-    public static final BitSet FOLLOW_ruleTrPoint_in_ruleStateMachine10761 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
-    public static final BitSet FOLLOW_ruleChoicePoint_in_ruleStateMachine10788 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
-    public static final BitSet FOLLOW_ruleTransition_in_ruleStateMachine10815 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
-    public static final BitSet FOLLOW_ruleRefinedTransition_in_ruleStateMachine10842 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
-    public static final BitSet FOLLOW_15_in_ruleStateMachine10856 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleState_in_entryRuleState10892 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleState10902 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSimpleState_in_ruleState10949 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRefinedState_in_ruleState10976 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSimpleState_in_entryRuleSimpleState11011 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleSimpleState11021 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_81_in_ruleSimpleState11058 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleSimpleState11075 = new BitSet(new long[]{0x0000000400004002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_ruleSimpleState11101 = new BitSet(new long[]{0x0000000000004002L});
-    public static final BitSet FOLLOW_14_in_ruleSimpleState11115 = new BitSet(new long[]{0x0000000000008000L,0x00000000003C0000L});
-    public static final BitSet FOLLOW_82_in_ruleSimpleState11128 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleSimpleState11149 = new BitSet(new long[]{0x0000000000008000L,0x0000000000380000L});
-    public static final BitSet FOLLOW_83_in_ruleSimpleState11164 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleSimpleState11185 = new BitSet(new long[]{0x0000000000008000L,0x0000000000300000L});
-    public static final BitSet FOLLOW_84_in_ruleSimpleState11200 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleSimpleState11221 = new BitSet(new long[]{0x0000000000008000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_85_in_ruleSimpleState11236 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleStateGraph_in_ruleSimpleState11257 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_15_in_ruleSimpleState11271 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRefinedState_in_entryRuleRefinedState11309 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleRefinedState11319 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_86_in_ruleRefinedState11356 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_ruleFQN_in_ruleRefinedState11379 = new BitSet(new long[]{0x0000000400004000L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_ruleRefinedState11400 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_14_in_ruleRefinedState11413 = new BitSet(new long[]{0x0000000000008000L,0x00000000003C0000L});
-    public static final BitSet FOLLOW_82_in_ruleRefinedState11426 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleRefinedState11447 = new BitSet(new long[]{0x0000000000008000L,0x0000000000380000L});
-    public static final BitSet FOLLOW_83_in_ruleRefinedState11462 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleRefinedState11483 = new BitSet(new long[]{0x0000000000008000L,0x0000000000300000L});
-    public static final BitSet FOLLOW_84_in_ruleRefinedState11498 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleRefinedState11519 = new BitSet(new long[]{0x0000000000008000L,0x0000000000200000L});
-    public static final BitSet FOLLOW_85_in_ruleRefinedState11534 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleStateGraph_in_ruleRefinedState11555 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_15_in_ruleRefinedState11569 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_entryRuleDetailCode11605 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleDetailCode11615 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_14_in_ruleDetailCode11667 = new BitSet(new long[]{0x0000000000008020L});
-    public static final BitSet FOLLOW_RULE_STRING_in_ruleDetailCode11697 = new BitSet(new long[]{0x0000000000008020L});
-    public static final BitSet FOLLOW_15_in_ruleDetailCode11715 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTrPoint_in_entryRuleTrPoint11751 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleTrPoint11761 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTransitionPoint_in_ruleTrPoint11808 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleEntryPoint_in_ruleTrPoint11835 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleExitPoint_in_ruleTrPoint11862 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTransitionPoint_in_entryRuleTransitionPoint11897 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleTransitionPoint11907 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_87_in_ruleTransitionPoint11950 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
-    public static final BitSet FOLLOW_88_in_ruleTransitionPoint11976 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleTransitionPoint11993 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleEntryPoint_in_entryRuleEntryPoint12034 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleEntryPoint12044 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_89_in_ruleEntryPoint12081 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleEntryPoint12098 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleExitPoint_in_entryRuleExitPoint12139 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleExitPoint12149 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_90_in_ruleExitPoint12186 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleExitPoint12203 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleChoicePoint_in_entryRuleChoicePoint12244 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleChoicePoint12254 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_91_in_ruleChoicePoint12291 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleChoicePoint12308 = new BitSet(new long[]{0x0000000400000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_ruleChoicePoint12334 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTransition_in_entryRuleTransition12371 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleTransition12381 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleInitialTransition_in_ruleTransition12428 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleNonInitialTransition_in_ruleTransition12455 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleNonInitialTransition_in_entryRuleNonInitialTransition12490 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleNonInitialTransition12500 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTransitionChainStartTransition_in_ruleNonInitialTransition12547 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleContinuationTransition_in_ruleNonInitialTransition12574 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleCPBranchTransition_in_ruleNonInitialTransition12601 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTransitionChainStartTransition_in_entryRuleTransitionChainStartTransition12636 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleTransitionChainStartTransition12646 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTriggeredTransition_in_ruleTransitionChainStartTransition12693 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleGuardedTransition_in_ruleTransitionChainStartTransition12720 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleInitialTransition_in_entryRuleInitialTransition12755 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleInitialTransition12765 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_92_in_ruleInitialTransition12802 = new BitSet(new long[]{0x0000000000010010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleInitialTransition12819 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_16_in_ruleInitialTransition12837 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
-    public static final BitSet FOLLOW_93_in_ruleInitialTransition12849 = new BitSet(new long[]{0x0000000000080000L});
-    public static final BitSet FOLLOW_19_in_ruleInitialTransition12861 = new BitSet(new long[]{0x0000000000000010L,0x0000003000000000L});
-    public static final BitSet FOLLOW_ruleTransitionTerminal_in_ruleInitialTransition12882 = new BitSet(new long[]{0x0000000400004002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_ruleInitialTransition12903 = new BitSet(new long[]{0x0000000000004002L});
-    public static final BitSet FOLLOW_14_in_ruleInitialTransition12917 = new BitSet(new long[]{0x0000000000008000L,0x0000000040000000L});
-    public static final BitSet FOLLOW_94_in_ruleInitialTransition12930 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleInitialTransition12951 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_15_in_ruleInitialTransition12965 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleContinuationTransition_in_entryRuleContinuationTransition13003 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleContinuationTransition13013 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_92_in_ruleContinuationTransition13050 = new BitSet(new long[]{0x0000000000010010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleContinuationTransition13067 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_16_in_ruleContinuationTransition13085 = new BitSet(new long[]{0x0000000000000010L,0x0000003000000000L});
-    public static final BitSet FOLLOW_ruleTransitionTerminal_in_ruleContinuationTransition13106 = new BitSet(new long[]{0x0000000000080000L});
-    public static final BitSet FOLLOW_19_in_ruleContinuationTransition13118 = new BitSet(new long[]{0x0000000000000010L,0x0000003000000000L});
-    public static final BitSet FOLLOW_ruleTransitionTerminal_in_ruleContinuationTransition13139 = new BitSet(new long[]{0x0000000400004002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_ruleContinuationTransition13160 = new BitSet(new long[]{0x0000000000004002L});
-    public static final BitSet FOLLOW_14_in_ruleContinuationTransition13174 = new BitSet(new long[]{0x0000000000008000L,0x0000000040000000L});
-    public static final BitSet FOLLOW_94_in_ruleContinuationTransition13187 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleContinuationTransition13208 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_15_in_ruleContinuationTransition13222 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTriggeredTransition_in_entryRuleTriggeredTransition13260 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleTriggeredTransition13270 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_92_in_ruleTriggeredTransition13307 = new BitSet(new long[]{0x0000000000010010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleTriggeredTransition13324 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_16_in_ruleTriggeredTransition13342 = new BitSet(new long[]{0x0000000000000010L,0x0000003000000000L});
-    public static final BitSet FOLLOW_ruleTransitionTerminal_in_ruleTriggeredTransition13363 = new BitSet(new long[]{0x0000000000080000L});
-    public static final BitSet FOLLOW_19_in_ruleTriggeredTransition13375 = new BitSet(new long[]{0x0000000000000010L,0x0000003000000000L});
-    public static final BitSet FOLLOW_ruleTransitionTerminal_in_ruleTriggeredTransition13396 = new BitSet(new long[]{0x0000000400004000L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_ruleTriggeredTransition13417 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_14_in_ruleTriggeredTransition13430 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
-    public static final BitSet FOLLOW_95_in_ruleTriggeredTransition13442 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_14_in_ruleTriggeredTransition13454 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
-    public static final BitSet FOLLOW_ruleTrigger_in_ruleTriggeredTransition13475 = new BitSet(new long[]{0x0000000000008000L,0x0000000100000000L});
-    public static final BitSet FOLLOW_96_in_ruleTriggeredTransition13488 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
-    public static final BitSet FOLLOW_ruleTrigger_in_ruleTriggeredTransition13509 = new BitSet(new long[]{0x0000000000008000L,0x0000000100000000L});
-    public static final BitSet FOLLOW_15_in_ruleTriggeredTransition13523 = new BitSet(new long[]{0x0000000000008000L,0x0000000040000000L});
-    public static final BitSet FOLLOW_94_in_ruleTriggeredTransition13536 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleTriggeredTransition13557 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_15_in_ruleTriggeredTransition13571 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleGuardedTransition_in_entryRuleGuardedTransition13607 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleGuardedTransition13617 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_92_in_ruleGuardedTransition13654 = new BitSet(new long[]{0x0000000000010010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleGuardedTransition13671 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_16_in_ruleGuardedTransition13689 = new BitSet(new long[]{0x0000000000000010L,0x0000003000000000L});
-    public static final BitSet FOLLOW_ruleTransitionTerminal_in_ruleGuardedTransition13710 = new BitSet(new long[]{0x0000000000080000L});
-    public static final BitSet FOLLOW_19_in_ruleGuardedTransition13722 = new BitSet(new long[]{0x0000000000000010L,0x0000003000000000L});
-    public static final BitSet FOLLOW_ruleTransitionTerminal_in_ruleGuardedTransition13743 = new BitSet(new long[]{0x0000000400004000L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_ruleGuardedTransition13764 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_14_in_ruleGuardedTransition13777 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
-    public static final BitSet FOLLOW_97_in_ruleGuardedTransition13789 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleGuardedTransition13810 = new BitSet(new long[]{0x0000000000008000L,0x0000000040000000L});
-    public static final BitSet FOLLOW_94_in_ruleGuardedTransition13823 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleGuardedTransition13844 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_15_in_ruleGuardedTransition13858 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleCPBranchTransition_in_entryRuleCPBranchTransition13894 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleCPBranchTransition13904 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_92_in_ruleCPBranchTransition13941 = new BitSet(new long[]{0x0000000000010010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleCPBranchTransition13958 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_16_in_ruleCPBranchTransition13976 = new BitSet(new long[]{0x0000000000000010L,0x0000003000000000L});
-    public static final BitSet FOLLOW_ruleTransitionTerminal_in_ruleCPBranchTransition13997 = new BitSet(new long[]{0x0000000000080000L});
-    public static final BitSet FOLLOW_19_in_ruleCPBranchTransition14009 = new BitSet(new long[]{0x0000000000000010L,0x0000003000000000L});
-    public static final BitSet FOLLOW_ruleTransitionTerminal_in_ruleCPBranchTransition14030 = new BitSet(new long[]{0x0000000400004000L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_ruleCPBranchTransition14051 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_14_in_ruleCPBranchTransition14064 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
-    public static final BitSet FOLLOW_98_in_ruleCPBranchTransition14076 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleCPBranchTransition14097 = new BitSet(new long[]{0x0000000000008000L,0x0000000040000000L});
-    public static final BitSet FOLLOW_94_in_ruleCPBranchTransition14110 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleCPBranchTransition14131 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_15_in_ruleCPBranchTransition14145 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRefinedTransition_in_entryRuleRefinedTransition14181 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleRefinedTransition14191 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_99_in_ruleRefinedTransition14228 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_ruleFQN_in_ruleRefinedTransition14251 = new BitSet(new long[]{0x0000000400004000L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_ruleRefinedTransition14272 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_14_in_ruleRefinedTransition14285 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
-    public static final BitSet FOLLOW_94_in_ruleRefinedTransition14297 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleRefinedTransition14318 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_15_in_ruleRefinedTransition14330 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTransitionTerminal_in_entryRuleTransitionTerminal14366 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleTransitionTerminal14376 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleStateTerminal_in_ruleTransitionTerminal14423 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTrPointTerminal_in_ruleTransitionTerminal14450 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSubStateTrPointTerminal_in_ruleTransitionTerminal14477 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleChoicepointTerminal_in_ruleTransitionTerminal14504 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleStateTerminal_in_entryRuleStateTerminal14539 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleStateTerminal14549 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleStateTerminal14593 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTrPointTerminal_in_entryRuleTrPointTerminal14628 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleTrPointTerminal14638 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_100_in_ruleTrPointTerminal14675 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleTrPointTerminal14695 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSubStateTrPointTerminal_in_entryRuleSubStateTrPointTerminal14731 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleSubStateTrPointTerminal14741 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleSubStateTrPointTerminal14786 = new BitSet(new long[]{0x0000000001000000L});
-    public static final BitSet FOLLOW_24_in_ruleSubStateTrPointTerminal14798 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleSubStateTrPointTerminal14818 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleChoicepointTerminal_in_entryRuleChoicepointTerminal14854 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleChoicepointTerminal14864 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_101_in_ruleChoicepointTerminal14901 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleChoicepointTerminal14921 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleTrigger_in_entryRuleTrigger14957 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleTrigger14967 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_102_in_ruleTrigger15004 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_ruleMessageFromIf_in_ruleTrigger15025 = new BitSet(new long[]{0x0000000000000000L,0x0000018200000000L});
-    public static final BitSet FOLLOW_103_in_ruleTrigger15038 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_ruleMessageFromIf_in_ruleTrigger15059 = new BitSet(new long[]{0x0000000000000000L,0x0000018200000000L});
-    public static final BitSet FOLLOW_ruleGuard_in_ruleTrigger15082 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
-    public static final BitSet FOLLOW_104_in_ruleTrigger15095 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleMessageFromIf_in_entryRuleMessageFromIf15131 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleMessageFromIf15141 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleMessageFromIf15186 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_16_in_ruleMessageFromIf15198 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleMessageFromIf15218 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleGuard_in_entryRuleGuard15254 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleGuard15264 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_97_in_ruleGuard15301 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_ruleDetailCode_in_ruleGuard15322 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleProtocolSemantics_in_entryRuleProtocolSemantics15358 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleProtocolSemantics15368 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_105_in_ruleProtocolSemantics15414 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_14_in_ruleProtocolSemantics15426 = new BitSet(new long[]{0x0000000000008000L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_ruleSemanticsRule_in_ruleProtocolSemantics15447 = new BitSet(new long[]{0x0000000000008000L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_15_in_ruleProtocolSemantics15460 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSemanticsRule_in_entryRuleSemanticsRule15496 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleSemanticsRule15506 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleInSemanticsRule_in_ruleSemanticsRule15553 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleOutSemanticsRule_in_ruleSemanticsRule15580 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleInSemanticsRule_in_entryRuleInSemanticsRule15615 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleInSemanticsRule15625 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_106_in_ruleInSemanticsRule15662 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_16_in_ruleInSemanticsRule15674 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleInSemanticsRule15694 = new BitSet(new long[]{0x0000000000080002L});
-    public static final BitSet FOLLOW_19_in_ruleInSemanticsRule15707 = new BitSet(new long[]{0x0000000000100000L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_ruleSemanticsRule_in_ruleInSemanticsRule15729 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_20_in_ruleInSemanticsRule15748 = new BitSet(new long[]{0x0000000000000000L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_ruleSemanticsRule_in_ruleInSemanticsRule15769 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_ruleInSemanticsRule15782 = new BitSet(new long[]{0x0000000000000000L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_ruleSemanticsRule_in_ruleInSemanticsRule15803 = new BitSet(new long[]{0x0000000002200000L});
-    public static final BitSet FOLLOW_21_in_ruleInSemanticsRule15817 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleOutSemanticsRule_in_entryRuleOutSemanticsRule15857 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleOutSemanticsRule15867 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_107_in_ruleOutSemanticsRule15904 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_16_in_ruleOutSemanticsRule15916 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleOutSemanticsRule15936 = new BitSet(new long[]{0x0000000000080002L});
-    public static final BitSet FOLLOW_19_in_ruleOutSemanticsRule15949 = new BitSet(new long[]{0x0000000000100000L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_ruleSemanticsRule_in_ruleOutSemanticsRule15971 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_20_in_ruleOutSemanticsRule15990 = new BitSet(new long[]{0x0000000000000000L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_ruleSemanticsRule_in_ruleOutSemanticsRule16011 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_ruleOutSemanticsRule16024 = new BitSet(new long[]{0x0000000000000000L,0x00000C0000000000L});
-    public static final BitSet FOLLOW_ruleSemanticsRule_in_ruleOutSemanticsRule16045 = new BitSet(new long[]{0x0000000002200000L});
-    public static final BitSet FOLLOW_21_in_ruleOutSemanticsRule16059 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleAnnotation_in_entryRuleAnnotation16099 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleAnnotation16109 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_108_in_ruleAnnotation16146 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_ruleFQN_in_ruleAnnotation16169 = new BitSet(new long[]{0x0000000000100002L});
-    public static final BitSet FOLLOW_20_in_ruleAnnotation16182 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_ruleKeyValue_in_ruleAnnotation16203 = new BitSet(new long[]{0x0000000002200000L});
-    public static final BitSet FOLLOW_25_in_ruleAnnotation16216 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_ruleKeyValue_in_ruleAnnotation16237 = new BitSet(new long[]{0x0000000002200000L});
-    public static final BitSet FOLLOW_21_in_ruleAnnotation16251 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleKeyValue_in_entryRuleKeyValue16289 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleKeyValue16299 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleKeyValue16341 = new BitSet(new long[]{0x0000000004000000L});
-    public static final BitSet FOLLOW_26_in_ruleKeyValue16358 = new BitSet(new long[]{0x00000000000000E0L,0x03C0000000000100L});
-    public static final BitSet FOLLOW_ruleLiteral_in_ruleKeyValue16379 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleAnnotationType_in_entryRuleAnnotationType16415 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleAnnotationType16425 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_109_in_ruleAnnotationType16462 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleAnnotationType16479 = new BitSet(new long[]{0x0000000400004000L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_ruleAnnotationType16505 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_14_in_ruleAnnotationType16518 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
-    public static final BitSet FOLLOW_110_in_ruleAnnotationType16530 = new BitSet(new long[]{0x0000000004000000L});
-    public static final BitSet FOLLOW_26_in_ruleAnnotationType16542 = new BitSet(new long[]{0x0081040010004000L,0x0000000000008005L});
-    public static final BitSet FOLLOW_ruleAnnotationTargetType_in_ruleAnnotationType16564 = new BitSet(new long[]{0x0000000000008000L,0x0001800000000000L});
-    public static final BitSet FOLLOW_14_in_ruleAnnotationType16583 = new BitSet(new long[]{0x0081040010000000L,0x0000000000008005L});
-    public static final BitSet FOLLOW_ruleAnnotationTargetType_in_ruleAnnotationType16604 = new BitSet(new long[]{0x0000000002008000L});
-    public static final BitSet FOLLOW_25_in_ruleAnnotationType16617 = new BitSet(new long[]{0x0081040010000000L,0x0000000000008005L});
-    public static final BitSet FOLLOW_ruleAnnotationTargetType_in_ruleAnnotationType16638 = new BitSet(new long[]{0x0000000002008000L});
-    public static final BitSet FOLLOW_15_in_ruleAnnotationType16652 = new BitSet(new long[]{0x0000000000008000L,0x0001800000000000L});
-    public static final BitSet FOLLOW_ruleAnnotationAttribute_in_ruleAnnotationType16675 = new BitSet(new long[]{0x0000000000008000L,0x0001800000000000L});
-    public static final BitSet FOLLOW_15_in_ruleAnnotationType16688 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleAnnotationAttribute_in_entryRuleAnnotationAttribute16724 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleAnnotationAttribute16734 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSimpleAnnotationAttribute_in_ruleAnnotationAttribute16781 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleEnumAnnotationAttribute_in_ruleAnnotationAttribute16808 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSimpleAnnotationAttribute_in_entryRuleSimpleAnnotationAttribute16843 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleSimpleAnnotationAttribute16853 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_111_in_ruleSimpleAnnotationAttribute16897 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_112_in_ruleSimpleAnnotationAttribute16928 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_113_in_ruleSimpleAnnotationAttribute16941 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleSimpleAnnotationAttribute16958 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_16_in_ruleSimpleAnnotationAttribute16975 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000000L,0x0000000000000007L});
-    public static final BitSet FOLLOW_ruleLiteralType_in_ruleSimpleAnnotationAttribute16996 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleEnumAnnotationAttribute_in_entryRuleEnumAnnotationAttribute17032 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleEnumAnnotationAttribute17042 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_111_in_ruleEnumAnnotationAttribute17086 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_112_in_ruleEnumAnnotationAttribute17117 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
-    public static final BitSet FOLLOW_113_in_ruleEnumAnnotationAttribute17130 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleEnumAnnotationAttribute17147 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_16_in_ruleEnumAnnotationAttribute17164 = new BitSet(new long[]{0x0000000000004000L});
-    public static final BitSet FOLLOW_14_in_ruleEnumAnnotationAttribute17176 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_RULE_STRING_in_ruleEnumAnnotationAttribute17193 = new BitSet(new long[]{0x0000000002008000L});
-    public static final BitSet FOLLOW_25_in_ruleEnumAnnotationAttribute17211 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_RULE_STRING_in_ruleEnumAnnotationAttribute17228 = new BitSet(new long[]{0x0000000002008000L});
-    public static final BitSet FOLLOW_15_in_ruleEnumAnnotationAttribute17247 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleImport_in_entryRuleImport17283 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleImport17293 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_114_in_ruleImport17330 = new BitSet(new long[]{0x0000000000000010L,0x0010000000000000L});
-    public static final BitSet FOLLOW_ruleImportedFQN_in_ruleImport17353 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
-    public static final BitSet FOLLOW_115_in_ruleImport17365 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_116_in_ruleImport17384 = new BitSet(new long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_RULE_STRING_in_ruleImport17402 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleImportedFQN_in_entryRuleImportedFQN17444 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleImportedFQN17455 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleFQN_in_ruleImportedFQN17502 = new BitSet(new long[]{0x0000000000000002L,0x0020000000000000L});
-    public static final BitSet FOLLOW_117_in_ruleImportedFQN17521 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDocumentation_in_entryRuleDocumentation17563 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleDocumentation17573 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_34_in_ruleDocumentation17619 = new BitSet(new long[]{0x0000000800000020L});
-    public static final BitSet FOLLOW_RULE_STRING_in_ruleDocumentation17636 = new BitSet(new long[]{0x0000000800000020L});
-    public static final BitSet FOLLOW_35_in_ruleDocumentation17654 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleLiteral_in_entryRuleLiteral17694 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleLiteral17704 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleBooleanLiteral_in_ruleLiteral17751 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleNumberLiteral_in_ruleLiteral17778 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleStringLiteral_in_ruleLiteral17805 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleBooleanLiteral_in_entryRuleBooleanLiteral17840 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleBooleanLiteral17850 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_118_in_ruleBooleanLiteral17897 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_119_in_ruleBooleanLiteral17921 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleNumberLiteral_in_entryRuleNumberLiteral17971 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleNumberLiteral17981 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleIntLiteral_in_ruleNumberLiteral18028 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRealLiteral_in_ruleNumberLiteral18055 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleRealLiteral_in_entryRuleRealLiteral18090 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleRealLiteral18100 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleReal_in_ruleRealLiteral18155 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleIntLiteral_in_entryRuleIntLiteral18191 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleIntLiteral18201 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleInteger_in_ruleIntLiteral18256 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleStringLiteral_in_entryRuleStringLiteral18292 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleStringLiteral18302 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_STRING_in_ruleStringLiteral18353 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleInteger_in_entryRuleInteger18395 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleInteger18406 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSignedInteger_in_ruleInteger18453 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleHexadecimal_in_ruleInteger18486 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleSignedInteger_in_entryRuleSignedInteger18538 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleSignedInteger18549 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_120_in_ruleSignedInteger18592 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_121_in_ruleSignedInteger18611 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_RULE_INT_in_ruleSignedInteger18628 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleHexadecimal_in_entryRuleHexadecimal18684 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleHexadecimal18695 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_HEX_in_ruleHexadecimal18738 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleReal_in_entryRuleReal18787 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleReal18798 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDecimal_in_ruleReal18845 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDotDecimal_in_ruleReal18878 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDecimalDot_in_ruleReal18911 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDecimalExp_in_ruleReal18944 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDecimal_in_entryRuleDecimal18996 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleDecimal19007 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_120_in_ruleDecimal19050 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_121_in_ruleDecimal19069 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_RULE_INT_in_ruleDecimal19086 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_72_in_ruleDecimal19104 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_RULE_INT_in_ruleDecimal19119 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDotDecimal_in_entryRuleDotDecimal19175 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleDotDecimal19186 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_120_in_ruleDotDecimal19229 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_121_in_ruleDotDecimal19248 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_72_in_ruleDotDecimal19263 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_RULE_INT_in_ruleDotDecimal19278 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDecimalDot_in_entryRuleDecimalDot19334 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleDecimalDot19345 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_120_in_ruleDecimalDot19388 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_121_in_ruleDecimalDot19407 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_RULE_INT_in_ruleDecimalDot19424 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_72_in_ruleDecimalDot19442 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleDecimalExp_in_entryRuleDecimalExp19493 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleDecimalExp19504 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_120_in_ruleDecimalExp19547 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_121_in_ruleDecimalExp19566 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_RULE_INT_in_ruleDecimalExp19583 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_72_in_ruleDecimalExp19601 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_RULE_INT_in_ruleDecimalExp19616 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_RULE_EXP_in_ruleDecimalExp19636 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ruleFQN_in_entryRuleFQN19686 = new BitSet(new long[]{0x0000000000000000L});
-    public static final BitSet FOLLOW_EOF_in_entryRuleFQN19697 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleFQN19737 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
-    public static final BitSet FOLLOW_72_in_ruleFQN19756 = new BitSet(new long[]{0x0000000000000010L});
-    public static final BitSet FOLLOW_RULE_ID_in_ruleFQN19771 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
-    public static final BitSet FOLLOW_122_in_ruleCommunicationType19832 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_123_in_ruleCommunicationType19849 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_124_in_ruleCommunicationType19866 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_125_in_ruleReferenceType19911 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_111_in_ruleReferenceType19928 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_122_in_ruleComponentCommunicationType19975 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_123_in_ruleComponentCommunicationType19992 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_126_in_ruleComponentCommunicationType20009 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_124_in_ruleComponentCommunicationType20026 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_127_in_ruleLiteralType20071 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_128_in_ruleLiteralType20088 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_129_in_ruleLiteralType20105 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_130_in_ruleLiteralType20122 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_26_in_ruleAttribute2658 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_RULE_STRING_in_ruleAttribute2675 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_ruleAttribute2703 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleStandardOperation_in_entryRuleStandardOperation2742 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleStandardOperation2752 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_36_in_ruleStandardOperation2795 = new BitSet(new long[]{0x0000002000000000L});
+    public static final BitSet FOLLOW_37_in_ruleStandardOperation2821 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleStandardOperation2838 = new BitSet(new long[]{0x0000000000100000L});
+    public static final BitSet FOLLOW_20_in_ruleStandardOperation2855 = new BitSet(new long[]{0x0000000000200010L});
+    public static final BitSet FOLLOW_ruleVarDecl_in_ruleStandardOperation2877 = new BitSet(new long[]{0x0000000002200000L});
+    public static final BitSet FOLLOW_25_in_ruleStandardOperation2890 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleVarDecl_in_ruleStandardOperation2911 = new BitSet(new long[]{0x0000000002200000L});
+    public static final BitSet FOLLOW_21_in_ruleStandardOperation2927 = new BitSet(new long[]{0x0000000400014000L});
+    public static final BitSet FOLLOW_16_in_ruleStandardOperation2940 = new BitSet(new long[]{0x0000004000000010L});
+    public static final BitSet FOLLOW_38_in_ruleStandardOperation2953 = new BitSet(new long[]{0x0000000400004000L});
+    public static final BitSet FOLLOW_ruleRefableType_in_ruleStandardOperation2980 = new BitSet(new long[]{0x0000000400004000L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_ruleStandardOperation3004 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleStandardOperation3026 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rulePortOperation_in_entryRulePortOperation3062 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRulePortOperation3072 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_37_in_rulePortOperation3109 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_rulePortOperation3126 = new BitSet(new long[]{0x0000000000100000L});
+    public static final BitSet FOLLOW_20_in_rulePortOperation3143 = new BitSet(new long[]{0x0000000000200010L});
+    public static final BitSet FOLLOW_ruleVarDecl_in_rulePortOperation3165 = new BitSet(new long[]{0x0000000002200000L});
+    public static final BitSet FOLLOW_25_in_rulePortOperation3178 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleVarDecl_in_rulePortOperation3199 = new BitSet(new long[]{0x0000000002200000L});
+    public static final BitSet FOLLOW_21_in_rulePortOperation3215 = new BitSet(new long[]{0x0000008400014000L});
+    public static final BitSet FOLLOW_16_in_rulePortOperation3229 = new BitSet(new long[]{0x0000004000000010L});
+    public static final BitSet FOLLOW_38_in_rulePortOperation3242 = new BitSet(new long[]{0x0000000400004000L});
+    public static final BitSet FOLLOW_ruleRefableType_in_rulePortOperation3269 = new BitSet(new long[]{0x0000000400004000L});
+    public static final BitSet FOLLOW_39_in_rulePortOperation3290 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_rulePortOperation3310 = new BitSet(new long[]{0x0000000400004000L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rulePortOperation3334 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rulePortOperation3356 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleClassStructor_in_entryRuleClassStructor3392 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleClassStructor3402 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_40_in_ruleClassStructor3447 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_41_in_ruleClassStructor3476 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleClassStructor3513 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleGeneralProtocolClass_in_entryRuleGeneralProtocolClass3549 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleGeneralProtocolClass3559 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleProtocolClass_in_ruleGeneralProtocolClass3606 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleCompoundProtocolClass_in_ruleGeneralProtocolClass3633 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleProtocolClass_in_entryRuleProtocolClass3668 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleProtocolClass3678 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleCommunicationType_in_ruleProtocolClass3724 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_42_in_ruleProtocolClass3737 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleProtocolClass3754 = new BitSet(new long[]{0x0000000420004000L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_ruleProtocolClass3780 = new BitSet(new long[]{0x0000000020004000L});
+    public static final BitSet FOLLOW_29_in_ruleProtocolClass3794 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleFQN_in_ruleProtocolClass3817 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_14_in_ruleProtocolClass3831 = new BitSet(new long[]{0x0000B801C0008000L,0x0000120000000000L});
+    public static final BitSet FOLLOW_ruleAnnotation_in_ruleProtocolClass3852 = new BitSet(new long[]{0x0000B801C0008000L,0x0000120000000000L});
+    public static final BitSet FOLLOW_30_in_ruleProtocolClass3866 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleProtocolClass3887 = new BitSet(new long[]{0x0000B80180008000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_31_in_ruleProtocolClass3902 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleProtocolClass3923 = new BitSet(new long[]{0x0000B80100008000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_32_in_ruleProtocolClass3938 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleProtocolClass3959 = new BitSet(new long[]{0x0000B80000008000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_43_in_ruleProtocolClass3974 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_14_in_ruleProtocolClass3986 = new BitSet(new long[]{0x000C000000008000L});
+    public static final BitSet FOLLOW_ruleMessage_in_ruleProtocolClass4007 = new BitSet(new long[]{0x000C000000008000L});
+    public static final BitSet FOLLOW_15_in_ruleProtocolClass4020 = new BitSet(new long[]{0x0000B00000008000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_44_in_ruleProtocolClass4035 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_14_in_ruleProtocolClass4047 = new BitSet(new long[]{0x000C000000008000L});
+    public static final BitSet FOLLOW_ruleMessage_in_ruleProtocolClass4068 = new BitSet(new long[]{0x000C000000008000L});
+    public static final BitSet FOLLOW_15_in_ruleProtocolClass4081 = new BitSet(new long[]{0x0000A00000008000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_45_in_ruleProtocolClass4096 = new BitSet(new long[]{0x0000400000000000L});
+    public static final BitSet FOLLOW_46_in_ruleProtocolClass4108 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_rulePortClass_in_ruleProtocolClass4129 = new BitSet(new long[]{0x0000800000008000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_47_in_ruleProtocolClass4144 = new BitSet(new long[]{0x0000400000000000L});
+    public static final BitSet FOLLOW_46_in_ruleProtocolClass4156 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_rulePortClass_in_ruleProtocolClass4177 = new BitSet(new long[]{0x0000000000008000L,0x0000020000000000L});
+    public static final BitSet FOLLOW_ruleProtocolSemantics_in_ruleProtocolClass4200 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_15_in_ruleProtocolClass4213 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleCompoundProtocolClass_in_entryRuleCompoundProtocolClass4249 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleCompoundProtocolClass4259 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_48_in_ruleCompoundProtocolClass4296 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleCompoundProtocolClass4313 = new BitSet(new long[]{0x0000000400004000L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_ruleCompoundProtocolClass4339 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_14_in_ruleCompoundProtocolClass4352 = new BitSet(new long[]{0x0002000000008000L,0x0000100000000000L});
+    public static final BitSet FOLLOW_ruleAnnotation_in_ruleCompoundProtocolClass4373 = new BitSet(new long[]{0x0002000000008000L,0x0000100000000000L});
+    public static final BitSet FOLLOW_ruleSubProtocol_in_ruleCompoundProtocolClass4395 = new BitSet(new long[]{0x0002000000008000L});
+    public static final BitSet FOLLOW_15_in_ruleCompoundProtocolClass4408 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSubProtocol_in_entryRuleSubProtocol4444 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleSubProtocol4454 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_49_in_ruleSubProtocol4491 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleSubProtocol4508 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_16_in_ruleSubProtocol4525 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleFQN_in_ruleSubProtocol4548 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleMessage_in_entryRuleMessage4584 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleMessage4594 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_50_in_ruleMessage4637 = new BitSet(new long[]{0x0008000000000000L});
+    public static final BitSet FOLLOW_51_in_ruleMessage4663 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleMessage4680 = new BitSet(new long[]{0x0000000000100000L});
+    public static final BitSet FOLLOW_20_in_ruleMessage4697 = new BitSet(new long[]{0x0000000000200010L});
+    public static final BitSet FOLLOW_ruleVarDecl_in_ruleMessage4718 = new BitSet(new long[]{0x0000000000200000L});
+    public static final BitSet FOLLOW_21_in_ruleMessage4731 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_ruleMessage4752 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rulePortClass_in_entryRulePortClass4789 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRulePortClass4799 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_14_in_rulePortClass4845 = new BitSet(new long[]{0x0030033200008000L});
+    public static final BitSet FOLLOW_52_in_rulePortClass4858 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_rulePortClass4879 = new BitSet(new long[]{0x0020033200008000L});
+    public static final BitSet FOLLOW_ruleMessageHandler_in_rulePortClass4903 = new BitSet(new long[]{0x0020033200008000L});
+    public static final BitSet FOLLOW_rulePortOperation_in_rulePortClass4930 = new BitSet(new long[]{0x0020033200008000L});
+    public static final BitSet FOLLOW_ruleAttribute_in_rulePortClass4957 = new BitSet(new long[]{0x0020033200008000L});
+    public static final BitSet FOLLOW_15_in_rulePortClass4971 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleMessageHandler_in_entryRuleMessageHandler5007 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleMessageHandler5017 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleInMessageHandler_in_ruleMessageHandler5064 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleOutMessageHandler_in_ruleMessageHandler5091 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleInMessageHandler_in_entryRuleInMessageHandler5126 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleInMessageHandler5136 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_53_in_ruleInMessageHandler5173 = new BitSet(new long[]{0x0000080000000000L});
+    public static final BitSet FOLLOW_43_in_ruleInMessageHandler5185 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleInMessageHandler5205 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleInMessageHandler5226 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleOutMessageHandler_in_entryRuleOutMessageHandler5262 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleOutMessageHandler5272 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_53_in_ruleOutMessageHandler5309 = new BitSet(new long[]{0x0000100000000000L});
+    public static final BitSet FOLLOW_44_in_ruleOutMessageHandler5321 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleOutMessageHandler5341 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleOutMessageHandler5362 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleModelComponent_in_entryRuleModelComponent5398 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleModelComponent5408 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleActorClass_in_ruleModelComponent5454 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleActorClass_in_entryRuleActorClass5488 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleActorClass5498 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_54_in_ruleActorClass5586 = new BitSet(new long[]{0x00C0000000000000L,0x5C00000000000000L});
+    public static final BitSet FOLLOW_ruleComponentCommunicationType_in_ruleActorClass5674 = new BitSet(new long[]{0x00C0000000000000L,0x5C00000000000000L});
+    public static final BitSet FOLLOW_55_in_ruleActorClass5726 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleActorClass5743 = new BitSet(new long[]{0x0000000420004000L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_ruleActorClass5769 = new BitSet(new long[]{0x0000000020004000L});
+    public static final BitSet FOLLOW_29_in_ruleActorClass5783 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleFQN_in_ruleActorClass5806 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_14_in_ruleActorClass5820 = new BitSet(new long[]{0x0700000000008000L,0x0000100000000000L});
+    public static final BitSet FOLLOW_ruleAnnotation_in_ruleActorClass5841 = new BitSet(new long[]{0x0700000000008000L,0x0000100000000000L});
+    public static final BitSet FOLLOW_56_in_ruleActorClass5855 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_14_in_ruleActorClass5867 = new BitSet(new long[]{0x4800800000008000L});
+    public static final BitSet FOLLOW_ruleSPP_in_ruleActorClass5889 = new BitSet(new long[]{0x4800800000008000L});
+    public static final BitSet FOLLOW_rulePort_in_ruleActorClass5916 = new BitSet(new long[]{0x4800800000008000L});
+    public static final BitSet FOLLOW_15_in_ruleActorClass5930 = new BitSet(new long[]{0x0600000000008000L});
+    public static final BitSet FOLLOW_57_in_ruleActorClass5945 = new BitSet(new long[]{0x0000000400004000L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_ruleActorClass5966 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_14_in_ruleActorClass5979 = new BitSet(new long[]{0xF8008333C0008000L,0x2000800000002440L});
+    public static final BitSet FOLLOW_30_in_ruleActorClass5992 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleActorClass6013 = new BitSet(new long[]{0xF800833380008000L,0x2000800000002440L});
+    public static final BitSet FOLLOW_31_in_ruleActorClass6028 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleActorClass6049 = new BitSet(new long[]{0xF800833300008000L,0x2000800000002440L});
+    public static final BitSet FOLLOW_32_in_ruleActorClass6064 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleActorClass6085 = new BitSet(new long[]{0xF800833200008000L,0x2000800000002440L});
+    public static final BitSet FOLLOW_ruleLayerConnection_in_ruleActorClass6109 = new BitSet(new long[]{0xF800833200008000L,0x2000800000002440L});
+    public static final BitSet FOLLOW_ruleBinding_in_ruleActorClass6136 = new BitSet(new long[]{0xF800833200008000L,0x2000800000002440L});
+    public static final BitSet FOLLOW_ruleServiceImplementation_in_ruleActorClass6163 = new BitSet(new long[]{0xF800833200008000L,0x2000800000002440L});
+    public static final BitSet FOLLOW_ruleAttribute_in_ruleActorClass6190 = new BitSet(new long[]{0xF800833200008000L,0x2000800000002440L});
+    public static final BitSet FOLLOW_ruleActorRef_in_ruleActorClass6217 = new BitSet(new long[]{0xF800833200008000L,0x2000800000002440L});
+    public static final BitSet FOLLOW_ruleSAP_in_ruleActorClass6244 = new BitSet(new long[]{0xF800833200008000L,0x2000800000002440L});
+    public static final BitSet FOLLOW_rulePort_in_ruleActorClass6271 = new BitSet(new long[]{0xF800833200008000L,0x2000800000002440L});
+    public static final BitSet FOLLOW_ruleExternalPort_in_ruleActorClass6298 = new BitSet(new long[]{0xF800833200008000L,0x2000800000002440L});
+    public static final BitSet FOLLOW_15_in_ruleActorClass6312 = new BitSet(new long[]{0x0400000000008000L});
+    public static final BitSet FOLLOW_58_in_ruleActorClass6327 = new BitSet(new long[]{0x0000000400004000L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_ruleActorClass6348 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_14_in_ruleActorClass6361 = new BitSet(new long[]{0x0000033000008000L,0x0000100000010000L});
+    public static final BitSet FOLLOW_ruleAnnotation_in_ruleActorClass6382 = new BitSet(new long[]{0x0000033000008000L,0x0000100000010000L});
+    public static final BitSet FOLLOW_ruleStandardOperation_in_ruleActorClass6405 = new BitSet(new long[]{0x0000033000008000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_ruleClassStructor_in_ruleActorClass6432 = new BitSet(new long[]{0x0000033000008000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_ruleStateMachine_in_ruleActorClass6455 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_15_in_ruleActorClass6468 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_15_in_ruleActorClass6482 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleInterfaceItem_in_entryRuleInterfaceItem6518 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleInterfaceItem6528 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rulePort_in_ruleInterfaceItem6575 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSAP_in_ruleInterfaceItem6602 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSPP_in_ruleInterfaceItem6629 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_rulePort_in_entryRulePort6664 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRulePort6674 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_47_in_rulePort6717 = new BitSet(new long[]{0x0800000000000000L});
+    public static final BitSet FOLLOW_59_in_rulePort6743 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_rulePort6760 = new BitSet(new long[]{0x0000000400010000L});
+    public static final BitSet FOLLOW_ruleMULTIPLICITY_in_rulePort6786 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_16_in_rulePort6799 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleFQN_in_rulePort6822 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_rulePort6843 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleExternalPort_in_entryRuleExternalPort6880 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleExternalPort6890 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_60_in_ruleExternalPort6927 = new BitSet(new long[]{0x0800000000000000L});
+    public static final BitSet FOLLOW_59_in_ruleExternalPort6939 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleExternalPort6959 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSAP_in_entryRuleSAP6995 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleSAP7005 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_61_in_ruleSAP7042 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleSAP7059 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_16_in_ruleSAP7076 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleFQN_in_ruleSAP7099 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSPP_in_entryRuleSPP7135 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleSPP7145 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_62_in_ruleSPP7182 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleSPP7199 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_16_in_ruleSPP7216 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleFQN_in_ruleSPP7239 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleServiceImplementation_in_entryRuleServiceImplementation7275 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleServiceImplementation7285 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_63_in_ruleServiceImplementation7322 = new BitSet(new long[]{0x0000000001000000L});
+    public static final BitSet FOLLOW_24_in_ruleServiceImplementation7334 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleServiceImplementation7354 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleLogicalSystem_in_entryRuleLogicalSystem7390 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleLogicalSystem7400 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_64_in_ruleLogicalSystem7437 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleLogicalSystem7454 = new BitSet(new long[]{0x0000000400004000L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_ruleLogicalSystem7480 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_14_in_ruleLogicalSystem7493 = new BitSet(new long[]{0x0000000000008000L,0x0000100000000442L});
+    public static final BitSet FOLLOW_ruleAnnotation_in_ruleLogicalSystem7514 = new BitSet(new long[]{0x0000000000008000L,0x0000100000000442L});
+    public static final BitSet FOLLOW_ruleLayerConnection_in_ruleLogicalSystem7537 = new BitSet(new long[]{0x0000000000008000L,0x0000000000000442L});
+    public static final BitSet FOLLOW_ruleBinding_in_ruleLogicalSystem7564 = new BitSet(new long[]{0x0000000000008000L,0x0000000000000442L});
+    public static final BitSet FOLLOW_ruleSubSystemRef_in_ruleLogicalSystem7591 = new BitSet(new long[]{0x0000000000008000L,0x0000000000000442L});
+    public static final BitSet FOLLOW_15_in_ruleLogicalSystem7605 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSubSystemRef_in_entryRuleSubSystemRef7643 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleSubSystemRef7653 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_65_in_ruleSubSystemRef7690 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleSubSystemRef7707 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_16_in_ruleSubSystemRef7724 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleFQN_in_ruleSubSystemRef7747 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_ruleSubSystemRef7768 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSubSystemClass_in_entryRuleSubSystemClass7805 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleSubSystemClass7815 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_66_in_ruleSubSystemClass7852 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleSubSystemClass7869 = new BitSet(new long[]{0x0000000400004000L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_ruleSubSystemClass7895 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_14_in_ruleSubSystemClass7908 = new BitSet(new long[]{0x48008001C0008000L,0x2000900000002458L});
+    public static final BitSet FOLLOW_ruleAnnotation_in_ruleSubSystemClass7929 = new BitSet(new long[]{0x48008001C0008000L,0x2000900000002458L});
+    public static final BitSet FOLLOW_30_in_ruleSubSystemClass7943 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleSubSystemClass7964 = new BitSet(new long[]{0x4800800180008000L,0x2000800000002458L});
+    public static final BitSet FOLLOW_31_in_ruleSubSystemClass7979 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleSubSystemClass8000 = new BitSet(new long[]{0x4800800100008000L,0x2000800000002458L});
+    public static final BitSet FOLLOW_32_in_ruleSubSystemClass8015 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleSubSystemClass8036 = new BitSet(new long[]{0x4800800000008000L,0x2000800000002458L});
+    public static final BitSet FOLLOW_ruleActorInstanceMapping_in_ruleSubSystemClass8060 = new BitSet(new long[]{0x4800800000008000L,0x2000800000002458L});
+    public static final BitSet FOLLOW_ruleLogicalThread_in_ruleSubSystemClass8087 = new BitSet(new long[]{0x4800800000008000L,0x2000800000002458L});
+    public static final BitSet FOLLOW_ruleLayerConnection_in_ruleSubSystemClass8114 = new BitSet(new long[]{0x4800800000008000L,0x2000800000002458L});
+    public static final BitSet FOLLOW_ruleBinding_in_ruleSubSystemClass8141 = new BitSet(new long[]{0x4800800000008000L,0x2000800000002458L});
+    public static final BitSet FOLLOW_ruleActorRef_in_ruleSubSystemClass8168 = new BitSet(new long[]{0x4800800000008000L,0x2000800000002458L});
+    public static final BitSet FOLLOW_ruleSPP_in_ruleSubSystemClass8195 = new BitSet(new long[]{0x4800800000008000L,0x2000800000002458L});
+    public static final BitSet FOLLOW_rulePort_in_ruleSubSystemClass8222 = new BitSet(new long[]{0x4800800000008000L,0x2000800000002458L});
+    public static final BitSet FOLLOW_15_in_ruleSubSystemClass8236 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleLogicalThread_in_entryRuleLogicalThread8272 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleLogicalThread8282 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_67_in_ruleLogicalThread8319 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleLogicalThread8336 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleActorInstanceMapping_in_entryRuleActorInstanceMapping8377 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleActorInstanceMapping8387 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_68_in_ruleActorInstanceMapping8424 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleRefPath_in_ruleActorInstanceMapping8445 = new BitSet(new long[]{0x0000000000080000L});
+    public static final BitSet FOLLOW_19_in_ruleActorInstanceMapping8457 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleActorInstanceMapping8477 = new BitSet(new long[]{0x0000000000004002L});
+    public static final BitSet FOLLOW_14_in_ruleActorInstanceMapping8490 = new BitSet(new long[]{0x0000000000008000L,0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleActorInstanceMapping_in_ruleActorInstanceMapping8511 = new BitSet(new long[]{0x0000000000008000L,0x0000000000000010L});
+    public static final BitSet FOLLOW_15_in_ruleActorInstanceMapping8524 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRefPath_in_entryRuleRefPath8562 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleRefPath8572 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRefSegment_in_ruleRefPath8618 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000020L});
+    public static final BitSet FOLLOW_69_in_ruleRefPath8631 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleRefSegment_in_ruleRefPath8652 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000020L});
+    public static final BitSet FOLLOW_ruleRefSegment_in_entryRuleRefSegment8690 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleRefSegment8700 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleRefSegment8742 = new BitSet(new long[]{0x0000000000010002L});
+    public static final BitSet FOLLOW_16_in_ruleRefSegment8760 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_INT_in_ruleRefSegment8777 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleBinding_in_entryRuleBinding8820 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleBinding8830 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_70_in_ruleBinding8867 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleBindingEndPoint_in_ruleBinding8888 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
+    public static final BitSet FOLLOW_71_in_ruleBinding8900 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleBindingEndPoint_in_ruleBinding8921 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleBindingEndPoint_in_entryRuleBindingEndPoint8957 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleBindingEndPoint8967 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleBindingEndPoint9013 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_72_in_ruleBindingEndPoint9025 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleBindingEndPoint9047 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000200L});
+    public static final BitSet FOLLOW_73_in_ruleBindingEndPoint9060 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleBindingEndPoint9080 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleLayerConnection_in_entryRuleLayerConnection9118 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleLayerConnection9128 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_74_in_ruleLayerConnection9165 = new BitSet(new long[]{0x0000000000020000L,0x0000000000001000L});
+    public static final BitSet FOLLOW_ruleSAPoint_in_ruleLayerConnection9186 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
+    public static final BitSet FOLLOW_75_in_ruleLayerConnection9198 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleSPPoint_in_ruleLayerConnection9219 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSAPoint_in_entryRuleSAPoint9255 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleSAPoint9265 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRefSAPoint_in_ruleSAPoint9312 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRelaySAPoint_in_ruleSAPoint9339 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRefSAPoint_in_entryRuleRefSAPoint9374 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleRefSAPoint9384 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_17_in_ruleRefSAPoint9421 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleRefSAPoint9441 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRelaySAPoint_in_entryRuleRelaySAPoint9477 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleRelaySAPoint9487 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_76_in_ruleRelaySAPoint9524 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleRelaySAPoint9544 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSPPoint_in_entryRuleSPPoint9580 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleSPPoint9590 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleSPPoint9635 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_72_in_ruleSPPoint9647 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleSPPoint9667 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleActorRef_in_entryRuleActorRef9703 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleActorRef9713 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleReferenceType_in_ruleActorRef9759 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
+    public static final BitSet FOLLOW_77_in_ruleActorRef9772 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleActorRef9789 = new BitSet(new long[]{0x0000000400010000L});
+    public static final BitSet FOLLOW_ruleMULTIPLICITY_in_ruleActorRef9815 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_16_in_ruleActorRef9828 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleFQN_in_ruleActorRef9851 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_ruleActorRef9872 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleMULTIPLICITY_in_entryRuleMULTIPLICITY9912 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleMULTIPLICITY9923 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_34_in_ruleMULTIPLICITY9961 = new BitSet(new long[]{0x0000000000000040L,0x0000000000004000L});
+    public static final BitSet FOLLOW_78_in_ruleMULTIPLICITY9975 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_RULE_INT_in_ruleMULTIPLICITY9996 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_35_in_ruleMULTIPLICITY10015 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleAnnotationTargetType_in_entryRuleAnnotationTargetType10056 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleAnnotationTargetType10067 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_28_in_ruleAnnotationTargetType10105 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_55_in_ruleAnnotationTargetType10124 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_79_in_ruleAnnotationTargetType10143 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_42_in_ruleAnnotationTargetType10162 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_48_in_ruleAnnotationTargetType10181 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_66_in_ruleAnnotationTargetType10200 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_64_in_ruleAnnotationTargetType10219 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleStateGraphNode_in_entryRuleStateGraphNode10261 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleStateGraphNode10271 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleState_in_ruleStateGraphNode10318 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleChoicePoint_in_ruleStateGraphNode10345 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTrPoint_in_ruleStateGraphNode10372 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleStateGraph_in_entryRuleStateGraph10409 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleStateGraph10419 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_14_in_ruleStateGraph10465 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
+    public static final BitSet FOLLOW_ruleState_in_ruleStateGraph10487 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
+    public static final BitSet FOLLOW_ruleTrPoint_in_ruleStateGraph10514 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
+    public static final BitSet FOLLOW_ruleChoicePoint_in_ruleStateGraph10541 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
+    public static final BitSet FOLLOW_ruleTransition_in_ruleStateGraph10568 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
+    public static final BitSet FOLLOW_ruleRefinedTransition_in_ruleStateGraph10595 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
+    public static final BitSet FOLLOW_15_in_ruleStateGraph10609 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleStateMachine_in_entryRuleStateMachine10645 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleStateMachine10655 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_80_in_ruleStateMachine10701 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_14_in_ruleStateMachine10713 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
+    public static final BitSet FOLLOW_ruleState_in_ruleStateMachine10735 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
+    public static final BitSet FOLLOW_ruleTrPoint_in_ruleStateMachine10762 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
+    public static final BitSet FOLLOW_ruleChoicePoint_in_ruleStateMachine10789 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
+    public static final BitSet FOLLOW_ruleTransition_in_ruleStateMachine10816 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
+    public static final BitSet FOLLOW_ruleRefinedTransition_in_ruleStateMachine10843 = new BitSet(new long[]{0x0000000000008000L,0x000000081FC20000L});
+    public static final BitSet FOLLOW_15_in_ruleStateMachine10857 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleState_in_entryRuleState10893 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleState10903 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSimpleState_in_ruleState10950 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRefinedState_in_ruleState10977 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSimpleState_in_entryRuleSimpleState11012 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleSimpleState11022 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_81_in_ruleSimpleState11059 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleSimpleState11076 = new BitSet(new long[]{0x0000000400004002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_ruleSimpleState11102 = new BitSet(new long[]{0x0000000000004002L});
+    public static final BitSet FOLLOW_14_in_ruleSimpleState11116 = new BitSet(new long[]{0x0000000000008000L,0x00000000003C0000L});
+    public static final BitSet FOLLOW_82_in_ruleSimpleState11129 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleSimpleState11150 = new BitSet(new long[]{0x0000000000008000L,0x0000000000380000L});
+    public static final BitSet FOLLOW_83_in_ruleSimpleState11165 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleSimpleState11186 = new BitSet(new long[]{0x0000000000008000L,0x0000000000300000L});
+    public static final BitSet FOLLOW_84_in_ruleSimpleState11201 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleSimpleState11222 = new BitSet(new long[]{0x0000000000008000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_85_in_ruleSimpleState11237 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleStateGraph_in_ruleSimpleState11258 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_15_in_ruleSimpleState11272 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRefinedState_in_entryRuleRefinedState11310 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleRefinedState11320 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_86_in_ruleRefinedState11357 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleFQN_in_ruleRefinedState11380 = new BitSet(new long[]{0x0000000400004000L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_ruleRefinedState11401 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_14_in_ruleRefinedState11414 = new BitSet(new long[]{0x0000000000008000L,0x00000000003C0000L});
+    public static final BitSet FOLLOW_82_in_ruleRefinedState11427 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleRefinedState11448 = new BitSet(new long[]{0x0000000000008000L,0x0000000000380000L});
+    public static final BitSet FOLLOW_83_in_ruleRefinedState11463 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleRefinedState11484 = new BitSet(new long[]{0x0000000000008000L,0x0000000000300000L});
+    public static final BitSet FOLLOW_84_in_ruleRefinedState11499 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleRefinedState11520 = new BitSet(new long[]{0x0000000000008000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_85_in_ruleRefinedState11535 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleStateGraph_in_ruleRefinedState11556 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_15_in_ruleRefinedState11570 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_entryRuleDetailCode11606 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleDetailCode11616 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_14_in_ruleDetailCode11668 = new BitSet(new long[]{0x0000000000008020L});
+    public static final BitSet FOLLOW_RULE_STRING_in_ruleDetailCode11698 = new BitSet(new long[]{0x0000000000008020L});
+    public static final BitSet FOLLOW_15_in_ruleDetailCode11716 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTrPoint_in_entryRuleTrPoint11752 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleTrPoint11762 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTransitionPoint_in_ruleTrPoint11809 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleEntryPoint_in_ruleTrPoint11836 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleExitPoint_in_ruleTrPoint11863 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTransitionPoint_in_entryRuleTransitionPoint11898 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleTransitionPoint11908 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_87_in_ruleTransitionPoint11951 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
+    public static final BitSet FOLLOW_88_in_ruleTransitionPoint11977 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleTransitionPoint11994 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleEntryPoint_in_entryRuleEntryPoint12035 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleEntryPoint12045 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_89_in_ruleEntryPoint12082 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleEntryPoint12099 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleExitPoint_in_entryRuleExitPoint12140 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleExitPoint12150 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_90_in_ruleExitPoint12187 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleExitPoint12204 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleChoicePoint_in_entryRuleChoicePoint12245 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleChoicePoint12255 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_91_in_ruleChoicePoint12292 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleChoicePoint12309 = new BitSet(new long[]{0x0000000400000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_ruleChoicePoint12335 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTransition_in_entryRuleTransition12372 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleTransition12382 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleInitialTransition_in_ruleTransition12429 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleNonInitialTransition_in_ruleTransition12456 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleNonInitialTransition_in_entryRuleNonInitialTransition12491 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleNonInitialTransition12501 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTransitionChainStartTransition_in_ruleNonInitialTransition12548 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleContinuationTransition_in_ruleNonInitialTransition12575 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleCPBranchTransition_in_ruleNonInitialTransition12602 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTransitionChainStartTransition_in_entryRuleTransitionChainStartTransition12637 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleTransitionChainStartTransition12647 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTriggeredTransition_in_ruleTransitionChainStartTransition12694 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleGuardedTransition_in_ruleTransitionChainStartTransition12721 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleInitialTransition_in_entryRuleInitialTransition12756 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleInitialTransition12766 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_92_in_ruleInitialTransition12803 = new BitSet(new long[]{0x0000000000010010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleInitialTransition12820 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_16_in_ruleInitialTransition12838 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
+    public static final BitSet FOLLOW_93_in_ruleInitialTransition12850 = new BitSet(new long[]{0x0000000000080000L});
+    public static final BitSet FOLLOW_19_in_ruleInitialTransition12862 = new BitSet(new long[]{0x0000000000000010L,0x0000003000000000L});
+    public static final BitSet FOLLOW_ruleTransitionTerminal_in_ruleInitialTransition12883 = new BitSet(new long[]{0x0000000400004002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_ruleInitialTransition12904 = new BitSet(new long[]{0x0000000000004002L});
+    public static final BitSet FOLLOW_14_in_ruleInitialTransition12918 = new BitSet(new long[]{0x0000000000008000L,0x0000000040000000L});
+    public static final BitSet FOLLOW_94_in_ruleInitialTransition12931 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleInitialTransition12952 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_15_in_ruleInitialTransition12966 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleContinuationTransition_in_entryRuleContinuationTransition13004 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleContinuationTransition13014 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_92_in_ruleContinuationTransition13051 = new BitSet(new long[]{0x0000000000010010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleContinuationTransition13068 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_16_in_ruleContinuationTransition13086 = new BitSet(new long[]{0x0000000000000010L,0x0000003000000000L});
+    public static final BitSet FOLLOW_ruleTransitionTerminal_in_ruleContinuationTransition13107 = new BitSet(new long[]{0x0000000000080000L});
+    public static final BitSet FOLLOW_19_in_ruleContinuationTransition13119 = new BitSet(new long[]{0x0000000000000010L,0x0000003000000000L});
+    public static final BitSet FOLLOW_ruleTransitionTerminal_in_ruleContinuationTransition13140 = new BitSet(new long[]{0x0000000400004002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_ruleContinuationTransition13161 = new BitSet(new long[]{0x0000000000004002L});
+    public static final BitSet FOLLOW_14_in_ruleContinuationTransition13175 = new BitSet(new long[]{0x0000000000008000L,0x0000000040000000L});
+    public static final BitSet FOLLOW_94_in_ruleContinuationTransition13188 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleContinuationTransition13209 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_15_in_ruleContinuationTransition13223 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTriggeredTransition_in_entryRuleTriggeredTransition13261 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleTriggeredTransition13271 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_92_in_ruleTriggeredTransition13308 = new BitSet(new long[]{0x0000000000010010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleTriggeredTransition13325 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_16_in_ruleTriggeredTransition13343 = new BitSet(new long[]{0x0000000000000010L,0x0000003000000000L});
+    public static final BitSet FOLLOW_ruleTransitionTerminal_in_ruleTriggeredTransition13364 = new BitSet(new long[]{0x0000000000080000L});
+    public static final BitSet FOLLOW_19_in_ruleTriggeredTransition13376 = new BitSet(new long[]{0x0000000000000010L,0x0000003000000000L});
+    public static final BitSet FOLLOW_ruleTransitionTerminal_in_ruleTriggeredTransition13397 = new BitSet(new long[]{0x0000000400004000L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_ruleTriggeredTransition13418 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_14_in_ruleTriggeredTransition13431 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
+    public static final BitSet FOLLOW_95_in_ruleTriggeredTransition13443 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_14_in_ruleTriggeredTransition13455 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
+    public static final BitSet FOLLOW_ruleTrigger_in_ruleTriggeredTransition13476 = new BitSet(new long[]{0x0000000000008000L,0x0000000100000000L});
+    public static final BitSet FOLLOW_96_in_ruleTriggeredTransition13489 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
+    public static final BitSet FOLLOW_ruleTrigger_in_ruleTriggeredTransition13510 = new BitSet(new long[]{0x0000000000008000L,0x0000000100000000L});
+    public static final BitSet FOLLOW_15_in_ruleTriggeredTransition13524 = new BitSet(new long[]{0x0000000000008000L,0x0000000040000000L});
+    public static final BitSet FOLLOW_94_in_ruleTriggeredTransition13537 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleTriggeredTransition13558 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_15_in_ruleTriggeredTransition13572 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleGuardedTransition_in_entryRuleGuardedTransition13608 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleGuardedTransition13618 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_92_in_ruleGuardedTransition13655 = new BitSet(new long[]{0x0000000000010010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleGuardedTransition13672 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_16_in_ruleGuardedTransition13690 = new BitSet(new long[]{0x0000000000000010L,0x0000003000000000L});
+    public static final BitSet FOLLOW_ruleTransitionTerminal_in_ruleGuardedTransition13711 = new BitSet(new long[]{0x0000000000080000L});
+    public static final BitSet FOLLOW_19_in_ruleGuardedTransition13723 = new BitSet(new long[]{0x0000000000000010L,0x0000003000000000L});
+    public static final BitSet FOLLOW_ruleTransitionTerminal_in_ruleGuardedTransition13744 = new BitSet(new long[]{0x0000000400004000L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_ruleGuardedTransition13765 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_14_in_ruleGuardedTransition13778 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
+    public static final BitSet FOLLOW_97_in_ruleGuardedTransition13790 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleGuardedTransition13811 = new BitSet(new long[]{0x0000000000008000L,0x0000000040000000L});
+    public static final BitSet FOLLOW_94_in_ruleGuardedTransition13824 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleGuardedTransition13845 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_15_in_ruleGuardedTransition13859 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleCPBranchTransition_in_entryRuleCPBranchTransition13895 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleCPBranchTransition13905 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_92_in_ruleCPBranchTransition13942 = new BitSet(new long[]{0x0000000000010010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleCPBranchTransition13959 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_16_in_ruleCPBranchTransition13977 = new BitSet(new long[]{0x0000000000000010L,0x0000003000000000L});
+    public static final BitSet FOLLOW_ruleTransitionTerminal_in_ruleCPBranchTransition13998 = new BitSet(new long[]{0x0000000000080000L});
+    public static final BitSet FOLLOW_19_in_ruleCPBranchTransition14010 = new BitSet(new long[]{0x0000000000000010L,0x0000003000000000L});
+    public static final BitSet FOLLOW_ruleTransitionTerminal_in_ruleCPBranchTransition14031 = new BitSet(new long[]{0x0000000400004000L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_ruleCPBranchTransition14052 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_14_in_ruleCPBranchTransition14065 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
+    public static final BitSet FOLLOW_98_in_ruleCPBranchTransition14077 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleCPBranchTransition14098 = new BitSet(new long[]{0x0000000000008000L,0x0000000040000000L});
+    public static final BitSet FOLLOW_94_in_ruleCPBranchTransition14111 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleCPBranchTransition14132 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_15_in_ruleCPBranchTransition14146 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRefinedTransition_in_entryRuleRefinedTransition14182 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleRefinedTransition14192 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_99_in_ruleRefinedTransition14229 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleFQN_in_ruleRefinedTransition14252 = new BitSet(new long[]{0x0000000400004000L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_ruleRefinedTransition14273 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_14_in_ruleRefinedTransition14286 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
+    public static final BitSet FOLLOW_94_in_ruleRefinedTransition14298 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleRefinedTransition14319 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_15_in_ruleRefinedTransition14331 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTransitionTerminal_in_entryRuleTransitionTerminal14367 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleTransitionTerminal14377 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleStateTerminal_in_ruleTransitionTerminal14424 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTrPointTerminal_in_ruleTransitionTerminal14451 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSubStateTrPointTerminal_in_ruleTransitionTerminal14478 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleChoicepointTerminal_in_ruleTransitionTerminal14505 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleStateTerminal_in_entryRuleStateTerminal14540 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleStateTerminal14550 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleStateTerminal14594 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTrPointTerminal_in_entryRuleTrPointTerminal14629 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleTrPointTerminal14639 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_100_in_ruleTrPointTerminal14676 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleTrPointTerminal14696 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSubStateTrPointTerminal_in_entryRuleSubStateTrPointTerminal14732 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleSubStateTrPointTerminal14742 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleSubStateTrPointTerminal14787 = new BitSet(new long[]{0x0000000001000000L});
+    public static final BitSet FOLLOW_24_in_ruleSubStateTrPointTerminal14799 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleSubStateTrPointTerminal14819 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleChoicepointTerminal_in_entryRuleChoicepointTerminal14855 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleChoicepointTerminal14865 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_101_in_ruleChoicepointTerminal14902 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleChoicepointTerminal14922 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleTrigger_in_entryRuleTrigger14958 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleTrigger14968 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_102_in_ruleTrigger15005 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleMessageFromIf_in_ruleTrigger15026 = new BitSet(new long[]{0x0000000000000000L,0x0000018200000000L});
+    public static final BitSet FOLLOW_103_in_ruleTrigger15039 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleMessageFromIf_in_ruleTrigger15060 = new BitSet(new long[]{0x0000000000000000L,0x0000018200000000L});
+    public static final BitSet FOLLOW_ruleGuard_in_ruleTrigger15083 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
+    public static final BitSet FOLLOW_104_in_ruleTrigger15096 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleMessageFromIf_in_entryRuleMessageFromIf15132 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleMessageFromIf15142 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleMessageFromIf15187 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_16_in_ruleMessageFromIf15199 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleMessageFromIf15219 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleGuard_in_entryRuleGuard15255 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleGuard15265 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_97_in_ruleGuard15302 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_ruleDetailCode_in_ruleGuard15323 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleProtocolSemantics_in_entryRuleProtocolSemantics15359 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleProtocolSemantics15369 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_105_in_ruleProtocolSemantics15415 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_14_in_ruleProtocolSemantics15427 = new BitSet(new long[]{0x0000000000008000L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_ruleSemanticsRule_in_ruleProtocolSemantics15448 = new BitSet(new long[]{0x0000000000008000L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_15_in_ruleProtocolSemantics15461 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSemanticsRule_in_entryRuleSemanticsRule15497 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleSemanticsRule15507 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleInSemanticsRule_in_ruleSemanticsRule15554 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleOutSemanticsRule_in_ruleSemanticsRule15581 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleInSemanticsRule_in_entryRuleInSemanticsRule15616 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleInSemanticsRule15626 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_106_in_ruleInSemanticsRule15663 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_16_in_ruleInSemanticsRule15675 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleInSemanticsRule15695 = new BitSet(new long[]{0x0000000000080002L});
+    public static final BitSet FOLLOW_19_in_ruleInSemanticsRule15708 = new BitSet(new long[]{0x0000000000100000L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_ruleSemanticsRule_in_ruleInSemanticsRule15730 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_20_in_ruleInSemanticsRule15749 = new BitSet(new long[]{0x0000000000000000L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_ruleSemanticsRule_in_ruleInSemanticsRule15770 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_ruleInSemanticsRule15783 = new BitSet(new long[]{0x0000000000000000L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_ruleSemanticsRule_in_ruleInSemanticsRule15804 = new BitSet(new long[]{0x0000000002200000L});
+    public static final BitSet FOLLOW_21_in_ruleInSemanticsRule15818 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleOutSemanticsRule_in_entryRuleOutSemanticsRule15858 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleOutSemanticsRule15868 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_107_in_ruleOutSemanticsRule15905 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_16_in_ruleOutSemanticsRule15917 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleOutSemanticsRule15937 = new BitSet(new long[]{0x0000000000080002L});
+    public static final BitSet FOLLOW_19_in_ruleOutSemanticsRule15950 = new BitSet(new long[]{0x0000000000100000L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_ruleSemanticsRule_in_ruleOutSemanticsRule15972 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_20_in_ruleOutSemanticsRule15991 = new BitSet(new long[]{0x0000000000000000L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_ruleSemanticsRule_in_ruleOutSemanticsRule16012 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_25_in_ruleOutSemanticsRule16025 = new BitSet(new long[]{0x0000000000000000L,0x00000C0000000000L});
+    public static final BitSet FOLLOW_ruleSemanticsRule_in_ruleOutSemanticsRule16046 = new BitSet(new long[]{0x0000000002200000L});
+    public static final BitSet FOLLOW_21_in_ruleOutSemanticsRule16060 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleAnnotation_in_entryRuleAnnotation16100 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleAnnotation16110 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_108_in_ruleAnnotation16147 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleFQN_in_ruleAnnotation16170 = new BitSet(new long[]{0x0000000000100002L});
+    public static final BitSet FOLLOW_20_in_ruleAnnotation16183 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleKeyValue_in_ruleAnnotation16204 = new BitSet(new long[]{0x0000000002200000L});
+    public static final BitSet FOLLOW_25_in_ruleAnnotation16217 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_ruleKeyValue_in_ruleAnnotation16238 = new BitSet(new long[]{0x0000000002200000L});
+    public static final BitSet FOLLOW_21_in_ruleAnnotation16252 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleKeyValue_in_entryRuleKeyValue16290 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleKeyValue16300 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleKeyValue16342 = new BitSet(new long[]{0x0000000004000000L});
+    public static final BitSet FOLLOW_26_in_ruleKeyValue16359 = new BitSet(new long[]{0x00000000000000E0L,0x03C0000000000100L});
+    public static final BitSet FOLLOW_ruleLiteral_in_ruleKeyValue16380 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleAnnotationType_in_entryRuleAnnotationType16416 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleAnnotationType16426 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_109_in_ruleAnnotationType16463 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleAnnotationType16480 = new BitSet(new long[]{0x0000000400004000L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_ruleAnnotationType16506 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_14_in_ruleAnnotationType16519 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
+    public static final BitSet FOLLOW_110_in_ruleAnnotationType16531 = new BitSet(new long[]{0x0000000004000000L});
+    public static final BitSet FOLLOW_26_in_ruleAnnotationType16543 = new BitSet(new long[]{0x0081040010004000L,0x0000000000008005L});
+    public static final BitSet FOLLOW_ruleAnnotationTargetType_in_ruleAnnotationType16565 = new BitSet(new long[]{0x0000000000008000L,0x0001800000000000L});
+    public static final BitSet FOLLOW_14_in_ruleAnnotationType16584 = new BitSet(new long[]{0x0081040010000000L,0x0000000000008005L});
+    public static final BitSet FOLLOW_ruleAnnotationTargetType_in_ruleAnnotationType16605 = new BitSet(new long[]{0x0000000002008000L});
+    public static final BitSet FOLLOW_25_in_ruleAnnotationType16618 = new BitSet(new long[]{0x0081040010000000L,0x0000000000008005L});
+    public static final BitSet FOLLOW_ruleAnnotationTargetType_in_ruleAnnotationType16639 = new BitSet(new long[]{0x0000000002008000L});
+    public static final BitSet FOLLOW_15_in_ruleAnnotationType16653 = new BitSet(new long[]{0x0000000000008000L,0x0001800000000000L});
+    public static final BitSet FOLLOW_ruleAnnotationAttribute_in_ruleAnnotationType16676 = new BitSet(new long[]{0x0000000000008000L,0x0001800000000000L});
+    public static final BitSet FOLLOW_15_in_ruleAnnotationType16689 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleAnnotationAttribute_in_entryRuleAnnotationAttribute16725 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleAnnotationAttribute16735 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSimpleAnnotationAttribute_in_ruleAnnotationAttribute16782 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleEnumAnnotationAttribute_in_ruleAnnotationAttribute16809 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSimpleAnnotationAttribute_in_entryRuleSimpleAnnotationAttribute16844 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleSimpleAnnotationAttribute16854 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_111_in_ruleSimpleAnnotationAttribute16898 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_112_in_ruleSimpleAnnotationAttribute16929 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_113_in_ruleSimpleAnnotationAttribute16942 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleSimpleAnnotationAttribute16959 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_16_in_ruleSimpleAnnotationAttribute16976 = new BitSet(new long[]{0x0000000000000000L,0x8000000000000000L,0x0000000000000007L});
+    public static final BitSet FOLLOW_ruleLiteralType_in_ruleSimpleAnnotationAttribute16997 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleEnumAnnotationAttribute_in_entryRuleEnumAnnotationAttribute17033 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleEnumAnnotationAttribute17043 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_111_in_ruleEnumAnnotationAttribute17087 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_112_in_ruleEnumAnnotationAttribute17118 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
+    public static final BitSet FOLLOW_113_in_ruleEnumAnnotationAttribute17131 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleEnumAnnotationAttribute17148 = new BitSet(new long[]{0x0000000000010000L});
+    public static final BitSet FOLLOW_16_in_ruleEnumAnnotationAttribute17165 = new BitSet(new long[]{0x0000000000004000L});
+    public static final BitSet FOLLOW_14_in_ruleEnumAnnotationAttribute17177 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_RULE_STRING_in_ruleEnumAnnotationAttribute17194 = new BitSet(new long[]{0x0000000002008000L});
+    public static final BitSet FOLLOW_25_in_ruleEnumAnnotationAttribute17212 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_RULE_STRING_in_ruleEnumAnnotationAttribute17229 = new BitSet(new long[]{0x0000000002008000L});
+    public static final BitSet FOLLOW_15_in_ruleEnumAnnotationAttribute17248 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleImport_in_entryRuleImport17284 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleImport17294 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_114_in_ruleImport17331 = new BitSet(new long[]{0x0000000000000010L,0x0010000000000000L});
+    public static final BitSet FOLLOW_ruleImportedFQN_in_ruleImport17354 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
+    public static final BitSet FOLLOW_115_in_ruleImport17366 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_116_in_ruleImport17385 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_RULE_STRING_in_ruleImport17403 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleImportedFQN_in_entryRuleImportedFQN17445 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleImportedFQN17456 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFQN_in_ruleImportedFQN17503 = new BitSet(new long[]{0x0000000000000002L,0x0020000000000000L});
+    public static final BitSet FOLLOW_117_in_ruleImportedFQN17522 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDocumentation_in_entryRuleDocumentation17564 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleDocumentation17574 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_34_in_ruleDocumentation17620 = new BitSet(new long[]{0x0000000800000020L});
+    public static final BitSet FOLLOW_RULE_STRING_in_ruleDocumentation17637 = new BitSet(new long[]{0x0000000800000020L});
+    public static final BitSet FOLLOW_35_in_ruleDocumentation17655 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleLiteral_in_entryRuleLiteral17695 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleLiteral17705 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleBooleanLiteral_in_ruleLiteral17752 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleNumberLiteral_in_ruleLiteral17779 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleStringLiteral_in_ruleLiteral17806 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleBooleanLiteral_in_entryRuleBooleanLiteral17841 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleBooleanLiteral17851 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_118_in_ruleBooleanLiteral17898 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_119_in_ruleBooleanLiteral17922 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleNumberLiteral_in_entryRuleNumberLiteral17972 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleNumberLiteral17982 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleIntLiteral_in_ruleNumberLiteral18029 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRealLiteral_in_ruleNumberLiteral18056 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleRealLiteral_in_entryRuleRealLiteral18091 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleRealLiteral18101 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleReal_in_ruleRealLiteral18156 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleIntLiteral_in_entryRuleIntLiteral18192 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleIntLiteral18202 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleInteger_in_ruleIntLiteral18257 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleStringLiteral_in_entryRuleStringLiteral18293 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleStringLiteral18303 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_STRING_in_ruleStringLiteral18354 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleInteger_in_entryRuleInteger18396 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleInteger18407 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSignedInteger_in_ruleInteger18454 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleHexadecimal_in_ruleInteger18487 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleSignedInteger_in_entryRuleSignedInteger18539 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleSignedInteger18550 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_120_in_ruleSignedInteger18593 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_121_in_ruleSignedInteger18612 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_INT_in_ruleSignedInteger18629 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleHexadecimal_in_entryRuleHexadecimal18685 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleHexadecimal18696 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_HEX_in_ruleHexadecimal18739 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleReal_in_entryRuleReal18788 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleReal18799 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDecimal_in_ruleReal18846 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDotDecimal_in_ruleReal18879 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDecimalDot_in_ruleReal18912 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDecimalExp_in_ruleReal18945 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDecimal_in_entryRuleDecimal18997 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleDecimal19008 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_120_in_ruleDecimal19051 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_121_in_ruleDecimal19070 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_INT_in_ruleDecimal19087 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_72_in_ruleDecimal19105 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_INT_in_ruleDecimal19120 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDotDecimal_in_entryRuleDotDecimal19176 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleDotDecimal19187 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_120_in_ruleDotDecimal19230 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_121_in_ruleDotDecimal19249 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_72_in_ruleDotDecimal19264 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_INT_in_ruleDotDecimal19279 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDecimalDot_in_entryRuleDecimalDot19335 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleDecimalDot19346 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_120_in_ruleDecimalDot19389 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_121_in_ruleDecimalDot19408 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_INT_in_ruleDecimalDot19425 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_72_in_ruleDecimalDot19443 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleDecimalExp_in_entryRuleDecimalExp19494 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleDecimalExp19505 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_120_in_ruleDecimalExp19548 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_121_in_ruleDecimalExp19567 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_INT_in_ruleDecimalExp19584 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_72_in_ruleDecimalExp19602 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_RULE_INT_in_ruleDecimalExp19617 = new BitSet(new long[]{0x0000000000000100L});
+    public static final BitSet FOLLOW_RULE_EXP_in_ruleDecimalExp19637 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_ruleFQN_in_entryRuleFQN19687 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_EOF_in_entryRuleFQN19698 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleFQN19738 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
+    public static final BitSet FOLLOW_72_in_ruleFQN19757 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_RULE_ID_in_ruleFQN19772 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
+    public static final BitSet FOLLOW_122_in_ruleCommunicationType19833 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_123_in_ruleCommunicationType19850 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_124_in_ruleCommunicationType19867 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_125_in_ruleReferenceType19912 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_111_in_ruleReferenceType19929 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_122_in_ruleComponentCommunicationType19976 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_123_in_ruleComponentCommunicationType19993 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_126_in_ruleComponentCommunicationType20010 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_124_in_ruleComponentCommunicationType20027 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_127_in_ruleLiteralType20072 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_128_in_ruleLiteralType20089 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_129_in_ruleLiteralType20106 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_130_in_ruleLiteralType20123 = new BitSet(new long[]{0x0000000000000002L});
 
 }
diff --git a/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/serializer/RoomSemanticSequencer.java b/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/serializer/RoomSemanticSequencer.java
index 481c56f..fc35b75 100644
--- a/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/serializer/RoomSemanticSequencer.java
+++ b/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/serializer/RoomSemanticSequencer.java
@@ -713,7 +713,7 @@
 	
 	/**
 	 * Constraint:
-	 *     (name=ID size=INT? type=RefableType defaultValueLiteral=STRING? docu=Documentation?)
+	 *     (name=ID size=INT? type=RefableType? defaultValueLiteral=STRING? docu=Documentation?)
 	 */
 	protected void sequence_Attribute(EObject context, Attribute semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
diff --git a/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/services/RoomGrammarAccess.java b/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/services/RoomGrammarAccess.java
index 82e21cf..4f58f04 100644
--- a/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/services/RoomGrammarAccess.java
+++ b/plugins/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/services/RoomGrammarAccess.java
@@ -70,84 +70,82 @@
 		//name=FQN
 		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
 
-		//FQN
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.1/@terminal'
 		public RuleCall getNameFQNParserRuleCall_1_0() { return cNameFQNParserRuleCall_1_0; }
 
-		//docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.2'
 		public Assignment getDocuAssignment_2() { return cDocuAssignment_2; }
 
-		//Documentation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.2/@terminal'
 		public RuleCall getDocuDocumentationParserRuleCall_2_0() { return cDocuDocumentationParserRuleCall_2_0; }
 
-		//"{"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.3'
 		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
 
-		//imports+=Import*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.4'
 		public Assignment getImportsAssignment_4() { return cImportsAssignment_4; }
 
-		//Import
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.4/@terminal'
 		public RuleCall getImportsImportParserRuleCall_4_0() { return cImportsImportParserRuleCall_4_0; }
 
-		//(primitiveTypes+=PrimitiveType | enumerationTypes+=EnumerationType | externalTypes+=ExternalType |
-		//dataClasses+=DataClass | protocolClasses+=GeneralProtocolClass | actorClasses+=ActorClass |
-		//subSystemClasses+=SubSystemClass | systems+=LogicalSystem | annotationTypes+=AnnotationType)*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.5'
 		public Alternatives getAlternatives_5() { return cAlternatives_5; }
 
-		//primitiveTypes+=PrimitiveType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.5/@elements.0'
 		public Assignment getPrimitiveTypesAssignment_5_0() { return cPrimitiveTypesAssignment_5_0; }
 
-		//PrimitiveType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.5/@elements.0/@terminal'
 		public RuleCall getPrimitiveTypesPrimitiveTypeParserRuleCall_5_0_0() { return cPrimitiveTypesPrimitiveTypeParserRuleCall_5_0_0; }
 
-		//enumerationTypes+=EnumerationType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.5/@elements.1'
 		public Assignment getEnumerationTypesAssignment_5_1() { return cEnumerationTypesAssignment_5_1; }
 
-		//EnumerationType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.5/@elements.1/@terminal'
 		public RuleCall getEnumerationTypesEnumerationTypeParserRuleCall_5_1_0() { return cEnumerationTypesEnumerationTypeParserRuleCall_5_1_0; }
 
-		//externalTypes+=ExternalType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.5/@elements.2'
 		public Assignment getExternalTypesAssignment_5_2() { return cExternalTypesAssignment_5_2; }
 
-		//ExternalType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.5/@elements.2/@terminal'
 		public RuleCall getExternalTypesExternalTypeParserRuleCall_5_2_0() { return cExternalTypesExternalTypeParserRuleCall_5_2_0; }
 
-		//dataClasses+=DataClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.5/@elements.3'
 		public Assignment getDataClassesAssignment_5_3() { return cDataClassesAssignment_5_3; }
 
-		//DataClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.5/@elements.3/@terminal'
 		public RuleCall getDataClassesDataClassParserRuleCall_5_3_0() { return cDataClassesDataClassParserRuleCall_5_3_0; }
 
-		//protocolClasses+=GeneralProtocolClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.5/@elements.4'
 		public Assignment getProtocolClassesAssignment_5_4() { return cProtocolClassesAssignment_5_4; }
 
-		//GeneralProtocolClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.5/@elements.4/@terminal'
 		public RuleCall getProtocolClassesGeneralProtocolClassParserRuleCall_5_4_0() { return cProtocolClassesGeneralProtocolClassParserRuleCall_5_4_0; }
 
-		//actorClasses+=ActorClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.5/@elements.5'
 		public Assignment getActorClassesAssignment_5_5() { return cActorClassesAssignment_5_5; }
 
-		//ActorClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.5/@elements.5/@terminal'
 		public RuleCall getActorClassesActorClassParserRuleCall_5_5_0() { return cActorClassesActorClassParserRuleCall_5_5_0; }
 
-		//subSystemClasses+=SubSystemClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.5/@elements.6'
 		public Assignment getSubSystemClassesAssignment_5_6() { return cSubSystemClassesAssignment_5_6; }
 
-		//SubSystemClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.5/@elements.6/@terminal'
 		public RuleCall getSubSystemClassesSubSystemClassParserRuleCall_5_6_0() { return cSubSystemClassesSubSystemClassParserRuleCall_5_6_0; }
 
-		//systems+=LogicalSystem
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.5/@elements.7'
 		public Assignment getSystemsAssignment_5_7() { return cSystemsAssignment_5_7; }
 
-		//LogicalSystem
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.5/@elements.7/@terminal'
 		public RuleCall getSystemsLogicalSystemParserRuleCall_5_7_0() { return cSystemsLogicalSystemParserRuleCall_5_7_0; }
 
-		//annotationTypes+=AnnotationType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.5/@elements.8'
 		public Assignment getAnnotationTypesAssignment_5_8() { return cAnnotationTypesAssignment_5_8; }
 
-		//AnnotationType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.5/@elements.8/@terminal'
 		public RuleCall getAnnotationTypesAnnotationTypeParserRuleCall_5_8_0() { return cAnnotationTypesAnnotationTypeParserRuleCall_5_8_0; }
 
-		//"}"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.0/@alternatives/@elements.6'
 		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
 	}
 
@@ -158,20 +156,19 @@
 		private final RuleCall cGeneralProtocolClassParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
 		private final RuleCall cStructureClassParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
 		
-		//RoomClass:
-		//	DataType | GeneralProtocolClass | StructureClass;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/RoomClass'
 		public ParserRule getRule() { return rule; }
 
-		//DataType | GeneralProtocolClass | StructureClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.1/@alternatives'
 		public Alternatives getAlternatives() { return cAlternatives; }
 
-		//DataType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.1/@alternatives/@elements.0'
 		public RuleCall getDataTypeParserRuleCall_0() { return cDataTypeParserRuleCall_0; }
 
-		//GeneralProtocolClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.1/@alternatives/@elements.1'
 		public RuleCall getGeneralProtocolClassParserRuleCall_1() { return cGeneralProtocolClassParserRuleCall_1; }
 
-		//StructureClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.1/@alternatives/@elements.2'
 		public RuleCall getStructureClassParserRuleCall_2() { return cStructureClassParserRuleCall_2; }
 	}
 
@@ -181,17 +178,16 @@
 		private final RuleCall cActorContainerClassParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
 		private final RuleCall cLogicalSystemParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
 		
-		//StructureClass:
-		//	ActorContainerClass | LogicalSystem;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/StructureClass'
 		public ParserRule getRule() { return rule; }
 
-		//ActorContainerClass | LogicalSystem
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.2/@alternatives'
 		public Alternatives getAlternatives() { return cAlternatives; }
 
-		//ActorContainerClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.2/@alternatives/@elements.0'
 		public RuleCall getActorContainerClassParserRuleCall_0() { return cActorContainerClassParserRuleCall_0; }
 
-		//LogicalSystem
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.2/@alternatives/@elements.1'
 		public RuleCall getLogicalSystemParserRuleCall_1() { return cLogicalSystemParserRuleCall_1; }
 	}
 
@@ -201,17 +197,16 @@
 		private final RuleCall cActorClassParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
 		private final RuleCall cSubSystemClassParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
 		
-		//ActorContainerClass:
-		//	ActorClass | SubSystemClass;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ActorContainerClass'
 		public ParserRule getRule() { return rule; }
 
-		//ActorClass | SubSystemClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.3/@alternatives'
 		public Alternatives getAlternatives() { return cAlternatives; }
 
-		//ActorClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.3/@alternatives/@elements.0'
 		public RuleCall getActorClassParserRuleCall_0() { return cActorClassParserRuleCall_0; }
 
-		//SubSystemClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.3/@alternatives/@elements.1'
 		public RuleCall getSubSystemClassParserRuleCall_1() { return cSubSystemClassParserRuleCall_1; }
 	}
 
@@ -224,28 +219,25 @@
 		private final Assignment cRefTypeAssignment_2 = (Assignment)cGroup.eContents().get(2);
 		private final RuleCall cRefTypeRefableTypeParserRuleCall_2_0 = (RuleCall)cRefTypeAssignment_2.eContents().get(0);
 		
-		//// **************************************************************
-		//// data class
-		//VarDecl:
-		//	name=ID ":" refType=RefableType;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/VarDecl'
 		public ParserRule getRule() { return rule; }
 
-		//name=ID ":" refType=RefableType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.4/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//name=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.4/@alternatives/@elements.0'
 		public Assignment getNameAssignment_0() { return cNameAssignment_0; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.4/@alternatives/@elements.0/@terminal'
 		public RuleCall getNameIDTerminalRuleCall_0_0() { return cNameIDTerminalRuleCall_0_0; }
 
-		//":"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.4/@alternatives/@elements.1'
 		public Keyword getColonKeyword_1() { return cColonKeyword_1; }
 
-		//refType=RefableType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.4/@alternatives/@elements.2'
 		public Assignment getRefTypeAssignment_2() { return cRefTypeAssignment_2; }
 
-		//RefableType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.4/@alternatives/@elements.2/@terminal'
 		public RuleCall getRefTypeRefableTypeParserRuleCall_2_0() { return cRefTypeRefableTypeParserRuleCall_2_0; }
 	}
 
@@ -258,26 +250,25 @@
 		private final Assignment cRefAssignment_1 = (Assignment)cGroup.eContents().get(1);
 		private final Keyword cRefRefKeyword_1_0 = (Keyword)cRefAssignment_1.eContents().get(0);
 		
-		//RefableType:
-		//	type=[DataType|FQN] ref?="ref"?;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/RefableType'
 		public ParserRule getRule() { return rule; }
 
-		//type=[DataType|FQN] ref?="ref"?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.5/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//type=[DataType|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.5/@alternatives/@elements.0'
 		public Assignment getTypeAssignment_0() { return cTypeAssignment_0; }
 
-		//[DataType|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.5/@alternatives/@elements.0/@terminal'
 		public CrossReference getTypeDataTypeCrossReference_0_0() { return cTypeDataTypeCrossReference_0_0; }
 
-		//FQN
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.5/@alternatives/@elements.0/@terminal/@terminal'
 		public RuleCall getTypeDataTypeFQNParserRuleCall_0_0_1() { return cTypeDataTypeFQNParserRuleCall_0_0_1; }
 
-		//ref?="ref"?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.5/@alternatives/@elements.1'
 		public Assignment getRefAssignment_1() { return cRefAssignment_1; }
 
-		//"ref"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.5/@alternatives/@elements.1/@terminal'
 		public Keyword getRefRefKeyword_1_0() { return cRefRefKeyword_1_0; }
 	}
 
@@ -288,20 +279,19 @@
 		private final RuleCall cEnumerationTypeParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
 		private final RuleCall cComplexTypeParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
 		
-		//DataType:
-		//	PrimitiveType | EnumerationType | ComplexType;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/DataType'
 		public ParserRule getRule() { return rule; }
 
-		//PrimitiveType | EnumerationType | ComplexType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.6/@alternatives'
 		public Alternatives getAlternatives() { return cAlternatives; }
 
-		//PrimitiveType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.6/@alternatives/@elements.0'
 		public RuleCall getPrimitiveTypeParserRuleCall_0() { return cPrimitiveTypeParserRuleCall_0; }
 
-		//EnumerationType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.6/@alternatives/@elements.1'
 		public RuleCall getEnumerationTypeParserRuleCall_1() { return cEnumerationTypeParserRuleCall_1; }
 
-		//ComplexType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.6/@alternatives/@elements.2'
 		public RuleCall getComplexTypeParserRuleCall_2() { return cComplexTypeParserRuleCall_2; }
 	}
 
@@ -311,17 +301,16 @@
 		private final RuleCall cDataClassParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
 		private final RuleCall cExternalTypeParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
 		
-		//ComplexType:
-		//	DataClass | ExternalType;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ComplexType'
 		public ParserRule getRule() { return rule; }
 
-		//DataClass | ExternalType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.7/@alternatives'
 		public Alternatives getAlternatives() { return cAlternatives; }
 
-		//DataClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.7/@alternatives/@elements.0'
 		public RuleCall getDataClassParserRuleCall_0() { return cDataClassParserRuleCall_0; }
 
-		//ExternalType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.7/@alternatives/@elements.1'
 		public RuleCall getExternalTypeParserRuleCall_1() { return cExternalTypeParserRuleCall_1; }
 	}
 
@@ -348,70 +337,67 @@
 		private final Assignment cDocuAssignment_9 = (Assignment)cGroup.eContents().get(9);
 		private final RuleCall cDocuDocumentationParserRuleCall_9_0 = (RuleCall)cDocuAssignment_9.eContents().get(0);
 		
-		//PrimitiveType:
-		//	"PrimitiveType" name=ID ":" type=LiteralType "->" targetName=STRING ("(" castName=FQN ")")? "default"
-		//	defaultValueLiteral=STRING docu=Documentation?;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/PrimitiveType'
 		public ParserRule getRule() { return rule; }
 
-		//"PrimitiveType" name=ID ":" type=LiteralType "->" targetName=STRING ("(" castName=FQN ")")? "default"
-		//defaultValueLiteral=STRING docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.8/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//"PrimitiveType"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.8/@alternatives/@elements.0'
 		public Keyword getPrimitiveTypeKeyword_0() { return cPrimitiveTypeKeyword_0; }
 
-		//name=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.8/@alternatives/@elements.1'
 		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.8/@alternatives/@elements.1/@terminal'
 		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
 
-		//":"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.8/@alternatives/@elements.2'
 		public Keyword getColonKeyword_2() { return cColonKeyword_2; }
 
-		//type=LiteralType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.8/@alternatives/@elements.3'
 		public Assignment getTypeAssignment_3() { return cTypeAssignment_3; }
 
-		//LiteralType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.8/@alternatives/@elements.3/@terminal'
 		public RuleCall getTypeLiteralTypeEnumRuleCall_3_0() { return cTypeLiteralTypeEnumRuleCall_3_0; }
 
-		//"->"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.8/@alternatives/@elements.4'
 		public Keyword getHyphenMinusGreaterThanSignKeyword_4() { return cHyphenMinusGreaterThanSignKeyword_4; }
 
-		//targetName=STRING
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.8/@alternatives/@elements.5'
 		public Assignment getTargetNameAssignment_5() { return cTargetNameAssignment_5; }
 
-		//STRING
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.8/@alternatives/@elements.5/@terminal'
 		public RuleCall getTargetNameSTRINGTerminalRuleCall_5_0() { return cTargetNameSTRINGTerminalRuleCall_5_0; }
 
-		//("(" castName=FQN ")")?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.8/@alternatives/@elements.6'
 		public Group getGroup_6() { return cGroup_6; }
 
-		//"("
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.8/@alternatives/@elements.6/@elements.0'
 		public Keyword getLeftParenthesisKeyword_6_0() { return cLeftParenthesisKeyword_6_0; }
 
-		//castName=FQN
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.8/@alternatives/@elements.6/@elements.1'
 		public Assignment getCastNameAssignment_6_1() { return cCastNameAssignment_6_1; }
 
-		//FQN
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.8/@alternatives/@elements.6/@elements.1/@terminal'
 		public RuleCall getCastNameFQNParserRuleCall_6_1_0() { return cCastNameFQNParserRuleCall_6_1_0; }
 
-		//")"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.8/@alternatives/@elements.6/@elements.2'
 		public Keyword getRightParenthesisKeyword_6_2() { return cRightParenthesisKeyword_6_2; }
 
-		//"default"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.8/@alternatives/@elements.7'
 		public Keyword getDefaultKeyword_7() { return cDefaultKeyword_7; }
 
-		//defaultValueLiteral=STRING
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.8/@alternatives/@elements.8'
 		public Assignment getDefaultValueLiteralAssignment_8() { return cDefaultValueLiteralAssignment_8; }
 
-		//STRING
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.8/@alternatives/@elements.8/@terminal'
 		public RuleCall getDefaultValueLiteralSTRINGTerminalRuleCall_8_0() { return cDefaultValueLiteralSTRINGTerminalRuleCall_8_0; }
 
-		//docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.8/@alternatives/@elements.9'
 		public Assignment getDocuAssignment_9() { return cDocuAssignment_9; }
 
-		//Documentation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.8/@alternatives/@elements.9/@terminal'
 		public RuleCall getDocuDocumentationParserRuleCall_9_0() { return cDocuDocumentationParserRuleCall_9_0; }
 	}
 
@@ -438,70 +424,67 @@
 		private final RuleCall cLiteralsEnumLiteralParserRuleCall_5_1_1_0 = (RuleCall)cLiteralsAssignment_5_1_1.eContents().get(0);
 		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
 		
-		//EnumerationType:
-		//	"Enumeration" name=ID docu=Documentation? ("of" primitiveType=[PrimitiveType|FQN])? "{" (literals+=EnumLiteral (","
-		//	literals+=EnumLiteral)*)? "}";
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/EnumerationType'
 		public ParserRule getRule() { return rule; }
 
-		//"Enumeration" name=ID docu=Documentation? ("of" primitiveType=[PrimitiveType|FQN])? "{" (literals+=EnumLiteral (","
-		//literals+=EnumLiteral)*)? "}"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.9/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//"Enumeration"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.9/@alternatives/@elements.0'
 		public Keyword getEnumerationKeyword_0() { return cEnumerationKeyword_0; }
 
-		//name=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.9/@alternatives/@elements.1'
 		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.9/@alternatives/@elements.1/@terminal'
 		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
 
-		//docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.9/@alternatives/@elements.2'
 		public Assignment getDocuAssignment_2() { return cDocuAssignment_2; }
 
-		//Documentation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.9/@alternatives/@elements.2/@terminal'
 		public RuleCall getDocuDocumentationParserRuleCall_2_0() { return cDocuDocumentationParserRuleCall_2_0; }
 
-		//("of" primitiveType=[PrimitiveType|FQN])?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.9/@alternatives/@elements.3'
 		public Group getGroup_3() { return cGroup_3; }
 
-		//"of"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.9/@alternatives/@elements.3/@elements.0'
 		public Keyword getOfKeyword_3_0() { return cOfKeyword_3_0; }
 
-		//primitiveType=[PrimitiveType|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.9/@alternatives/@elements.3/@elements.1'
 		public Assignment getPrimitiveTypeAssignment_3_1() { return cPrimitiveTypeAssignment_3_1; }
 
-		//[PrimitiveType|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.9/@alternatives/@elements.3/@elements.1/@terminal'
 		public CrossReference getPrimitiveTypePrimitiveTypeCrossReference_3_1_0() { return cPrimitiveTypePrimitiveTypeCrossReference_3_1_0; }
 
-		//FQN
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.9/@alternatives/@elements.3/@elements.1/@terminal/@terminal'
 		public RuleCall getPrimitiveTypePrimitiveTypeFQNParserRuleCall_3_1_0_1() { return cPrimitiveTypePrimitiveTypeFQNParserRuleCall_3_1_0_1; }
 
-		//"{"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.9/@alternatives/@elements.4'
 		public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; }
 
-		//(literals+=EnumLiteral ("," literals+=EnumLiteral)*)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.9/@alternatives/@elements.5'
 		public Group getGroup_5() { return cGroup_5; }
 
-		//literals+=EnumLiteral
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.9/@alternatives/@elements.5/@elements.0'
 		public Assignment getLiteralsAssignment_5_0() { return cLiteralsAssignment_5_0; }
 
-		//EnumLiteral
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.9/@alternatives/@elements.5/@elements.0/@terminal'
 		public RuleCall getLiteralsEnumLiteralParserRuleCall_5_0_0() { return cLiteralsEnumLiteralParserRuleCall_5_0_0; }
 
-		//("," literals+=EnumLiteral)*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.9/@alternatives/@elements.5/@elements.1'
 		public Group getGroup_5_1() { return cGroup_5_1; }
 
-		//","
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.9/@alternatives/@elements.5/@elements.1/@elements.0'
 		public Keyword getCommaKeyword_5_1_0() { return cCommaKeyword_5_1_0; }
 
-		//literals+=EnumLiteral
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.9/@alternatives/@elements.5/@elements.1/@elements.1'
 		public Assignment getLiteralsAssignment_5_1_1() { return cLiteralsAssignment_5_1_1; }
 
-		//EnumLiteral
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.9/@alternatives/@elements.5/@elements.1/@elements.1/@terminal'
 		public RuleCall getLiteralsEnumLiteralParserRuleCall_5_1_1_0() { return cLiteralsEnumLiteralParserRuleCall_5_1_1_0; }
 
-		//"}"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.9/@alternatives/@elements.6'
 		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
 	}
 
@@ -515,29 +498,28 @@
 		private final Assignment cLiteralAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
 		private final RuleCall cLiteralIntLiteralParserRuleCall_1_1_0 = (RuleCall)cLiteralAssignment_1_1.eContents().get(0);
 		
-		//EnumLiteral:
-		//	name=ID ("=" literal=IntLiteral)?;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/EnumLiteral'
 		public ParserRule getRule() { return rule; }
 
-		//name=ID ("=" literal=IntLiteral)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.10/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//name=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.10/@alternatives/@elements.0'
 		public Assignment getNameAssignment_0() { return cNameAssignment_0; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.10/@alternatives/@elements.0/@terminal'
 		public RuleCall getNameIDTerminalRuleCall_0_0() { return cNameIDTerminalRuleCall_0_0; }
 
-		//("=" literal=IntLiteral)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.10/@alternatives/@elements.1'
 		public Group getGroup_1() { return cGroup_1; }
 
-		//"="
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.10/@alternatives/@elements.1/@elements.0'
 		public Keyword getEqualsSignKeyword_1_0() { return cEqualsSignKeyword_1_0; }
 
-		//literal=IntLiteral
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.10/@alternatives/@elements.1/@elements.1'
 		public Assignment getLiteralAssignment_1_1() { return cLiteralAssignment_1_1; }
 
-		//IntLiteral
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.10/@alternatives/@elements.1/@elements.1/@terminal'
 		public RuleCall getLiteralIntLiteralParserRuleCall_1_1_0() { return cLiteralIntLiteralParserRuleCall_1_1_0; }
 	}
 
@@ -557,47 +539,46 @@
 		private final Assignment cDocuAssignment_5 = (Assignment)cGroup.eContents().get(5);
 		private final RuleCall cDocuDocumentationParserRuleCall_5_0 = (RuleCall)cDocuAssignment_5.eContents().get(0);
 		
-		//ExternalType:
-		//	"ExternalType" name=ID "->" targetName=STRING ("default" defaultValueLiteral=STRING)? docu=Documentation?;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ExternalType'
 		public ParserRule getRule() { return rule; }
 
-		//"ExternalType" name=ID "->" targetName=STRING ("default" defaultValueLiteral=STRING)? docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.11/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//"ExternalType"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.11/@alternatives/@elements.0'
 		public Keyword getExternalTypeKeyword_0() { return cExternalTypeKeyword_0; }
 
-		//name=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.11/@alternatives/@elements.1'
 		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.11/@alternatives/@elements.1/@terminal'
 		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
 
-		//"->"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.11/@alternatives/@elements.2'
 		public Keyword getHyphenMinusGreaterThanSignKeyword_2() { return cHyphenMinusGreaterThanSignKeyword_2; }
 
-		//targetName=STRING
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.11/@alternatives/@elements.3'
 		public Assignment getTargetNameAssignment_3() { return cTargetNameAssignment_3; }
 
-		//STRING
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.11/@alternatives/@elements.3/@terminal'
 		public RuleCall getTargetNameSTRINGTerminalRuleCall_3_0() { return cTargetNameSTRINGTerminalRuleCall_3_0; }
 
-		//("default" defaultValueLiteral=STRING)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.11/@alternatives/@elements.4'
 		public Group getGroup_4() { return cGroup_4; }
 
-		//"default"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.11/@alternatives/@elements.4/@elements.0'
 		public Keyword getDefaultKeyword_4_0() { return cDefaultKeyword_4_0; }
 
-		//defaultValueLiteral=STRING
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.11/@alternatives/@elements.4/@elements.1'
 		public Assignment getDefaultValueLiteralAssignment_4_1() { return cDefaultValueLiteralAssignment_4_1; }
 
-		//STRING
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.11/@alternatives/@elements.4/@elements.1/@terminal'
 		public RuleCall getDefaultValueLiteralSTRINGTerminalRuleCall_4_1_0() { return cDefaultValueLiteralSTRINGTerminalRuleCall_4_1_0; }
 
-		//docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.11/@alternatives/@elements.5'
 		public Assignment getDocuAssignment_5() { return cDocuAssignment_5; }
 
-		//Documentation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.11/@alternatives/@elements.5/@terminal'
 		public RuleCall getDocuDocumentationParserRuleCall_5_0() { return cDocuDocumentationParserRuleCall_5_0; }
 	}
 
@@ -638,115 +619,109 @@
 		private final RuleCall cAttributesAttributeParserRuleCall_9_2_0 = (RuleCall)cAttributesAssignment_9_2.eContents().get(0);
 		private final Keyword cRightCurlyBracketKeyword_10 = (Keyword)cGroup.eContents().get(10);
 		
-		//// TODOHRR: define detail level language?
-		//DataClass:
-		//	"DataClass" name=ID docu=Documentation? ("extends" base=[DataClass|FQN])? "{" annotations+=Annotation* ("usercode1"
-		//	userCode1=DetailCode)? ("usercode2" userCode2=DetailCode)? ("usercode3" userCode3=DetailCode)?
-		//	(operations+=StandardOperation | structors+=ClassStructor | attributes+=Attribute)* "}";
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/DataClass'
 		public ParserRule getRule() { return rule; }
 
-		//"DataClass" name=ID docu=Documentation? ("extends" base=[DataClass|FQN])? "{" annotations+=Annotation* ("usercode1"
-		//userCode1=DetailCode)? ("usercode2" userCode2=DetailCode)? ("usercode3" userCode3=DetailCode)?
-		//(operations+=StandardOperation | structors+=ClassStructor | attributes+=Attribute)* "}"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//"DataClass"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.0'
 		public Keyword getDataClassKeyword_0() { return cDataClassKeyword_0; }
 
-		//name=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.1'
 		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.1/@terminal'
 		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
 
-		//docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.2'
 		public Assignment getDocuAssignment_2() { return cDocuAssignment_2; }
 
-		//Documentation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.2/@terminal'
 		public RuleCall getDocuDocumentationParserRuleCall_2_0() { return cDocuDocumentationParserRuleCall_2_0; }
 
-		//("extends" base=[DataClass|FQN])?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.3'
 		public Group getGroup_3() { return cGroup_3; }
 
-		//"extends"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.3/@elements.0'
 		public Keyword getExtendsKeyword_3_0() { return cExtendsKeyword_3_0; }
 
-		//base=[DataClass|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.3/@elements.1'
 		public Assignment getBaseAssignment_3_1() { return cBaseAssignment_3_1; }
 
-		//[DataClass|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.3/@elements.1/@terminal'
 		public CrossReference getBaseDataClassCrossReference_3_1_0() { return cBaseDataClassCrossReference_3_1_0; }
 
-		//FQN
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.3/@elements.1/@terminal/@terminal'
 		public RuleCall getBaseDataClassFQNParserRuleCall_3_1_0_1() { return cBaseDataClassFQNParserRuleCall_3_1_0_1; }
 
-		//"{"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.4'
 		public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; }
 
-		//annotations+=Annotation*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.5'
 		public Assignment getAnnotationsAssignment_5() { return cAnnotationsAssignment_5; }
 
-		//Annotation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.5/@terminal'
 		public RuleCall getAnnotationsAnnotationParserRuleCall_5_0() { return cAnnotationsAnnotationParserRuleCall_5_0; }
 
-		//("usercode1" userCode1=DetailCode)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.6'
 		public Group getGroup_6() { return cGroup_6; }
 
-		//"usercode1"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.6/@elements.0'
 		public Keyword getUsercode1Keyword_6_0() { return cUsercode1Keyword_6_0; }
 
-		//userCode1=DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.6/@elements.1'
 		public Assignment getUserCode1Assignment_6_1() { return cUserCode1Assignment_6_1; }
 
-		//DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.6/@elements.1/@terminal'
 		public RuleCall getUserCode1DetailCodeParserRuleCall_6_1_0() { return cUserCode1DetailCodeParserRuleCall_6_1_0; }
 
-		//("usercode2" userCode2=DetailCode)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.7'
 		public Group getGroup_7() { return cGroup_7; }
 
-		//"usercode2"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.7/@elements.0'
 		public Keyword getUsercode2Keyword_7_0() { return cUsercode2Keyword_7_0; }
 
-		//userCode2=DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.7/@elements.1'
 		public Assignment getUserCode2Assignment_7_1() { return cUserCode2Assignment_7_1; }
 
-		//DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.7/@elements.1/@terminal'
 		public RuleCall getUserCode2DetailCodeParserRuleCall_7_1_0() { return cUserCode2DetailCodeParserRuleCall_7_1_0; }
 
-		//("usercode3" userCode3=DetailCode)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.8'
 		public Group getGroup_8() { return cGroup_8; }
 
-		//"usercode3"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.8/@elements.0'
 		public Keyword getUsercode3Keyword_8_0() { return cUsercode3Keyword_8_0; }
 
-		//userCode3=DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.8/@elements.1'
 		public Assignment getUserCode3Assignment_8_1() { return cUserCode3Assignment_8_1; }
 
-		//DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.8/@elements.1/@terminal'
 		public RuleCall getUserCode3DetailCodeParserRuleCall_8_1_0() { return cUserCode3DetailCodeParserRuleCall_8_1_0; }
 
-		//(operations+=StandardOperation | structors+=ClassStructor | attributes+=Attribute)*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.9'
 		public Alternatives getAlternatives_9() { return cAlternatives_9; }
 
-		//operations+=StandardOperation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.9/@elements.0'
 		public Assignment getOperationsAssignment_9_0() { return cOperationsAssignment_9_0; }
 
-		//StandardOperation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.9/@elements.0/@terminal'
 		public RuleCall getOperationsStandardOperationParserRuleCall_9_0_0() { return cOperationsStandardOperationParserRuleCall_9_0_0; }
 
-		//structors+=ClassStructor
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.9/@elements.1'
 		public Assignment getStructorsAssignment_9_1() { return cStructorsAssignment_9_1; }
 
-		//ClassStructor
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.9/@elements.1/@terminal'
 		public RuleCall getStructorsClassStructorParserRuleCall_9_1_0() { return cStructorsClassStructorParserRuleCall_9_1_0; }
 
-		//attributes+=Attribute
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.9/@elements.2'
 		public Assignment getAttributesAssignment_9_2() { return cAttributesAssignment_9_2; }
 
-		//Attribute
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.9/@elements.2/@terminal'
 		public RuleCall getAttributesAttributeParserRuleCall_9_2_0() { return cAttributesAttributeParserRuleCall_9_2_0; }
 
-		//"}"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.12/@alternatives/@elements.10'
 		public Keyword getRightCurlyBracketKeyword_10() { return cRightCurlyBracketKeyword_10; }
 	}
 
@@ -771,62 +746,61 @@
 		private final Assignment cDocuAssignment_6 = (Assignment)cGroup.eContents().get(6);
 		private final RuleCall cDocuDocumentationParserRuleCall_6_0 = (RuleCall)cDocuAssignment_6.eContents().get(0);
 		
-		//Attribute:
-		//	"Attribute" name=ID ("[" size=INT "]")? ":" type=RefableType ("=" defaultValueLiteral=STRING)? docu=Documentation?;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/Attribute'
 		public ParserRule getRule() { return rule; }
 
-		//"Attribute" name=ID ("[" size=INT "]")? ":" type=RefableType ("=" defaultValueLiteral=STRING)? docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.13/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//"Attribute"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.13/@alternatives/@elements.0'
 		public Keyword getAttributeKeyword_0() { return cAttributeKeyword_0; }
 
-		//name=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.13/@alternatives/@elements.1'
 		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.13/@alternatives/@elements.1/@terminal'
 		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
 
-		//("[" size=INT "]")?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.13/@alternatives/@elements.2'
 		public Group getGroup_2() { return cGroup_2; }
 
-		//"["
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.13/@alternatives/@elements.2/@elements.0'
 		public Keyword getLeftSquareBracketKeyword_2_0() { return cLeftSquareBracketKeyword_2_0; }
 
-		//size=INT
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.13/@alternatives/@elements.2/@elements.1'
 		public Assignment getSizeAssignment_2_1() { return cSizeAssignment_2_1; }
 
-		//INT
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.13/@alternatives/@elements.2/@elements.1/@terminal'
 		public RuleCall getSizeINTTerminalRuleCall_2_1_0() { return cSizeINTTerminalRuleCall_2_1_0; }
 
-		//"]"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.13/@alternatives/@elements.2/@elements.2'
 		public Keyword getRightSquareBracketKeyword_2_2() { return cRightSquareBracketKeyword_2_2; }
 
-		//":"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.13/@alternatives/@elements.3'
 		public Keyword getColonKeyword_3() { return cColonKeyword_3; }
 
-		//type=RefableType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.13/@alternatives/@elements.4'
 		public Assignment getTypeAssignment_4() { return cTypeAssignment_4; }
 
-		//RefableType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.13/@alternatives/@elements.4/@terminal'
 		public RuleCall getTypeRefableTypeParserRuleCall_4_0() { return cTypeRefableTypeParserRuleCall_4_0; }
 
-		//("=" defaultValueLiteral=STRING)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.13/@alternatives/@elements.5'
 		public Group getGroup_5() { return cGroup_5; }
 
-		//"="
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.13/@alternatives/@elements.5/@elements.0'
 		public Keyword getEqualsSignKeyword_5_0() { return cEqualsSignKeyword_5_0; }
 
-		//defaultValueLiteral=STRING
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.13/@alternatives/@elements.5/@elements.1'
 		public Assignment getDefaultValueLiteralAssignment_5_1() { return cDefaultValueLiteralAssignment_5_1; }
 
-		//STRING
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.13/@alternatives/@elements.5/@elements.1/@terminal'
 		public RuleCall getDefaultValueLiteralSTRINGTerminalRuleCall_5_1_0() { return cDefaultValueLiteralSTRINGTerminalRuleCall_5_1_0; }
 
-		//docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.13/@alternatives/@elements.6'
 		public Assignment getDocuAssignment_6() { return cDocuAssignment_6; }
 
-		//Documentation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.13/@alternatives/@elements.6/@terminal'
 		public RuleCall getDocuDocumentationParserRuleCall_6_0() { return cDocuDocumentationParserRuleCall_6_0; }
 	}
 
@@ -836,17 +810,16 @@
 		private final RuleCall cStandardOperationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
 		private final RuleCall cPortOperationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
 		
-		//Operation:
-		//	StandardOperation | PortOperation;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/Operation'
 		public ParserRule getRule() { return rule; }
 
-		//StandardOperation | PortOperation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.14/@alternatives'
 		public Alternatives getAlternatives() { return cAlternatives; }
 
-		//StandardOperation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.14/@alternatives/@elements.0'
 		public RuleCall getStandardOperationParserRuleCall_0() { return cStandardOperationParserRuleCall_0; }
 
-		//PortOperation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.14/@alternatives/@elements.1'
 		public RuleCall getPortOperationParserRuleCall_1() { return cPortOperationParserRuleCall_1; }
 	}
 
@@ -878,85 +851,82 @@
 		private final Assignment cDetailCodeAssignment_8 = (Assignment)cGroup.eContents().get(8);
 		private final RuleCall cDetailCodeDetailCodeParserRuleCall_8_0 = (RuleCall)cDetailCodeAssignment_8.eContents().get(0);
 		
-		//StandardOperation:
-		//	override?="override"? "Operation" name=ID "(" (arguments+=VarDecl ("," arguments+=VarDecl)*)? ")" (":" ("void" |
-		//	returnType=RefableType))? docu=Documentation? detailCode=DetailCode;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/StandardOperation'
 		public ParserRule getRule() { return rule; }
 
-		//override?="override"? "Operation" name=ID "(" (arguments+=VarDecl ("," arguments+=VarDecl)*)? ")" (":" ("void" |
-		//returnType=RefableType))? docu=Documentation? detailCode=DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//override?="override"?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.0'
 		public Assignment getOverrideAssignment_0() { return cOverrideAssignment_0; }
 
-		//"override"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.0/@terminal'
 		public Keyword getOverrideOverrideKeyword_0_0() { return cOverrideOverrideKeyword_0_0; }
 
-		//"Operation"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.1'
 		public Keyword getOperationKeyword_1() { return cOperationKeyword_1; }
 
-		//name=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.2'
 		public Assignment getNameAssignment_2() { return cNameAssignment_2; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.2/@terminal'
 		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
 
-		//"("
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.3'
 		public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }
 
-		//(arguments+=VarDecl ("," arguments+=VarDecl)*)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.4'
 		public Group getGroup_4() { return cGroup_4; }
 
-		//arguments+=VarDecl
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.4/@elements.0'
 		public Assignment getArgumentsAssignment_4_0() { return cArgumentsAssignment_4_0; }
 
-		//VarDecl
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.4/@elements.0/@terminal'
 		public RuleCall getArgumentsVarDeclParserRuleCall_4_0_0() { return cArgumentsVarDeclParserRuleCall_4_0_0; }
 
-		//("," arguments+=VarDecl)*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.4/@elements.1'
 		public Group getGroup_4_1() { return cGroup_4_1; }
 
-		//","
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.4/@elements.1/@elements.0'
 		public Keyword getCommaKeyword_4_1_0() { return cCommaKeyword_4_1_0; }
 
-		//arguments+=VarDecl
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.4/@elements.1/@elements.1'
 		public Assignment getArgumentsAssignment_4_1_1() { return cArgumentsAssignment_4_1_1; }
 
-		//VarDecl
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.4/@elements.1/@elements.1/@terminal'
 		public RuleCall getArgumentsVarDeclParserRuleCall_4_1_1_0() { return cArgumentsVarDeclParserRuleCall_4_1_1_0; }
 
-		//")"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.5'
 		public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }
 
-		//(":" ("void" | returnType=RefableType))?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.6'
 		public Group getGroup_6() { return cGroup_6; }
 
-		//":"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.6/@elements.0'
 		public Keyword getColonKeyword_6_0() { return cColonKeyword_6_0; }
 
-		//"void" | returnType=RefableType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.6/@elements.1'
 		public Alternatives getAlternatives_6_1() { return cAlternatives_6_1; }
 
-		//"void"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.6/@elements.1/@elements.0'
 		public Keyword getVoidKeyword_6_1_0() { return cVoidKeyword_6_1_0; }
 
-		//returnType=RefableType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.6/@elements.1/@elements.1'
 		public Assignment getReturnTypeAssignment_6_1_1() { return cReturnTypeAssignment_6_1_1; }
 
-		//RefableType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.6/@elements.1/@elements.1/@terminal'
 		public RuleCall getReturnTypeRefableTypeParserRuleCall_6_1_1_0() { return cReturnTypeRefableTypeParserRuleCall_6_1_1_0; }
 
-		//docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.7'
 		public Assignment getDocuAssignment_7() { return cDocuAssignment_7; }
 
-		//Documentation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.7/@terminal'
 		public RuleCall getDocuDocumentationParserRuleCall_7_0() { return cDocuDocumentationParserRuleCall_7_0; }
 
-		//detailCode=DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.8'
 		public Assignment getDetailCodeAssignment_8() { return cDetailCodeAssignment_8; }
 
-		//DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.15/@alternatives/@elements.8/@terminal'
 		public RuleCall getDetailCodeDetailCodeParserRuleCall_8_0() { return cDetailCodeDetailCodeParserRuleCall_8_0; }
 	}
 
@@ -992,97 +962,94 @@
 		private final Assignment cDetailCodeAssignment_7 = (Assignment)cGroup.eContents().get(7);
 		private final RuleCall cDetailCodeDetailCodeParserRuleCall_7_0 = (RuleCall)cDetailCodeAssignment_7.eContents().get(0);
 		
-		//PortOperation:
-		//	"Operation" name=ID "(" (arguments+=VarDecl ("," arguments+=VarDecl)*)? ")" (":" ("void" | returnType=RefableType) |
-		//	"sends" sendsMsg=[Message])? docu=Documentation? detailCode=DetailCode;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/PortOperation'
 		public ParserRule getRule() { return rule; }
 
-		//"Operation" name=ID "(" (arguments+=VarDecl ("," arguments+=VarDecl)*)? ")" (":" ("void" | returnType=RefableType) |
-		//"sends" sendsMsg=[Message])? docu=Documentation? detailCode=DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//"Operation"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.0'
 		public Keyword getOperationKeyword_0() { return cOperationKeyword_0; }
 
-		//name=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.1'
 		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.1/@terminal'
 		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
 
-		//"("
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.2'
 		public Keyword getLeftParenthesisKeyword_2() { return cLeftParenthesisKeyword_2; }
 
-		//(arguments+=VarDecl ("," arguments+=VarDecl)*)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.3'
 		public Group getGroup_3() { return cGroup_3; }
 
-		//arguments+=VarDecl
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.3/@elements.0'
 		public Assignment getArgumentsAssignment_3_0() { return cArgumentsAssignment_3_0; }
 
-		//VarDecl
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.3/@elements.0/@terminal'
 		public RuleCall getArgumentsVarDeclParserRuleCall_3_0_0() { return cArgumentsVarDeclParserRuleCall_3_0_0; }
 
-		//("," arguments+=VarDecl)*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.3/@elements.1'
 		public Group getGroup_3_1() { return cGroup_3_1; }
 
-		//","
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.3/@elements.1/@elements.0'
 		public Keyword getCommaKeyword_3_1_0() { return cCommaKeyword_3_1_0; }
 
-		//arguments+=VarDecl
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.3/@elements.1/@elements.1'
 		public Assignment getArgumentsAssignment_3_1_1() { return cArgumentsAssignment_3_1_1; }
 
-		//VarDecl
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.3/@elements.1/@elements.1/@terminal'
 		public RuleCall getArgumentsVarDeclParserRuleCall_3_1_1_0() { return cArgumentsVarDeclParserRuleCall_3_1_1_0; }
 
-		//")"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.4'
 		public Keyword getRightParenthesisKeyword_4() { return cRightParenthesisKeyword_4; }
 
-		//(":" ("void" | returnType=RefableType) | "sends" sendsMsg=[Message])?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.5'
 		public Alternatives getAlternatives_5() { return cAlternatives_5; }
 
-		//":" ("void" | returnType=RefableType)
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.5/@elements.0'
 		public Group getGroup_5_0() { return cGroup_5_0; }
 
-		//":"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.5/@elements.0/@elements.0'
 		public Keyword getColonKeyword_5_0_0() { return cColonKeyword_5_0_0; }
 
-		//"void" | returnType=RefableType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.5/@elements.0/@elements.1'
 		public Alternatives getAlternatives_5_0_1() { return cAlternatives_5_0_1; }
 
-		//"void"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.5/@elements.0/@elements.1/@elements.0'
 		public Keyword getVoidKeyword_5_0_1_0() { return cVoidKeyword_5_0_1_0; }
 
-		//returnType=RefableType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.5/@elements.0/@elements.1/@elements.1'
 		public Assignment getReturnTypeAssignment_5_0_1_1() { return cReturnTypeAssignment_5_0_1_1; }
 
-		//RefableType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.5/@elements.0/@elements.1/@elements.1/@terminal'
 		public RuleCall getReturnTypeRefableTypeParserRuleCall_5_0_1_1_0() { return cReturnTypeRefableTypeParserRuleCall_5_0_1_1_0; }
 
-		//"sends" sendsMsg=[Message]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.5/@elements.1'
 		public Group getGroup_5_1() { return cGroup_5_1; }
 
-		//"sends"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.5/@elements.1/@elements.0'
 		public Keyword getSendsKeyword_5_1_0() { return cSendsKeyword_5_1_0; }
 
-		//sendsMsg=[Message]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.5/@elements.1/@elements.1'
 		public Assignment getSendsMsgAssignment_5_1_1() { return cSendsMsgAssignment_5_1_1; }
 
-		//[Message]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.5/@elements.1/@elements.1/@terminal'
 		public CrossReference getSendsMsgMessageCrossReference_5_1_1_0() { return cSendsMsgMessageCrossReference_5_1_1_0; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.5/@elements.1/@elements.1/@terminal/@terminal'
 		public RuleCall getSendsMsgMessageIDTerminalRuleCall_5_1_1_0_1() { return cSendsMsgMessageIDTerminalRuleCall_5_1_1_0_1; }
 
-		//docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.6'
 		public Assignment getDocuAssignment_6() { return cDocuAssignment_6; }
 
-		//Documentation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.6/@terminal'
 		public RuleCall getDocuDocumentationParserRuleCall_6_0() { return cDocuDocumentationParserRuleCall_6_0; }
 
-		//detailCode=DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.7'
 		public Assignment getDetailCodeAssignment_7() { return cDetailCodeAssignment_7; }
 
-		//DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.16/@alternatives/@elements.7/@terminal'
 		public RuleCall getDetailCodeDetailCodeParserRuleCall_7_0() { return cDetailCodeDetailCodeParserRuleCall_7_0; }
 	}
 
@@ -1096,29 +1063,28 @@
 		private final Assignment cDetailCodeAssignment_1 = (Assignment)cGroup.eContents().get(1);
 		private final RuleCall cDetailCodeDetailCodeParserRuleCall_1_0 = (RuleCall)cDetailCodeAssignment_1.eContents().get(0);
 		
-		//ClassStructor:
-		//	name=("ctor" | "dtor") detailCode=DetailCode;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ClassStructor'
 		public ParserRule getRule() { return rule; }
 
-		//name=("ctor" | "dtor") detailCode=DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.17/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//name=("ctor" | "dtor")
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.17/@alternatives/@elements.0'
 		public Assignment getNameAssignment_0() { return cNameAssignment_0; }
 
-		//"ctor" | "dtor"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.17/@alternatives/@elements.0/@terminal'
 		public Alternatives getNameAlternatives_0_0() { return cNameAlternatives_0_0; }
 
-		//"ctor"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.17/@alternatives/@elements.0/@terminal/@elements.0'
 		public Keyword getNameCtorKeyword_0_0_0() { return cNameCtorKeyword_0_0_0; }
 
-		//"dtor"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.17/@alternatives/@elements.0/@terminal/@elements.1'
 		public Keyword getNameDtorKeyword_0_0_1() { return cNameDtorKeyword_0_0_1; }
 
-		//detailCode=DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.17/@alternatives/@elements.1'
 		public Assignment getDetailCodeAssignment_1() { return cDetailCodeAssignment_1; }
 
-		//DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.17/@alternatives/@elements.1/@terminal'
 		public RuleCall getDetailCodeDetailCodeParserRuleCall_1_0() { return cDetailCodeDetailCodeParserRuleCall_1_0; }
 	}
 
@@ -1128,17 +1094,16 @@
 		private final RuleCall cProtocolClassParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
 		private final RuleCall cCompoundProtocolClassParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
 		
-		//GeneralProtocolClass:
-		//	ProtocolClass | CompoundProtocolClass;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/GeneralProtocolClass'
 		public ParserRule getRule() { return rule; }
 
-		//ProtocolClass | CompoundProtocolClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.19/@alternatives'
 		public Alternatives getAlternatives() { return cAlternatives; }
 
-		//ProtocolClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.19/@alternatives/@elements.0'
 		public RuleCall getProtocolClassParserRuleCall_0() { return cProtocolClassParserRuleCall_0; }
 
-		//CompoundProtocolClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.19/@alternatives/@elements.1'
 		public RuleCall getCompoundProtocolClassParserRuleCall_1() { return cCompoundProtocolClassParserRuleCall_1; }
 	}
 
@@ -1198,175 +1163,166 @@
 		private final RuleCall cSemanticsProtocolSemanticsParserRuleCall_14_0 = (RuleCall)cSemanticsAssignment_14.eContents().get(0);
 		private final Keyword cRightCurlyBracketKeyword_15 = (Keyword)cGroup.eContents().get(15);
 		
-		//ProtocolClass:
-		//	commType=CommunicationType? "ProtocolClass" name=ID docu=Documentation? ("extends" base=[ProtocolClass|FQN])? "{"
-		//	annotations+=Annotation* ("usercode1" userCode1=DetailCode)? ("usercode2" userCode2=DetailCode)? ("usercode3"
-		//	userCode3=DetailCode)? ("incoming" "{" incomingMessages+=Message* "}")? ("outgoing" "{" outgoingMessages+=Message*
-		//	"}")? ("regular" "PortClass" regular=PortClass)? ("conjugated" "PortClass" conjugated=PortClass)?
-		//	semantics=ProtocolSemantics? "}";
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ProtocolClass'
 		public ParserRule getRule() { return rule; }
 
-		//commType=CommunicationType? "ProtocolClass" name=ID docu=Documentation? ("extends" base=[ProtocolClass|FQN])? "{"
-		//annotations+=Annotation* ("usercode1" userCode1=DetailCode)? ("usercode2" userCode2=DetailCode)? ("usercode3"
-		//userCode3=DetailCode)? ("incoming" "{" incomingMessages+=Message* "}")? ("outgoing" "{" outgoingMessages+=Message*
-		//"}")? ("regular" "PortClass" regular=PortClass)? ("conjugated" "PortClass" conjugated=PortClass)?
-		//semantics=ProtocolSemantics? "}"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//commType=CommunicationType?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.0'
 		public Assignment getCommTypeAssignment_0() { return cCommTypeAssignment_0; }
 
-		//CommunicationType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.0/@terminal'
 		public RuleCall getCommTypeCommunicationTypeEnumRuleCall_0_0() { return cCommTypeCommunicationTypeEnumRuleCall_0_0; }
 
-		//"ProtocolClass"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.1'
 		public Keyword getProtocolClassKeyword_1() { return cProtocolClassKeyword_1; }
 
-		//name=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.2'
 		public Assignment getNameAssignment_2() { return cNameAssignment_2; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.2/@terminal'
 		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
 
-		//docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.3'
 		public Assignment getDocuAssignment_3() { return cDocuAssignment_3; }
 
-		//Documentation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.3/@terminal'
 		public RuleCall getDocuDocumentationParserRuleCall_3_0() { return cDocuDocumentationParserRuleCall_3_0; }
 
-		//("extends" base=[ProtocolClass|FQN])?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.4'
 		public Group getGroup_4() { return cGroup_4; }
 
-		//"extends"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.4/@elements.0'
 		public Keyword getExtendsKeyword_4_0() { return cExtendsKeyword_4_0; }
 
-		//base=[ProtocolClass|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.4/@elements.1'
 		public Assignment getBaseAssignment_4_1() { return cBaseAssignment_4_1; }
 
-		//[ProtocolClass|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.4/@elements.1/@terminal'
 		public CrossReference getBaseProtocolClassCrossReference_4_1_0() { return cBaseProtocolClassCrossReference_4_1_0; }
 
-		//FQN
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.4/@elements.1/@terminal/@terminal'
 		public RuleCall getBaseProtocolClassFQNParserRuleCall_4_1_0_1() { return cBaseProtocolClassFQNParserRuleCall_4_1_0_1; }
 
-		//"{"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.5'
 		public Keyword getLeftCurlyBracketKeyword_5() { return cLeftCurlyBracketKeyword_5; }
 
-		//annotations+=Annotation*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.6'
 		public Assignment getAnnotationsAssignment_6() { return cAnnotationsAssignment_6; }
 
-		//Annotation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.6/@terminal'
 		public RuleCall getAnnotationsAnnotationParserRuleCall_6_0() { return cAnnotationsAnnotationParserRuleCall_6_0; }
 
-		//("usercode1" userCode1=DetailCode)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.7'
 		public Group getGroup_7() { return cGroup_7; }
 
-		//"usercode1"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.7/@elements.0'
 		public Keyword getUsercode1Keyword_7_0() { return cUsercode1Keyword_7_0; }
 
-		//userCode1=DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.7/@elements.1'
 		public Assignment getUserCode1Assignment_7_1() { return cUserCode1Assignment_7_1; }
 
-		//DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.7/@elements.1/@terminal'
 		public RuleCall getUserCode1DetailCodeParserRuleCall_7_1_0() { return cUserCode1DetailCodeParserRuleCall_7_1_0; }
 
-		//("usercode2" userCode2=DetailCode)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.8'
 		public Group getGroup_8() { return cGroup_8; }
 
-		//"usercode2"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.8/@elements.0'
 		public Keyword getUsercode2Keyword_8_0() { return cUsercode2Keyword_8_0; }
 
-		//userCode2=DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.8/@elements.1'
 		public Assignment getUserCode2Assignment_8_1() { return cUserCode2Assignment_8_1; }
 
-		//DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.8/@elements.1/@terminal'
 		public RuleCall getUserCode2DetailCodeParserRuleCall_8_1_0() { return cUserCode2DetailCodeParserRuleCall_8_1_0; }
 
-		//("usercode3" userCode3=DetailCode)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.9'
 		public Group getGroup_9() { return cGroup_9; }
 
-		//"usercode3"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.9/@elements.0'
 		public Keyword getUsercode3Keyword_9_0() { return cUsercode3Keyword_9_0; }
 
-		//userCode3=DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.9/@elements.1'
 		public Assignment getUserCode3Assignment_9_1() { return cUserCode3Assignment_9_1; }
 
-		//DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.9/@elements.1/@terminal'
 		public RuleCall getUserCode3DetailCodeParserRuleCall_9_1_0() { return cUserCode3DetailCodeParserRuleCall_9_1_0; }
 
-		//("incoming" "{" incomingMessages+=Message* "}")?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.10'
 		public Group getGroup_10() { return cGroup_10; }
 
-		//"incoming"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.10/@elements.0'
 		public Keyword getIncomingKeyword_10_0() { return cIncomingKeyword_10_0; }
 
-		//"{"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.10/@elements.1'
 		public Keyword getLeftCurlyBracketKeyword_10_1() { return cLeftCurlyBracketKeyword_10_1; }
 
-		//incomingMessages+=Message*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.10/@elements.2'
 		public Assignment getIncomingMessagesAssignment_10_2() { return cIncomingMessagesAssignment_10_2; }
 
-		//Message
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.10/@elements.2/@terminal'
 		public RuleCall getIncomingMessagesMessageParserRuleCall_10_2_0() { return cIncomingMessagesMessageParserRuleCall_10_2_0; }
 
-		//"}"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.10/@elements.3'
 		public Keyword getRightCurlyBracketKeyword_10_3() { return cRightCurlyBracketKeyword_10_3; }
 
-		//("outgoing" "{" outgoingMessages+=Message* "}")?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.11'
 		public Group getGroup_11() { return cGroup_11; }
 
-		//"outgoing"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.11/@elements.0'
 		public Keyword getOutgoingKeyword_11_0() { return cOutgoingKeyword_11_0; }
 
-		//"{"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.11/@elements.1'
 		public Keyword getLeftCurlyBracketKeyword_11_1() { return cLeftCurlyBracketKeyword_11_1; }
 
-		//outgoingMessages+=Message*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.11/@elements.2'
 		public Assignment getOutgoingMessagesAssignment_11_2() { return cOutgoingMessagesAssignment_11_2; }
 
-		//Message
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.11/@elements.2/@terminal'
 		public RuleCall getOutgoingMessagesMessageParserRuleCall_11_2_0() { return cOutgoingMessagesMessageParserRuleCall_11_2_0; }
 
-		//"}"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.11/@elements.3'
 		public Keyword getRightCurlyBracketKeyword_11_3() { return cRightCurlyBracketKeyword_11_3; }
 
-		//("regular" "PortClass" regular=PortClass)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.12'
 		public Group getGroup_12() { return cGroup_12; }
 
-		//"regular"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.12/@elements.0'
 		public Keyword getRegularKeyword_12_0() { return cRegularKeyword_12_0; }
 
-		//"PortClass"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.12/@elements.1'
 		public Keyword getPortClassKeyword_12_1() { return cPortClassKeyword_12_1; }
 
-		//regular=PortClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.12/@elements.2'
 		public Assignment getRegularAssignment_12_2() { return cRegularAssignment_12_2; }
 
-		//PortClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.12/@elements.2/@terminal'
 		public RuleCall getRegularPortClassParserRuleCall_12_2_0() { return cRegularPortClassParserRuleCall_12_2_0; }
 
-		//("conjugated" "PortClass" conjugated=PortClass)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.13'
 		public Group getGroup_13() { return cGroup_13; }
 
-		//"conjugated"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.13/@elements.0'
 		public Keyword getConjugatedKeyword_13_0() { return cConjugatedKeyword_13_0; }
 
-		//"PortClass"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.13/@elements.1'
 		public Keyword getPortClassKeyword_13_1() { return cPortClassKeyword_13_1; }
 
-		//conjugated=PortClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.13/@elements.2'
 		public Assignment getConjugatedAssignment_13_2() { return cConjugatedAssignment_13_2; }
 
-		//PortClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.13/@elements.2/@terminal'
 		public RuleCall getConjugatedPortClassParserRuleCall_13_2_0() { return cConjugatedPortClassParserRuleCall_13_2_0; }
 
-		//semantics=ProtocolSemantics?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.14'
 		public Assignment getSemanticsAssignment_14() { return cSemanticsAssignment_14; }
 
-		//ProtocolSemantics
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.14/@terminal'
 		public RuleCall getSemanticsProtocolSemanticsParserRuleCall_14_0() { return cSemanticsProtocolSemanticsParserRuleCall_14_0; }
 
-		//"}"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.20/@alternatives/@elements.15'
 		public Keyword getRightCurlyBracketKeyword_15() { return cRightCurlyBracketKeyword_15; }
 	}
 
@@ -1385,44 +1341,43 @@
 		private final RuleCall cSubProtocolsSubProtocolParserRuleCall_5_0 = (RuleCall)cSubProtocolsAssignment_5.eContents().get(0);
 		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
 		
-		//CompoundProtocolClass:
-		//	"CompoundProtocolClass" name=ID docu=Documentation? "{" annotations+=Annotation* subProtocols+=SubProtocol* "}";
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/CompoundProtocolClass'
 		public ParserRule getRule() { return rule; }
 
-		//"CompoundProtocolClass" name=ID docu=Documentation? "{" annotations+=Annotation* subProtocols+=SubProtocol* "}"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.21/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//"CompoundProtocolClass"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.21/@alternatives/@elements.0'
 		public Keyword getCompoundProtocolClassKeyword_0() { return cCompoundProtocolClassKeyword_0; }
 
-		//name=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.21/@alternatives/@elements.1'
 		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.21/@alternatives/@elements.1/@terminal'
 		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
 
-		//docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.21/@alternatives/@elements.2'
 		public Assignment getDocuAssignment_2() { return cDocuAssignment_2; }
 
-		//Documentation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.21/@alternatives/@elements.2/@terminal'
 		public RuleCall getDocuDocumentationParserRuleCall_2_0() { return cDocuDocumentationParserRuleCall_2_0; }
 
-		//"{"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.21/@alternatives/@elements.3'
 		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
 
-		//annotations+=Annotation*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.21/@alternatives/@elements.4'
 		public Assignment getAnnotationsAssignment_4() { return cAnnotationsAssignment_4; }
 
-		//Annotation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.21/@alternatives/@elements.4/@terminal'
 		public RuleCall getAnnotationsAnnotationParserRuleCall_4_0() { return cAnnotationsAnnotationParserRuleCall_4_0; }
 
-		//subProtocols+=SubProtocol*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.21/@alternatives/@elements.5'
 		public Assignment getSubProtocolsAssignment_5() { return cSubProtocolsAssignment_5; }
 
-		//SubProtocol
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.21/@alternatives/@elements.5/@terminal'
 		public RuleCall getSubProtocolsSubProtocolParserRuleCall_5_0() { return cSubProtocolsSubProtocolParserRuleCall_5_0; }
 
-		//"}"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.21/@alternatives/@elements.6'
 		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
 	}
 
@@ -1437,32 +1392,31 @@
 		private final CrossReference cProtocolGeneralProtocolClassCrossReference_3_0 = (CrossReference)cProtocolAssignment_3.eContents().get(0);
 		private final RuleCall cProtocolGeneralProtocolClassFQNParserRuleCall_3_0_1 = (RuleCall)cProtocolGeneralProtocolClassCrossReference_3_0.eContents().get(1);
 		
-		//SubProtocol:
-		//	"SubProtocol" name=ID ":" protocol=[GeneralProtocolClass|FQN];
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/SubProtocol'
 		public ParserRule getRule() { return rule; }
 
-		//"SubProtocol" name=ID ":" protocol=[GeneralProtocolClass|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.22/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//"SubProtocol"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.22/@alternatives/@elements.0'
 		public Keyword getSubProtocolKeyword_0() { return cSubProtocolKeyword_0; }
 
-		//name=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.22/@alternatives/@elements.1'
 		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.22/@alternatives/@elements.1/@terminal'
 		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
 
-		//":"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.22/@alternatives/@elements.2'
 		public Keyword getColonKeyword_2() { return cColonKeyword_2; }
 
-		//protocol=[GeneralProtocolClass|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.22/@alternatives/@elements.3'
 		public Assignment getProtocolAssignment_3() { return cProtocolAssignment_3; }
 
-		//[GeneralProtocolClass|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.22/@alternatives/@elements.3/@terminal'
 		public CrossReference getProtocolGeneralProtocolClassCrossReference_3_0() { return cProtocolGeneralProtocolClassCrossReference_3_0; }
 
-		//FQN
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.22/@alternatives/@elements.3/@terminal/@terminal'
 		public RuleCall getProtocolGeneralProtocolClassFQNParserRuleCall_3_0_1() { return cProtocolGeneralProtocolClassFQNParserRuleCall_3_0_1; }
 	}
 
@@ -1481,44 +1435,43 @@
 		private final Assignment cDocuAssignment_6 = (Assignment)cGroup.eContents().get(6);
 		private final RuleCall cDocuDocumentationParserRuleCall_6_0 = (RuleCall)cDocuAssignment_6.eContents().get(0);
 		
-		//Message:
-		//	priv?="private"? "Message" name=ID "(" data=VarDecl? ")" docu=Documentation?;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/Message'
 		public ParserRule getRule() { return rule; }
 
-		//priv?="private"? "Message" name=ID "(" data=VarDecl? ")" docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.23/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//priv?="private"?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.23/@alternatives/@elements.0'
 		public Assignment getPrivAssignment_0() { return cPrivAssignment_0; }
 
-		//"private"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.23/@alternatives/@elements.0/@terminal'
 		public Keyword getPrivPrivateKeyword_0_0() { return cPrivPrivateKeyword_0_0; }
 
-		//"Message"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.23/@alternatives/@elements.1'
 		public Keyword getMessageKeyword_1() { return cMessageKeyword_1; }
 
-		//name=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.23/@alternatives/@elements.2'
 		public Assignment getNameAssignment_2() { return cNameAssignment_2; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.23/@alternatives/@elements.2/@terminal'
 		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
 
-		//"("
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.23/@alternatives/@elements.3'
 		public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }
 
-		//data=VarDecl?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.23/@alternatives/@elements.4'
 		public Assignment getDataAssignment_4() { return cDataAssignment_4; }
 
-		//VarDecl
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.23/@alternatives/@elements.4/@terminal'
 		public RuleCall getDataVarDeclParserRuleCall_4_0() { return cDataVarDeclParserRuleCall_4_0; }
 
-		//")"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.23/@alternatives/@elements.5'
 		public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }
 
-		//docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.23/@alternatives/@elements.6'
 		public Assignment getDocuAssignment_6() { return cDocuAssignment_6; }
 
-		//Documentation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.23/@alternatives/@elements.6/@terminal'
 		public RuleCall getDocuDocumentationParserRuleCall_6_0() { return cDocuDocumentationParserRuleCall_6_0; }
 	}
 
@@ -1540,55 +1493,52 @@
 		private final RuleCall cAttributesAttributeParserRuleCall_3_2_0 = (RuleCall)cAttributesAssignment_3_2.eContents().get(0);
 		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
 		
-		//PortClass:
-		//	{PortClass} "{" ("usercode" userCode=DetailCode)? (msgHandlers+=MessageHandler | operations+=PortOperation |
-		//	attributes+=Attribute)* "}";
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/PortClass'
 		public ParserRule getRule() { return rule; }
 
-		//{PortClass} "{" ("usercode" userCode=DetailCode)? (msgHandlers+=MessageHandler | operations+=PortOperation |
-		//attributes+=Attribute)* "}"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.24/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//{PortClass}
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.24/@alternatives/@elements.0'
 		public Action getPortClassAction_0() { return cPortClassAction_0; }
 
-		//"{"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.24/@alternatives/@elements.1'
 		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }
 
-		//("usercode" userCode=DetailCode)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.24/@alternatives/@elements.2'
 		public Group getGroup_2() { return cGroup_2; }
 
-		//"usercode"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.24/@alternatives/@elements.2/@elements.0'
 		public Keyword getUsercodeKeyword_2_0() { return cUsercodeKeyword_2_0; }
 
-		//userCode=DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.24/@alternatives/@elements.2/@elements.1'
 		public Assignment getUserCodeAssignment_2_1() { return cUserCodeAssignment_2_1; }
 
-		//DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.24/@alternatives/@elements.2/@elements.1/@terminal'
 		public RuleCall getUserCodeDetailCodeParserRuleCall_2_1_0() { return cUserCodeDetailCodeParserRuleCall_2_1_0; }
 
-		//(msgHandlers+=MessageHandler | operations+=PortOperation | attributes+=Attribute)*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.24/@alternatives/@elements.3'
 		public Alternatives getAlternatives_3() { return cAlternatives_3; }
 
-		//msgHandlers+=MessageHandler
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.24/@alternatives/@elements.3/@elements.0'
 		public Assignment getMsgHandlersAssignment_3_0() { return cMsgHandlersAssignment_3_0; }
 
-		//MessageHandler
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.24/@alternatives/@elements.3/@elements.0/@terminal'
 		public RuleCall getMsgHandlersMessageHandlerParserRuleCall_3_0_0() { return cMsgHandlersMessageHandlerParserRuleCall_3_0_0; }
 
-		//operations+=PortOperation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.24/@alternatives/@elements.3/@elements.1'
 		public Assignment getOperationsAssignment_3_1() { return cOperationsAssignment_3_1; }
 
-		//PortOperation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.24/@alternatives/@elements.3/@elements.1/@terminal'
 		public RuleCall getOperationsPortOperationParserRuleCall_3_1_0() { return cOperationsPortOperationParserRuleCall_3_1_0; }
 
-		//attributes+=Attribute
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.24/@alternatives/@elements.3/@elements.2'
 		public Assignment getAttributesAssignment_3_2() { return cAttributesAssignment_3_2; }
 
-		//Attribute
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.24/@alternatives/@elements.3/@elements.2/@terminal'
 		public RuleCall getAttributesAttributeParserRuleCall_3_2_0() { return cAttributesAttributeParserRuleCall_3_2_0; }
 
-		//"}"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.24/@alternatives/@elements.4'
 		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
 	}
 
@@ -1598,17 +1548,16 @@
 		private final RuleCall cInMessageHandlerParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
 		private final RuleCall cOutMessageHandlerParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
 		
-		//MessageHandler:
-		//	InMessageHandler | OutMessageHandler;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/MessageHandler'
 		public ParserRule getRule() { return rule; }
 
-		//InMessageHandler | OutMessageHandler
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.25/@alternatives'
 		public Alternatives getAlternatives() { return cAlternatives; }
 
-		//InMessageHandler
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.25/@alternatives/@elements.0'
 		public RuleCall getInMessageHandlerParserRuleCall_0() { return cInMessageHandlerParserRuleCall_0; }
 
-		//OutMessageHandler
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.25/@alternatives/@elements.1'
 		public RuleCall getOutMessageHandlerParserRuleCall_1() { return cOutMessageHandlerParserRuleCall_1; }
 	}
 
@@ -1623,32 +1572,31 @@
 		private final Assignment cDetailCodeAssignment_3 = (Assignment)cGroup.eContents().get(3);
 		private final RuleCall cDetailCodeDetailCodeParserRuleCall_3_0 = (RuleCall)cDetailCodeAssignment_3.eContents().get(0);
 		
-		//InMessageHandler:
-		//	"handle" "incoming" msg=[Message] detailCode=DetailCode;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/InMessageHandler'
 		public ParserRule getRule() { return rule; }
 
-		//"handle" "incoming" msg=[Message] detailCode=DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.26/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//"handle"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.26/@alternatives/@elements.0'
 		public Keyword getHandleKeyword_0() { return cHandleKeyword_0; }
 
-		//"incoming"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.26/@alternatives/@elements.1'
 		public Keyword getIncomingKeyword_1() { return cIncomingKeyword_1; }
 
-		//msg=[Message]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.26/@alternatives/@elements.2'
 		public Assignment getMsgAssignment_2() { return cMsgAssignment_2; }
 
-		//[Message]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.26/@alternatives/@elements.2/@terminal'
 		public CrossReference getMsgMessageCrossReference_2_0() { return cMsgMessageCrossReference_2_0; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.26/@alternatives/@elements.2/@terminal/@terminal'
 		public RuleCall getMsgMessageIDTerminalRuleCall_2_0_1() { return cMsgMessageIDTerminalRuleCall_2_0_1; }
 
-		//detailCode=DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.26/@alternatives/@elements.3'
 		public Assignment getDetailCodeAssignment_3() { return cDetailCodeAssignment_3; }
 
-		//DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.26/@alternatives/@elements.3/@terminal'
 		public RuleCall getDetailCodeDetailCodeParserRuleCall_3_0() { return cDetailCodeDetailCodeParserRuleCall_3_0; }
 	}
 
@@ -1663,32 +1611,31 @@
 		private final Assignment cDetailCodeAssignment_3 = (Assignment)cGroup.eContents().get(3);
 		private final RuleCall cDetailCodeDetailCodeParserRuleCall_3_0 = (RuleCall)cDetailCodeAssignment_3.eContents().get(0);
 		
-		//OutMessageHandler:
-		//	"handle" "outgoing" msg=[Message] detailCode=DetailCode;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/OutMessageHandler'
 		public ParserRule getRule() { return rule; }
 
-		//"handle" "outgoing" msg=[Message] detailCode=DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.27/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//"handle"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.27/@alternatives/@elements.0'
 		public Keyword getHandleKeyword_0() { return cHandleKeyword_0; }
 
-		//"outgoing"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.27/@alternatives/@elements.1'
 		public Keyword getOutgoingKeyword_1() { return cOutgoingKeyword_1; }
 
-		//msg=[Message]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.27/@alternatives/@elements.2'
 		public Assignment getMsgAssignment_2() { return cMsgAssignment_2; }
 
-		//[Message]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.27/@alternatives/@elements.2/@terminal'
 		public CrossReference getMsgMessageCrossReference_2_0() { return cMsgMessageCrossReference_2_0; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.27/@alternatives/@elements.2/@terminal/@terminal'
 		public RuleCall getMsgMessageIDTerminalRuleCall_2_0_1() { return cMsgMessageIDTerminalRuleCall_2_0_1; }
 
-		//detailCode=DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.27/@alternatives/@elements.3'
 		public Assignment getDetailCodeAssignment_3() { return cDetailCodeAssignment_3; }
 
-		//DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.27/@alternatives/@elements.3/@terminal'
 		public RuleCall getDetailCodeDetailCodeParserRuleCall_3_0() { return cDetailCodeDetailCodeParserRuleCall_3_0; }
 	}
 
@@ -1696,13 +1643,10 @@
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ModelComponent");
 		private final RuleCall cActorClassParserRuleCall = (RuleCall)rule.eContents().get(1);
 		
-		//// **************************************************************
-		//// actor class
-		//ModelComponent:
-		//	ActorClass;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ModelComponent'
 		public ParserRule getRule() { return rule; }
 
-		//ActorClass
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.28/@alternatives'
 		public RuleCall getActorClassParserRuleCall() { return cActorClassParserRuleCall; }
 	}
 
@@ -1788,275 +1732,244 @@
 		private final Keyword cRightCurlyBracketKeyword_9_6 = (Keyword)cGroup_9.eContents().get(6);
 		private final Keyword cRightCurlyBracketKeyword_10 = (Keyword)cGroup.eContents().get(10);
 		
-		//// some notes on ports
-		////
-		//// in ROOM ports can be contained in the structure and/or the interface
-		//// p in s ==> internal end port
-		//// p in i ==> relay port
-		//// p in i and p in s ==> external end port
-		//// since double containment is not supported we decided to define external ports as reference to interface ports
-		//ActorClass:
-		//	(abstract?="abstract"? & commType=ComponentCommunicationType?) "ActorClass" name=ID docu=Documentation? ("extends"
-		//	base=[ActorClass|FQN])? "{" annotations+=Annotation* ("Interface" "{" (serviceProvisionPoints+=SPP |
-		//	interfacePorts+=Port)* "}")? ("Structure" structureDocu=Documentation? "{" ("usercode1" userCode1=DetailCode)?
-		//	("usercode2" userCode2=DetailCode)? ("usercode3" userCode3=DetailCode)? // workaround: reverse the order for serializer
-		//	(connections+=LayerConnection | bindings+=Binding | serviceImplementations+=ServiceImplementation |
-		//	attributes+=Attribute | actorRefs+=ActorRef | serviceAccessPoints+=SAP | internalPorts+=Port |
-		//	externalPorts+=ExternalPort)* "}")? ("Behavior" behaviorDocu=Documentation? "{" behaviorAnnotations+=Annotation*
-		//	(operations+=StandardOperation | structors+=ClassStructor)* stateMachine=StateMachine? "}")? "}";
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ActorClass'
 		public ParserRule getRule() { return rule; }
 
-		//(abstract?="abstract"? & commType=ComponentCommunicationType?) "ActorClass" name=ID docu=Documentation? ("extends"
-		//base=[ActorClass|FQN])? "{" annotations+=Annotation* ("Interface" "{" (serviceProvisionPoints+=SPP |
-		//interfacePorts+=Port)* "}")? ("Structure" structureDocu=Documentation? "{" ("usercode1" userCode1=DetailCode)?
-		//("usercode2" userCode2=DetailCode)? ("usercode3" userCode3=DetailCode)? // workaround: reverse the order for serializer
-		//(connections+=LayerConnection | bindings+=Binding | serviceImplementations+=ServiceImplementation |
-		//attributes+=Attribute | actorRefs+=ActorRef | serviceAccessPoints+=SAP | internalPorts+=Port |
-		//externalPorts+=ExternalPort)* "}")? ("Behavior" behaviorDocu=Documentation? "{" behaviorAnnotations+=Annotation*
-		//(operations+=StandardOperation | structors+=ClassStructor)* stateMachine=StateMachine? "}")? "}"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//abstract?="abstract"? & commType=ComponentCommunicationType?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.0'
 		public UnorderedGroup getUnorderedGroup_0() { return cUnorderedGroup_0; }
 
-		//abstract?="abstract"?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.0/@elements.0'
 		public Assignment getAbstractAssignment_0_0() { return cAbstractAssignment_0_0; }
 
-		//"abstract"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.0/@elements.0/@terminal'
 		public Keyword getAbstractAbstractKeyword_0_0_0() { return cAbstractAbstractKeyword_0_0_0; }
 
-		//commType=ComponentCommunicationType?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.0/@elements.1'
 		public Assignment getCommTypeAssignment_0_1() { return cCommTypeAssignment_0_1; }
 
-		//ComponentCommunicationType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.0/@elements.1/@terminal'
 		public RuleCall getCommTypeComponentCommunicationTypeEnumRuleCall_0_1_0() { return cCommTypeComponentCommunicationTypeEnumRuleCall_0_1_0; }
 
-		//"ActorClass"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.1'
 		public Keyword getActorClassKeyword_1() { return cActorClassKeyword_1; }
 
-		//name=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.2'
 		public Assignment getNameAssignment_2() { return cNameAssignment_2; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.2/@terminal'
 		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
 
-		//docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.3'
 		public Assignment getDocuAssignment_3() { return cDocuAssignment_3; }
 
-		//Documentation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.3/@terminal'
 		public RuleCall getDocuDocumentationParserRuleCall_3_0() { return cDocuDocumentationParserRuleCall_3_0; }
 
-		//("extends" base=[ActorClass|FQN])?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.4'
 		public Group getGroup_4() { return cGroup_4; }
 
-		//"extends"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.4/@elements.0'
 		public Keyword getExtendsKeyword_4_0() { return cExtendsKeyword_4_0; }
 
-		//base=[ActorClass|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.4/@elements.1'
 		public Assignment getBaseAssignment_4_1() { return cBaseAssignment_4_1; }
 
-		//[ActorClass|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.4/@elements.1/@terminal'
 		public CrossReference getBaseActorClassCrossReference_4_1_0() { return cBaseActorClassCrossReference_4_1_0; }
 
-		//FQN
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.4/@elements.1/@terminal/@terminal'
 		public RuleCall getBaseActorClassFQNParserRuleCall_4_1_0_1() { return cBaseActorClassFQNParserRuleCall_4_1_0_1; }
 
-		//"{"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.5'
 		public Keyword getLeftCurlyBracketKeyword_5() { return cLeftCurlyBracketKeyword_5; }
 
-		//annotations+=Annotation*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.6'
 		public Assignment getAnnotationsAssignment_6() { return cAnnotationsAssignment_6; }
 
-		//Annotation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.6/@terminal'
 		public RuleCall getAnnotationsAnnotationParserRuleCall_6_0() { return cAnnotationsAnnotationParserRuleCall_6_0; }
 
-		//("Interface" "{" (serviceProvisionPoints+=SPP | interfacePorts+=Port)* "}")?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.7'
 		public Group getGroup_7() { return cGroup_7; }
 
-		//"Interface"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.7/@elements.0'
 		public Keyword getInterfaceKeyword_7_0() { return cInterfaceKeyword_7_0; }
 
-		//"{"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.7/@elements.1'
 		public Keyword getLeftCurlyBracketKeyword_7_1() { return cLeftCurlyBracketKeyword_7_1; }
 
-		//(serviceProvisionPoints+=SPP | interfacePorts+=Port)*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.7/@elements.2'
 		public Alternatives getAlternatives_7_2() { return cAlternatives_7_2; }
 
-		//serviceProvisionPoints+=SPP
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.7/@elements.2/@elements.0'
 		public Assignment getServiceProvisionPointsAssignment_7_2_0() { return cServiceProvisionPointsAssignment_7_2_0; }
 
-		//SPP
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.7/@elements.2/@elements.0/@terminal'
 		public RuleCall getServiceProvisionPointsSPPParserRuleCall_7_2_0_0() { return cServiceProvisionPointsSPPParserRuleCall_7_2_0_0; }
 
-		//interfacePorts+=Port
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.7/@elements.2/@elements.1'
 		public Assignment getInterfacePortsAssignment_7_2_1() { return cInterfacePortsAssignment_7_2_1; }
 
-		//Port
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.7/@elements.2/@elements.1/@terminal'
 		public RuleCall getInterfacePortsPortParserRuleCall_7_2_1_0() { return cInterfacePortsPortParserRuleCall_7_2_1_0; }
 
-		//"}"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.7/@elements.3'
 		public Keyword getRightCurlyBracketKeyword_7_3() { return cRightCurlyBracketKeyword_7_3; }
 
-		//("Structure" structureDocu=Documentation? "{" ("usercode1" userCode1=DetailCode)? ("usercode2" userCode2=DetailCode)?
-		//("usercode3" userCode3=DetailCode)? // workaround: reverse the order for serializer
-		//(connections+=LayerConnection | bindings+=Binding | serviceImplementations+=ServiceImplementation |
-		//attributes+=Attribute | actorRefs+=ActorRef | serviceAccessPoints+=SAP | internalPorts+=Port |
-		//externalPorts+=ExternalPort)* "}")?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8'
 		public Group getGroup_8() { return cGroup_8; }
 
-		//"Structure"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.0'
 		public Keyword getStructureKeyword_8_0() { return cStructureKeyword_8_0; }
 
-		//structureDocu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.1'
 		public Assignment getStructureDocuAssignment_8_1() { return cStructureDocuAssignment_8_1; }
 
-		//Documentation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.1/@terminal'
 		public RuleCall getStructureDocuDocumentationParserRuleCall_8_1_0() { return cStructureDocuDocumentationParserRuleCall_8_1_0; }
 
-		//"{"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.2'
 		public Keyword getLeftCurlyBracketKeyword_8_2() { return cLeftCurlyBracketKeyword_8_2; }
 
-		//("usercode1" userCode1=DetailCode)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.3'
 		public Group getGroup_8_3() { return cGroup_8_3; }
 
-		//"usercode1"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.3/@elements.0'
 		public Keyword getUsercode1Keyword_8_3_0() { return cUsercode1Keyword_8_3_0; }
 
-		//userCode1=DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.3/@elements.1'
 		public Assignment getUserCode1Assignment_8_3_1() { return cUserCode1Assignment_8_3_1; }
 
-		//DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.3/@elements.1/@terminal'
 		public RuleCall getUserCode1DetailCodeParserRuleCall_8_3_1_0() { return cUserCode1DetailCodeParserRuleCall_8_3_1_0; }
 
-		//("usercode2" userCode2=DetailCode)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.4'
 		public Group getGroup_8_4() { return cGroup_8_4; }
 
-		//"usercode2"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.4/@elements.0'
 		public Keyword getUsercode2Keyword_8_4_0() { return cUsercode2Keyword_8_4_0; }
 
-		//userCode2=DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.4/@elements.1'
 		public Assignment getUserCode2Assignment_8_4_1() { return cUserCode2Assignment_8_4_1; }
 
-		//DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.4/@elements.1/@terminal'
 		public RuleCall getUserCode2DetailCodeParserRuleCall_8_4_1_0() { return cUserCode2DetailCodeParserRuleCall_8_4_1_0; }
 
-		//("usercode3" userCode3=DetailCode)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.5'
 		public Group getGroup_8_5() { return cGroup_8_5; }
 
-		//"usercode3"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.5/@elements.0'
 		public Keyword getUsercode3Keyword_8_5_0() { return cUsercode3Keyword_8_5_0; }
 
-		//userCode3=DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.5/@elements.1'
 		public Assignment getUserCode3Assignment_8_5_1() { return cUserCode3Assignment_8_5_1; }
 
-		//DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.5/@elements.1/@terminal'
 		public RuleCall getUserCode3DetailCodeParserRuleCall_8_5_1_0() { return cUserCode3DetailCodeParserRuleCall_8_5_1_0; }
 
-		//// workaround: reverse the order for serializer
-		//(connections+=LayerConnection | bindings+=Binding | serviceImplementations+=ServiceImplementation |
-		//attributes+=Attribute | actorRefs+=ActorRef | serviceAccessPoints+=SAP | internalPorts+=Port |
-		//externalPorts+=ExternalPort)*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.6'
 		public Alternatives getAlternatives_8_6() { return cAlternatives_8_6; }
 
-		//// workaround: reverse the order for serializer
-		//connections+=LayerConnection
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.6/@elements.0'
 		public Assignment getConnectionsAssignment_8_6_0() { return cConnectionsAssignment_8_6_0; }
 
-		//LayerConnection
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.6/@elements.0/@terminal'
 		public RuleCall getConnectionsLayerConnectionParserRuleCall_8_6_0_0() { return cConnectionsLayerConnectionParserRuleCall_8_6_0_0; }
 
-		//bindings+=Binding
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.6/@elements.1'
 		public Assignment getBindingsAssignment_8_6_1() { return cBindingsAssignment_8_6_1; }
 
-		//Binding
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.6/@elements.1/@terminal'
 		public RuleCall getBindingsBindingParserRuleCall_8_6_1_0() { return cBindingsBindingParserRuleCall_8_6_1_0; }
 
-		//serviceImplementations+=ServiceImplementation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.6/@elements.2'
 		public Assignment getServiceImplementationsAssignment_8_6_2() { return cServiceImplementationsAssignment_8_6_2; }
 
-		//ServiceImplementation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.6/@elements.2/@terminal'
 		public RuleCall getServiceImplementationsServiceImplementationParserRuleCall_8_6_2_0() { return cServiceImplementationsServiceImplementationParserRuleCall_8_6_2_0; }
 
-		//attributes+=Attribute
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.6/@elements.3'
 		public Assignment getAttributesAssignment_8_6_3() { return cAttributesAssignment_8_6_3; }
 
-		//Attribute
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.6/@elements.3/@terminal'
 		public RuleCall getAttributesAttributeParserRuleCall_8_6_3_0() { return cAttributesAttributeParserRuleCall_8_6_3_0; }
 
-		//actorRefs+=ActorRef
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.6/@elements.4'
 		public Assignment getActorRefsAssignment_8_6_4() { return cActorRefsAssignment_8_6_4; }
 
-		//ActorRef
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.6/@elements.4/@terminal'
 		public RuleCall getActorRefsActorRefParserRuleCall_8_6_4_0() { return cActorRefsActorRefParserRuleCall_8_6_4_0; }
 
-		//serviceAccessPoints+=SAP
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.6/@elements.5'
 		public Assignment getServiceAccessPointsAssignment_8_6_5() { return cServiceAccessPointsAssignment_8_6_5; }
 
-		//SAP
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.6/@elements.5/@terminal'
 		public RuleCall getServiceAccessPointsSAPParserRuleCall_8_6_5_0() { return cServiceAccessPointsSAPParserRuleCall_8_6_5_0; }
 
-		//internalPorts+=Port
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.6/@elements.6'
 		public Assignment getInternalPortsAssignment_8_6_6() { return cInternalPortsAssignment_8_6_6; }
 
-		//Port
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.6/@elements.6/@terminal'
 		public RuleCall getInternalPortsPortParserRuleCall_8_6_6_0() { return cInternalPortsPortParserRuleCall_8_6_6_0; }
 
-		//externalPorts+=ExternalPort
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.6/@elements.7'
 		public Assignment getExternalPortsAssignment_8_6_7() { return cExternalPortsAssignment_8_6_7; }
 
-		//ExternalPort
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.6/@elements.7/@terminal'
 		public RuleCall getExternalPortsExternalPortParserRuleCall_8_6_7_0() { return cExternalPortsExternalPortParserRuleCall_8_6_7_0; }
 
-		//"}"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.8/@elements.7'
 		public Keyword getRightCurlyBracketKeyword_8_7() { return cRightCurlyBracketKeyword_8_7; }
 
-		//("Behavior" behaviorDocu=Documentation? "{" behaviorAnnotations+=Annotation* (operations+=StandardOperation |
-		//structors+=ClassStructor)* stateMachine=StateMachine? "}")?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.9'
 		public Group getGroup_9() { return cGroup_9; }
 
-		//"Behavior"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.9/@elements.0'
 		public Keyword getBehaviorKeyword_9_0() { return cBehaviorKeyword_9_0; }
 
-		//behaviorDocu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.9/@elements.1'
 		public Assignment getBehaviorDocuAssignment_9_1() { return cBehaviorDocuAssignment_9_1; }
 
-		//Documentation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.9/@elements.1/@terminal'
 		public RuleCall getBehaviorDocuDocumentationParserRuleCall_9_1_0() { return cBehaviorDocuDocumentationParserRuleCall_9_1_0; }
 
-		//"{"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.9/@elements.2'
 		public Keyword getLeftCurlyBracketKeyword_9_2() { return cLeftCurlyBracketKeyword_9_2; }
 
-		//behaviorAnnotations+=Annotation*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.9/@elements.3'
 		public Assignment getBehaviorAnnotationsAssignment_9_3() { return cBehaviorAnnotationsAssignment_9_3; }
 
-		//Annotation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.9/@elements.3/@terminal'
 		public RuleCall getBehaviorAnnotationsAnnotationParserRuleCall_9_3_0() { return cBehaviorAnnotationsAnnotationParserRuleCall_9_3_0; }
 
-		//(operations+=StandardOperation | structors+=ClassStructor)*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.9/@elements.4'
 		public Alternatives getAlternatives_9_4() { return cAlternatives_9_4; }
 
-		//operations+=StandardOperation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.9/@elements.4/@elements.0'
 		public Assignment getOperationsAssignment_9_4_0() { return cOperationsAssignment_9_4_0; }
 
-		//StandardOperation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.9/@elements.4/@elements.0/@terminal'
 		public RuleCall getOperationsStandardOperationParserRuleCall_9_4_0_0() { return cOperationsStandardOperationParserRuleCall_9_4_0_0; }
 
-		//structors+=ClassStructor
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.9/@elements.4/@elements.1'
 		public Assignment getStructorsAssignment_9_4_1() { return cStructorsAssignment_9_4_1; }
 
-		//ClassStructor
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.9/@elements.4/@elements.1/@terminal'
 		public RuleCall getStructorsClassStructorParserRuleCall_9_4_1_0() { return cStructorsClassStructorParserRuleCall_9_4_1_0; }
 
-		//stateMachine=StateMachine?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.9/@elements.5'
 		public Assignment getStateMachineAssignment_9_5() { return cStateMachineAssignment_9_5; }
 
-		//StateMachine
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.9/@elements.5/@terminal'
 		public RuleCall getStateMachineStateMachineParserRuleCall_9_5_0() { return cStateMachineStateMachineParserRuleCall_9_5_0; }
 
-		//"}"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.9/@elements.6'
 		public Keyword getRightCurlyBracketKeyword_9_6() { return cRightCurlyBracketKeyword_9_6; }
 
-		//"}"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.29/@alternatives/@elements.10'
 		public Keyword getRightCurlyBracketKeyword_10() { return cRightCurlyBracketKeyword_10; }
 	}
 
@@ -2067,20 +1980,19 @@
 		private final RuleCall cSAPParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
 		private final RuleCall cSPPParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
 		
-		//InterfaceItem:
-		//	Port | SAP | SPP;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/InterfaceItem'
 		public ParserRule getRule() { return rule; }
 
-		//Port | SAP | SPP
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.30/@alternatives'
 		public Alternatives getAlternatives() { return cAlternatives; }
 
-		//Port
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.30/@alternatives/@elements.0'
 		public RuleCall getPortParserRuleCall_0() { return cPortParserRuleCall_0; }
 
-		//SAP
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.30/@alternatives/@elements.1'
 		public RuleCall getSAPParserRuleCall_1() { return cSAPParserRuleCall_1; }
 
-		//SPP
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.30/@alternatives/@elements.2'
 		public RuleCall getSPPParserRuleCall_2() { return cSPPParserRuleCall_2; }
 	}
 
@@ -2101,52 +2013,49 @@
 		private final Assignment cDocuAssignment_6 = (Assignment)cGroup.eContents().get(6);
 		private final RuleCall cDocuDocumentationParserRuleCall_6_0 = (RuleCall)cDocuAssignment_6.eContents().get(0);
 		
-		//Port:
-		//	conjugated?="conjugated"? "Port" name=ID multiplicity=MULTIPLICITY? ":" protocol=[GeneralProtocolClass|FQN]
-		//	docu=Documentation?;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/Port'
 		public ParserRule getRule() { return rule; }
 
-		//conjugated?="conjugated"? "Port" name=ID multiplicity=MULTIPLICITY? ":" protocol=[GeneralProtocolClass|FQN]
-		//docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.31/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//conjugated?="conjugated"?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.31/@alternatives/@elements.0'
 		public Assignment getConjugatedAssignment_0() { return cConjugatedAssignment_0; }
 
-		//"conjugated"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.31/@alternatives/@elements.0/@terminal'
 		public Keyword getConjugatedConjugatedKeyword_0_0() { return cConjugatedConjugatedKeyword_0_0; }
 
-		//"Port"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.31/@alternatives/@elements.1'
 		public Keyword getPortKeyword_1() { return cPortKeyword_1; }
 
-		//name=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.31/@alternatives/@elements.2'
 		public Assignment getNameAssignment_2() { return cNameAssignment_2; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.31/@alternatives/@elements.2/@terminal'
 		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
 
-		//multiplicity=MULTIPLICITY?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.31/@alternatives/@elements.3'
 		public Assignment getMultiplicityAssignment_3() { return cMultiplicityAssignment_3; }
 
-		//MULTIPLICITY
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.31/@alternatives/@elements.3/@terminal'
 		public RuleCall getMultiplicityMULTIPLICITYParserRuleCall_3_0() { return cMultiplicityMULTIPLICITYParserRuleCall_3_0; }
 
-		//":"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.31/@alternatives/@elements.4'
 		public Keyword getColonKeyword_4() { return cColonKeyword_4; }
 
-		//protocol=[GeneralProtocolClass|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.31/@alternatives/@elements.5'
 		public Assignment getProtocolAssignment_5() { return cProtocolAssignment_5; }
 
-		//[GeneralProtocolClass|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.31/@alternatives/@elements.5/@terminal'
 		public CrossReference getProtocolGeneralProtocolClassCrossReference_5_0() { return cProtocolGeneralProtocolClassCrossReference_5_0; }
 
-		//FQN
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.31/@alternatives/@elements.5/@terminal/@terminal'
 		public RuleCall getProtocolGeneralProtocolClassFQNParserRuleCall_5_0_1() { return cProtocolGeneralProtocolClassFQNParserRuleCall_5_0_1; }
 
-		//docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.31/@alternatives/@elements.6'
 		public Assignment getDocuAssignment_6() { return cDocuAssignment_6; }
 
-		//Documentation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.31/@alternatives/@elements.6/@terminal'
 		public RuleCall getDocuDocumentationParserRuleCall_6_0() { return cDocuDocumentationParserRuleCall_6_0; }
 	}
 
@@ -2159,26 +2068,25 @@
 		private final CrossReference cInterfacePortPortCrossReference_2_0 = (CrossReference)cInterfacePortAssignment_2.eContents().get(0);
 		private final RuleCall cInterfacePortPortIDTerminalRuleCall_2_0_1 = (RuleCall)cInterfacePortPortCrossReference_2_0.eContents().get(1);
 		
-		//ExternalPort:
-		//	"external" "Port" interfacePort=[Port];
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ExternalPort'
 		public ParserRule getRule() { return rule; }
 
-		//"external" "Port" interfacePort=[Port]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.32/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//"external"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.32/@alternatives/@elements.0'
 		public Keyword getExternalKeyword_0() { return cExternalKeyword_0; }
 
-		//"Port"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.32/@alternatives/@elements.1'
 		public Keyword getPortKeyword_1() { return cPortKeyword_1; }
 
-		//interfacePort=[Port]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.32/@alternatives/@elements.2'
 		public Assignment getInterfacePortAssignment_2() { return cInterfacePortAssignment_2; }
 
-		//[Port]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.32/@alternatives/@elements.2/@terminal'
 		public CrossReference getInterfacePortPortCrossReference_2_0() { return cInterfacePortPortCrossReference_2_0; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.32/@alternatives/@elements.2/@terminal/@terminal'
 		public RuleCall getInterfacePortPortIDTerminalRuleCall_2_0_1() { return cInterfacePortPortIDTerminalRuleCall_2_0_1; }
 	}
 
@@ -2193,32 +2101,31 @@
 		private final CrossReference cProtocolProtocolClassCrossReference_3_0 = (CrossReference)cProtocolAssignment_3.eContents().get(0);
 		private final RuleCall cProtocolProtocolClassFQNParserRuleCall_3_0_1 = (RuleCall)cProtocolProtocolClassCrossReference_3_0.eContents().get(1);
 		
-		//SAP:
-		//	"SAP" name=ID ":" protocol=[ProtocolClass|FQN];
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/SAP'
 		public ParserRule getRule() { return rule; }
 
-		//"SAP" name=ID ":" protocol=[ProtocolClass|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.33/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//"SAP"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.33/@alternatives/@elements.0'
 		public Keyword getSAPKeyword_0() { return cSAPKeyword_0; }
 
-		//name=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.33/@alternatives/@elements.1'
 		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.33/@alternatives/@elements.1/@terminal'
 		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
 
-		//":"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.33/@alternatives/@elements.2'
 		public Keyword getColonKeyword_2() { return cColonKeyword_2; }
 
-		//protocol=[ProtocolClass|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.33/@alternatives/@elements.3'
 		public Assignment getProtocolAssignment_3() { return cProtocolAssignment_3; }
 
-		//[ProtocolClass|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.33/@alternatives/@elements.3/@terminal'
 		public CrossReference getProtocolProtocolClassCrossReference_3_0() { return cProtocolProtocolClassCrossReference_3_0; }
 
-		//FQN
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.33/@alternatives/@elements.3/@terminal/@terminal'
 		public RuleCall getProtocolProtocolClassFQNParserRuleCall_3_0_1() { return cProtocolProtocolClassFQNParserRuleCall_3_0_1; }
 	}
 
@@ -2233,32 +2140,31 @@
 		private final CrossReference cProtocolProtocolClassCrossReference_3_0 = (CrossReference)cProtocolAssignment_3.eContents().get(0);
 		private final RuleCall cProtocolProtocolClassFQNParserRuleCall_3_0_1 = (RuleCall)cProtocolProtocolClassCrossReference_3_0.eContents().get(1);
 		
-		//SPP:
-		//	"SPP" name=ID ":" protocol=[ProtocolClass|FQN];
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/SPP'
 		public ParserRule getRule() { return rule; }
 
-		//"SPP" name=ID ":" protocol=[ProtocolClass|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.34/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//"SPP"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.34/@alternatives/@elements.0'
 		public Keyword getSPPKeyword_0() { return cSPPKeyword_0; }
 
-		//name=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.34/@alternatives/@elements.1'
 		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.34/@alternatives/@elements.1/@terminal'
 		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
 
-		//":"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.34/@alternatives/@elements.2'
 		public Keyword getColonKeyword_2() { return cColonKeyword_2; }
 
-		//protocol=[ProtocolClass|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.34/@alternatives/@elements.3'
 		public Assignment getProtocolAssignment_3() { return cProtocolAssignment_3; }
 
-		//[ProtocolClass|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.34/@alternatives/@elements.3/@terminal'
 		public CrossReference getProtocolProtocolClassCrossReference_3_0() { return cProtocolProtocolClassCrossReference_3_0; }
 
-		//FQN
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.34/@alternatives/@elements.3/@terminal/@terminal'
 		public RuleCall getProtocolProtocolClassFQNParserRuleCall_3_0_1() { return cProtocolProtocolClassFQNParserRuleCall_3_0_1; }
 	}
 
@@ -2271,26 +2177,25 @@
 		private final CrossReference cSppSPPCrossReference_2_0 = (CrossReference)cSppAssignment_2.eContents().get(0);
 		private final RuleCall cSppSPPIDTerminalRuleCall_2_0_1 = (RuleCall)cSppSPPCrossReference_2_0.eContents().get(1);
 		
-		//ServiceImplementation:
-		//	"ServiceImplementation" "of" spp=[SPP];
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ServiceImplementation'
 		public ParserRule getRule() { return rule; }
 
-		//"ServiceImplementation" "of" spp=[SPP]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.35/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//"ServiceImplementation"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.35/@alternatives/@elements.0'
 		public Keyword getServiceImplementationKeyword_0() { return cServiceImplementationKeyword_0; }
 
-		//"of"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.35/@alternatives/@elements.1'
 		public Keyword getOfKeyword_1() { return cOfKeyword_1; }
 
-		//spp=[SPP]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.35/@alternatives/@elements.2'
 		public Assignment getSppAssignment_2() { return cSppAssignment_2; }
 
-		//[SPP]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.35/@alternatives/@elements.2/@terminal'
 		public CrossReference getSppSPPCrossReference_2_0() { return cSppSPPCrossReference_2_0; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.35/@alternatives/@elements.2/@terminal/@terminal'
 		public RuleCall getSppSPPIDTerminalRuleCall_2_0_1() { return cSppSPPIDTerminalRuleCall_2_0_1; }
 	}
 
@@ -2314,61 +2219,58 @@
 		private final RuleCall cSubSystemsSubSystemRefParserRuleCall_5_2_0 = (RuleCall)cSubSystemsAssignment_5_2.eContents().get(0);
 		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
 		
-		//LogicalSystem:
-		//	"LogicalSystem" name=ID docu=Documentation? "{" annotations+=Annotation* (connections+=LayerConnection |
-		//	bindings+=Binding | subSystems+=SubSystemRef)* "}";
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/LogicalSystem'
 		public ParserRule getRule() { return rule; }
 
-		//"LogicalSystem" name=ID docu=Documentation? "{" annotations+=Annotation* (connections+=LayerConnection |
-		//bindings+=Binding | subSystems+=SubSystemRef)* "}"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.36/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//"LogicalSystem"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.36/@alternatives/@elements.0'
 		public Keyword getLogicalSystemKeyword_0() { return cLogicalSystemKeyword_0; }
 
-		//name=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.36/@alternatives/@elements.1'
 		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.36/@alternatives/@elements.1/@terminal'
 		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
 
-		//docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.36/@alternatives/@elements.2'
 		public Assignment getDocuAssignment_2() { return cDocuAssignment_2; }
 
-		//Documentation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.36/@alternatives/@elements.2/@terminal'
 		public RuleCall getDocuDocumentationParserRuleCall_2_0() { return cDocuDocumentationParserRuleCall_2_0; }
 
-		//"{"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.36/@alternatives/@elements.3'
 		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
 
-		//annotations+=Annotation*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.36/@alternatives/@elements.4'
 		public Assignment getAnnotationsAssignment_4() { return cAnnotationsAssignment_4; }
 
-		//Annotation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.36/@alternatives/@elements.4/@terminal'
 		public RuleCall getAnnotationsAnnotationParserRuleCall_4_0() { return cAnnotationsAnnotationParserRuleCall_4_0; }
 
-		//(connections+=LayerConnection | bindings+=Binding | subSystems+=SubSystemRef)*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.36/@alternatives/@elements.5'
 		public Alternatives getAlternatives_5() { return cAlternatives_5; }
 
-		//connections+=LayerConnection
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.36/@alternatives/@elements.5/@elements.0'
 		public Assignment getConnectionsAssignment_5_0() { return cConnectionsAssignment_5_0; }
 
-		//LayerConnection
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.36/@alternatives/@elements.5/@elements.0/@terminal'
 		public RuleCall getConnectionsLayerConnectionParserRuleCall_5_0_0() { return cConnectionsLayerConnectionParserRuleCall_5_0_0; }
 
-		//bindings+=Binding
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.36/@alternatives/@elements.5/@elements.1'
 		public Assignment getBindingsAssignment_5_1() { return cBindingsAssignment_5_1; }
 
-		//Binding
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.36/@alternatives/@elements.5/@elements.1/@terminal'
 		public RuleCall getBindingsBindingParserRuleCall_5_1_0() { return cBindingsBindingParserRuleCall_5_1_0; }
 
-		//subSystems+=SubSystemRef
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.36/@alternatives/@elements.5/@elements.2'
 		public Assignment getSubSystemsAssignment_5_2() { return cSubSystemsAssignment_5_2; }
 
-		//SubSystemRef
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.36/@alternatives/@elements.5/@elements.2/@terminal'
 		public RuleCall getSubSystemsSubSystemRefParserRuleCall_5_2_0() { return cSubSystemsSubSystemRefParserRuleCall_5_2_0; }
 
-		//"}"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.36/@alternatives/@elements.6'
 		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
 	}
 
@@ -2378,17 +2280,16 @@
 		private final RuleCall cSubSystemRefParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
 		private final RuleCall cActorRefParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
 		
-		//ActorContainerRef:
-		//	SubSystemRef | ActorRef;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ActorContainerRef'
 		public ParserRule getRule() { return rule; }
 
-		//SubSystemRef | ActorRef
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.37/@alternatives'
 		public Alternatives getAlternatives() { return cAlternatives; }
 
-		//SubSystemRef
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.37/@alternatives/@elements.0'
 		public RuleCall getSubSystemRefParserRuleCall_0() { return cSubSystemRefParserRuleCall_0; }
 
-		//ActorRef
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.37/@alternatives/@elements.1'
 		public RuleCall getActorRefParserRuleCall_1() { return cActorRefParserRuleCall_1; }
 	}
 
@@ -2405,38 +2306,37 @@
 		private final Assignment cDocuAssignment_4 = (Assignment)cGroup.eContents().get(4);
 		private final RuleCall cDocuDocumentationParserRuleCall_4_0 = (RuleCall)cDocuAssignment_4.eContents().get(0);
 		
-		//SubSystemRef:
-		//	"SubSystemRef" name=ID ":" type=[SubSystemClass|FQN] docu=Documentation?;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/SubSystemRef'
 		public ParserRule getRule() { return rule; }
 
-		//"SubSystemRef" name=ID ":" type=[SubSystemClass|FQN] docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.38/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//"SubSystemRef"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.38/@alternatives/@elements.0'
 		public Keyword getSubSystemRefKeyword_0() { return cSubSystemRefKeyword_0; }
 
-		//name=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.38/@alternatives/@elements.1'
 		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.38/@alternatives/@elements.1/@terminal'
 		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
 
-		//":"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.38/@alternatives/@elements.2'
 		public Keyword getColonKeyword_2() { return cColonKeyword_2; }
 
-		//type=[SubSystemClass|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.38/@alternatives/@elements.3'
 		public Assignment getTypeAssignment_3() { return cTypeAssignment_3; }
 
-		//[SubSystemClass|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.38/@alternatives/@elements.3/@terminal'
 		public CrossReference getTypeSubSystemClassCrossReference_3_0() { return cTypeSubSystemClassCrossReference_3_0; }
 
-		//FQN
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.38/@alternatives/@elements.3/@terminal/@terminal'
 		public RuleCall getTypeSubSystemClassFQNParserRuleCall_3_0_1() { return cTypeSubSystemClassFQNParserRuleCall_3_0_1; }
 
-		//docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.38/@alternatives/@elements.4'
 		public Assignment getDocuAssignment_4() { return cDocuAssignment_4; }
 
-		//Documentation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.38/@alternatives/@elements.4/@terminal'
 		public RuleCall getDocuDocumentationParserRuleCall_4_0() { return cDocuDocumentationParserRuleCall_4_0; }
 	}
 
@@ -2480,128 +2380,118 @@
 		private final RuleCall cRelayPortsPortParserRuleCall_8_6_0 = (RuleCall)cRelayPortsAssignment_8_6.eContents().get(0);
 		private final Keyword cRightCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9);
 		
-		//SubSystemClass:
-		//	"SubSystemClass" name=ID docu=Documentation? "{" annotations+=Annotation* ("usercode1" userCode1=DetailCode)?
-		//	("usercode2" userCode2=DetailCode)? ("usercode3" userCode3=DetailCode)? // workaround: reverse the order for serializer
-		//	(actorInstanceMappings+=ActorInstanceMapping | threads+=LogicalThread | connections+=LayerConnection |
-		//	bindings+=Binding | actorRefs+=ActorRef | serviceProvisionPoints+=SPP | relayPorts+=Port)* "}";
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/SubSystemClass'
 		public ParserRule getRule() { return rule; }
 
-		//"SubSystemClass" name=ID docu=Documentation? "{" annotations+=Annotation* ("usercode1" userCode1=DetailCode)?
-		//("usercode2" userCode2=DetailCode)? ("usercode3" userCode3=DetailCode)? // workaround: reverse the order for serializer
-		//(actorInstanceMappings+=ActorInstanceMapping | threads+=LogicalThread | connections+=LayerConnection | bindings+=Binding
-		//| actorRefs+=ActorRef | serviceProvisionPoints+=SPP | relayPorts+=Port)* "}"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//"SubSystemClass"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.0'
 		public Keyword getSubSystemClassKeyword_0() { return cSubSystemClassKeyword_0; }
 
-		//name=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.1'
 		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.1/@terminal'
 		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
 
-		//docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.2'
 		public Assignment getDocuAssignment_2() { return cDocuAssignment_2; }
 
-		//Documentation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.2/@terminal'
 		public RuleCall getDocuDocumentationParserRuleCall_2_0() { return cDocuDocumentationParserRuleCall_2_0; }
 
-		//"{"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.3'
 		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
 
-		//annotations+=Annotation*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.4'
 		public Assignment getAnnotationsAssignment_4() { return cAnnotationsAssignment_4; }
 
-		//Annotation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.4/@terminal'
 		public RuleCall getAnnotationsAnnotationParserRuleCall_4_0() { return cAnnotationsAnnotationParserRuleCall_4_0; }
 
-		//("usercode1" userCode1=DetailCode)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.5'
 		public Group getGroup_5() { return cGroup_5; }
 
-		//"usercode1"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.5/@elements.0'
 		public Keyword getUsercode1Keyword_5_0() { return cUsercode1Keyword_5_0; }
 
-		//userCode1=DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.5/@elements.1'
 		public Assignment getUserCode1Assignment_5_1() { return cUserCode1Assignment_5_1; }
 
-		//DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.5/@elements.1/@terminal'
 		public RuleCall getUserCode1DetailCodeParserRuleCall_5_1_0() { return cUserCode1DetailCodeParserRuleCall_5_1_0; }
 
-		//("usercode2" userCode2=DetailCode)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.6'
 		public Group getGroup_6() { return cGroup_6; }
 
-		//"usercode2"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.6/@elements.0'
 		public Keyword getUsercode2Keyword_6_0() { return cUsercode2Keyword_6_0; }
 
-		//userCode2=DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.6/@elements.1'
 		public Assignment getUserCode2Assignment_6_1() { return cUserCode2Assignment_6_1; }
 
-		//DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.6/@elements.1/@terminal'
 		public RuleCall getUserCode2DetailCodeParserRuleCall_6_1_0() { return cUserCode2DetailCodeParserRuleCall_6_1_0; }
 
-		//("usercode3" userCode3=DetailCode)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.7'
 		public Group getGroup_7() { return cGroup_7; }
 
-		//"usercode3"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.7/@elements.0'
 		public Keyword getUsercode3Keyword_7_0() { return cUsercode3Keyword_7_0; }
 
-		//userCode3=DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.7/@elements.1'
 		public Assignment getUserCode3Assignment_7_1() { return cUserCode3Assignment_7_1; }
 
-		//DetailCode
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.7/@elements.1/@terminal'
 		public RuleCall getUserCode3DetailCodeParserRuleCall_7_1_0() { return cUserCode3DetailCodeParserRuleCall_7_1_0; }
 
-		//// workaround: reverse the order for serializer
-		//(actorInstanceMappings+=ActorInstanceMapping | threads+=LogicalThread | connections+=LayerConnection | bindings+=Binding
-		//| actorRefs+=ActorRef | serviceProvisionPoints+=SPP | relayPorts+=Port)*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.8'
 		public Alternatives getAlternatives_8() { return cAlternatives_8; }
 
-		//// workaround: reverse the order for serializer
-		//actorInstanceMappings+=ActorInstanceMapping
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.8/@elements.0'
 		public Assignment getActorInstanceMappingsAssignment_8_0() { return cActorInstanceMappingsAssignment_8_0; }
 
-		//ActorInstanceMapping
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.8/@elements.0/@terminal'
 		public RuleCall getActorInstanceMappingsActorInstanceMappingParserRuleCall_8_0_0() { return cActorInstanceMappingsActorInstanceMappingParserRuleCall_8_0_0; }
 
-		//threads+=LogicalThread
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.8/@elements.1'
 		public Assignment getThreadsAssignment_8_1() { return cThreadsAssignment_8_1; }
 
-		//LogicalThread
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.8/@elements.1/@terminal'
 		public RuleCall getThreadsLogicalThreadParserRuleCall_8_1_0() { return cThreadsLogicalThreadParserRuleCall_8_1_0; }
 
-		//connections+=LayerConnection
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.8/@elements.2'
 		public Assignment getConnectionsAssignment_8_2() { return cConnectionsAssignment_8_2; }
 
-		//LayerConnection
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.8/@elements.2/@terminal'
 		public RuleCall getConnectionsLayerConnectionParserRuleCall_8_2_0() { return cConnectionsLayerConnectionParserRuleCall_8_2_0; }
 
-		//bindings+=Binding
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.8/@elements.3'
 		public Assignment getBindingsAssignment_8_3() { return cBindingsAssignment_8_3; }
 
-		//Binding
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.8/@elements.3/@terminal'
 		public RuleCall getBindingsBindingParserRuleCall_8_3_0() { return cBindingsBindingParserRuleCall_8_3_0; }
 
-		//actorRefs+=ActorRef
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.8/@elements.4'
 		public Assignment getActorRefsAssignment_8_4() { return cActorRefsAssignment_8_4; }
 
-		//ActorRef
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.8/@elements.4/@terminal'
 		public RuleCall getActorRefsActorRefParserRuleCall_8_4_0() { return cActorRefsActorRefParserRuleCall_8_4_0; }
 
-		//serviceProvisionPoints+=SPP
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.8/@elements.5'
 		public Assignment getServiceProvisionPointsAssignment_8_5() { return cServiceProvisionPointsAssignment_8_5; }
 
-		//SPP
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.8/@elements.5/@terminal'
 		public RuleCall getServiceProvisionPointsSPPParserRuleCall_8_5_0() { return cServiceProvisionPointsSPPParserRuleCall_8_5_0; }
 
-		//relayPorts+=Port
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.8/@elements.6'
 		public Assignment getRelayPortsAssignment_8_6() { return cRelayPortsAssignment_8_6; }
 
-		//Port
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.8/@elements.6/@terminal'
 		public RuleCall getRelayPortsPortParserRuleCall_8_6_0() { return cRelayPortsPortParserRuleCall_8_6_0; }
 
-		//"}"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.39/@alternatives/@elements.9'
 		public Keyword getRightCurlyBracketKeyword_9() { return cRightCurlyBracketKeyword_9; }
 	}
 
@@ -2612,20 +2502,19 @@
 		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
 		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
 		
-		//LogicalThread:
-		//	"LogicalThread" name=ID;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/LogicalThread'
 		public ParserRule getRule() { return rule; }
 
-		//"LogicalThread" name=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.40/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//"LogicalThread"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.40/@alternatives/@elements.0'
 		public Keyword getLogicalThreadKeyword_0() { return cLogicalThreadKeyword_0; }
 
-		//name=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.40/@alternatives/@elements.1'
 		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.40/@alternatives/@elements.1/@terminal'
 		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
 	}
 
@@ -2645,48 +2534,46 @@
 		private final RuleCall cActorInstanceMappingsActorInstanceMappingParserRuleCall_4_1_0 = (RuleCall)cActorInstanceMappingsAssignment_4_1.eContents().get(0);
 		private final Keyword cRightCurlyBracketKeyword_4_2 = (Keyword)cGroup_4.eContents().get(2);
 		
-		//ActorInstanceMapping:
-		//	"ActorInstanceMapping" path=RefPath "->" thread=[LogicalThread] ("{" actorInstanceMappings+=ActorInstanceMapping*
-		//	"}")?;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ActorInstanceMapping'
 		public ParserRule getRule() { return rule; }
 
-		//"ActorInstanceMapping" path=RefPath "->" thread=[LogicalThread] ("{" actorInstanceMappings+=ActorInstanceMapping* "}")?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.41/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//"ActorInstanceMapping"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.41/@alternatives/@elements.0'
 		public Keyword getActorInstanceMappingKeyword_0() { return cActorInstanceMappingKeyword_0; }
 
-		//path=RefPath
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.41/@alternatives/@elements.1'
 		public Assignment getPathAssignment_1() { return cPathAssignment_1; }
 
-		//RefPath
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.41/@alternatives/@elements.1/@terminal'
 		public RuleCall getPathRefPathParserRuleCall_1_0() { return cPathRefPathParserRuleCall_1_0; }
 
-		//"->"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.41/@alternatives/@elements.2'
 		public Keyword getHyphenMinusGreaterThanSignKeyword_2() { return cHyphenMinusGreaterThanSignKeyword_2; }
 
-		//thread=[LogicalThread]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.41/@alternatives/@elements.3'
 		public Assignment getThreadAssignment_3() { return cThreadAssignment_3; }
 
-		//[LogicalThread]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.41/@alternatives/@elements.3/@terminal'
 		public CrossReference getThreadLogicalThreadCrossReference_3_0() { return cThreadLogicalThreadCrossReference_3_0; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.41/@alternatives/@elements.3/@terminal/@terminal'
 		public RuleCall getThreadLogicalThreadIDTerminalRuleCall_3_0_1() { return cThreadLogicalThreadIDTerminalRuleCall_3_0_1; }
 
-		//("{" actorInstanceMappings+=ActorInstanceMapping* "}")?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.41/@alternatives/@elements.4'
 		public Group getGroup_4() { return cGroup_4; }
 
-		//"{"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.41/@alternatives/@elements.4/@elements.0'
 		public Keyword getLeftCurlyBracketKeyword_4_0() { return cLeftCurlyBracketKeyword_4_0; }
 
-		//actorInstanceMappings+=ActorInstanceMapping*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.41/@alternatives/@elements.4/@elements.1'
 		public Assignment getActorInstanceMappingsAssignment_4_1() { return cActorInstanceMappingsAssignment_4_1; }
 
-		//ActorInstanceMapping
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.41/@alternatives/@elements.4/@elements.1/@terminal'
 		public RuleCall getActorInstanceMappingsActorInstanceMappingParserRuleCall_4_1_0() { return cActorInstanceMappingsActorInstanceMappingParserRuleCall_4_1_0; }
 
-		//"}"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.41/@alternatives/@elements.4/@elements.2'
 		public Keyword getRightCurlyBracketKeyword_4_2() { return cRightCurlyBracketKeyword_4_2; }
 	}
 
@@ -2700,29 +2587,28 @@
 		private final Assignment cRefsAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
 		private final RuleCall cRefsRefSegmentParserRuleCall_1_1_0 = (RuleCall)cRefsAssignment_1_1.eContents().get(0);
 		
-		//RefPath:
-		//	refs+=RefSegment ("/" refs+=RefSegment)*;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/RefPath'
 		public ParserRule getRule() { return rule; }
 
-		//refs+=RefSegment ("/" refs+=RefSegment)*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.42/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//refs+=RefSegment
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.42/@alternatives/@elements.0'
 		public Assignment getRefsAssignment_0() { return cRefsAssignment_0; }
 
-		//RefSegment
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.42/@alternatives/@elements.0/@terminal'
 		public RuleCall getRefsRefSegmentParserRuleCall_0_0() { return cRefsRefSegmentParserRuleCall_0_0; }
 
-		//("/" refs+=RefSegment)*
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.42/@alternatives/@elements.1'
 		public Group getGroup_1() { return cGroup_1; }
 
-		//"/"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.42/@alternatives/@elements.1/@elements.0'
 		public Keyword getSolidusKeyword_1_0() { return cSolidusKeyword_1_0; }
 
-		//refs+=RefSegment
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.42/@alternatives/@elements.1/@elements.1'
 		public Assignment getRefsAssignment_1_1() { return cRefsAssignment_1_1; }
 
-		//RefSegment
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.42/@alternatives/@elements.1/@elements.1/@terminal'
 		public RuleCall getRefsRefSegmentParserRuleCall_1_1_0() { return cRefsRefSegmentParserRuleCall_1_1_0; }
 	}
 
@@ -2736,29 +2622,28 @@
 		private final Assignment cIdxAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
 		private final RuleCall cIdxINTTerminalRuleCall_1_1_0 = (RuleCall)cIdxAssignment_1_1.eContents().get(0);
 		
-		//RefSegment:
-		//	ref=ID (":" idx=INT)?;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/RefSegment'
 		public ParserRule getRule() { return rule; }
 
-		//ref=ID (":" idx=INT)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.43/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//ref=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.43/@alternatives/@elements.0'
 		public Assignment getRefAssignment_0() { return cRefAssignment_0; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.43/@alternatives/@elements.0/@terminal'
 		public RuleCall getRefIDTerminalRuleCall_0_0() { return cRefIDTerminalRuleCall_0_0; }
 
-		//(":" idx=INT)?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.43/@alternatives/@elements.1'
 		public Group getGroup_1() { return cGroup_1; }
 
-		//":"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.43/@alternatives/@elements.1/@elements.0'
 		public Keyword getColonKeyword_1_0() { return cColonKeyword_1_0; }
 
-		//idx=INT
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.43/@alternatives/@elements.1/@elements.1'
 		public Assignment getIdxAssignment_1_1() { return cIdxAssignment_1_1; }
 
-		//INT
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.43/@alternatives/@elements.1/@elements.1/@terminal'
 		public RuleCall getIdxINTTerminalRuleCall_1_1_0() { return cIdxINTTerminalRuleCall_1_1_0; }
 	}
 
@@ -2772,29 +2657,28 @@
 		private final Assignment cEndpoint2Assignment_3 = (Assignment)cGroup.eContents().get(3);
 		private final RuleCall cEndpoint2BindingEndPointParserRuleCall_3_0 = (RuleCall)cEndpoint2Assignment_3.eContents().get(0);
 		
-		//Binding:
-		//	"Binding" endpoint1=BindingEndPoint "and" endpoint2=BindingEndPoint;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/Binding'
 		public ParserRule getRule() { return rule; }
 
-		//"Binding" endpoint1=BindingEndPoint "and" endpoint2=BindingEndPoint
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.44/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//"Binding"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.44/@alternatives/@elements.0'
 		public Keyword getBindingKeyword_0() { return cBindingKeyword_0; }
 
-		//endpoint1=BindingEndPoint
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.44/@alternatives/@elements.1'
 		public Assignment getEndpoint1Assignment_1() { return cEndpoint1Assignment_1; }
 
-		//BindingEndPoint
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.44/@alternatives/@elements.1/@terminal'
 		public RuleCall getEndpoint1BindingEndPointParserRuleCall_1_0() { return cEndpoint1BindingEndPointParserRuleCall_1_0; }
 
-		//"and"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.44/@alternatives/@elements.2'
 		public Keyword getAndKeyword_2() { return cAndKeyword_2; }
 
-		//endpoint2=BindingEndPoint
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.44/@alternatives/@elements.3'
 		public Assignment getEndpoint2Assignment_3() { return cEndpoint2Assignment_3; }
 
-		//BindingEndPoint
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.44/@alternatives/@elements.3/@terminal'
 		public RuleCall getEndpoint2BindingEndPointParserRuleCall_3_0() { return cEndpoint2BindingEndPointParserRuleCall_3_0; }
 	}
 
@@ -2815,50 +2699,49 @@
 		private final CrossReference cSubSubProtocolCrossReference_2_1_0 = (CrossReference)cSubAssignment_2_1.eContents().get(0);
 		private final RuleCall cSubSubProtocolIDTerminalRuleCall_2_1_0_1 = (RuleCall)cSubSubProtocolCrossReference_2_1_0.eContents().get(1);
 		
-		//BindingEndPoint:
-		//	(actorRef=[ActorContainerRef] ".")? port=[Port] ("sub" sub=[SubProtocol])?;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/BindingEndPoint'
 		public ParserRule getRule() { return rule; }
 
-		//(actorRef=[ActorContainerRef] ".")? port=[Port] ("sub" sub=[SubProtocol])?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.45/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//(actorRef=[ActorContainerRef] ".")?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.45/@alternatives/@elements.0'
 		public Group getGroup_0() { return cGroup_0; }
 
-		//actorRef=[ActorContainerRef]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.45/@alternatives/@elements.0/@elements.0'
 		public Assignment getActorRefAssignment_0_0() { return cActorRefAssignment_0_0; }
 
-		//[ActorContainerRef]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.45/@alternatives/@elements.0/@elements.0/@terminal'
 		public CrossReference getActorRefActorContainerRefCrossReference_0_0_0() { return cActorRefActorContainerRefCrossReference_0_0_0; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.45/@alternatives/@elements.0/@elements.0/@terminal/@terminal'
 		public RuleCall getActorRefActorContainerRefIDTerminalRuleCall_0_0_0_1() { return cActorRefActorContainerRefIDTerminalRuleCall_0_0_0_1; }
 
-		//"."
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.45/@alternatives/@elements.0/@elements.1'
 		public Keyword getFullStopKeyword_0_1() { return cFullStopKeyword_0_1; }
 
-		//port=[Port]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.45/@alternatives/@elements.1'
 		public Assignment getPortAssignment_1() { return cPortAssignment_1; }
 
-		//[Port]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.45/@alternatives/@elements.1/@terminal'
 		public CrossReference getPortPortCrossReference_1_0() { return cPortPortCrossReference_1_0; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.45/@alternatives/@elements.1/@terminal/@terminal'
 		public RuleCall getPortPortIDTerminalRuleCall_1_0_1() { return cPortPortIDTerminalRuleCall_1_0_1; }
 
-		//("sub" sub=[SubProtocol])?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.45/@alternatives/@elements.2'
 		public Group getGroup_2() { return cGroup_2; }
 
-		//"sub"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.45/@alternatives/@elements.2/@elements.0'
 		public Keyword getSubKeyword_2_0() { return cSubKeyword_2_0; }
 
-		//sub=[SubProtocol]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.45/@alternatives/@elements.2/@elements.1'
 		public Assignment getSubAssignment_2_1() { return cSubAssignment_2_1; }
 
-		//[SubProtocol]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.45/@alternatives/@elements.2/@elements.1/@terminal'
 		public CrossReference getSubSubProtocolCrossReference_2_1_0() { return cSubSubProtocolCrossReference_2_1_0; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.45/@alternatives/@elements.2/@elements.1/@terminal/@terminal'
 		public RuleCall getSubSubProtocolIDTerminalRuleCall_2_1_0_1() { return cSubSubProtocolIDTerminalRuleCall_2_1_0_1; }
 	}
 
@@ -2872,29 +2755,28 @@
 		private final Assignment cToAssignment_3 = (Assignment)cGroup.eContents().get(3);
 		private final RuleCall cToSPPointParserRuleCall_3_0 = (RuleCall)cToAssignment_3.eContents().get(0);
 		
-		//LayerConnection:
-		//	"LayerConnection" from=SAPoint "satisfied_by" to=SPPoint;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/LayerConnection'
 		public ParserRule getRule() { return rule; }
 
-		//"LayerConnection" from=SAPoint "satisfied_by" to=SPPoint
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.46/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//"LayerConnection"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.46/@alternatives/@elements.0'
 		public Keyword getLayerConnectionKeyword_0() { return cLayerConnectionKeyword_0; }
 
-		//from=SAPoint
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.46/@alternatives/@elements.1'
 		public Assignment getFromAssignment_1() { return cFromAssignment_1; }
 
-		//SAPoint
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.46/@alternatives/@elements.1/@terminal'
 		public RuleCall getFromSAPointParserRuleCall_1_0() { return cFromSAPointParserRuleCall_1_0; }
 
-		//"satisfied_by"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.46/@alternatives/@elements.2'
 		public Keyword getSatisfied_byKeyword_2() { return cSatisfied_byKeyword_2; }
 
-		//to=SPPoint
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.46/@alternatives/@elements.3'
 		public Assignment getToAssignment_3() { return cToAssignment_3; }
 
-		//SPPoint
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.46/@alternatives/@elements.3/@terminal'
 		public RuleCall getToSPPointParserRuleCall_3_0() { return cToSPPointParserRuleCall_3_0; }
 	}
 
@@ -2904,17 +2786,16 @@
 		private final RuleCall cRefSAPointParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
 		private final RuleCall cRelaySAPointParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
 		
-		//SAPoint:
-		//	RefSAPoint | RelaySAPoint;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/SAPoint'
 		public ParserRule getRule() { return rule; }
 
-		//RefSAPoint | RelaySAPoint
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.47/@alternatives'
 		public Alternatives getAlternatives() { return cAlternatives; }
 
-		//RefSAPoint
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.47/@alternatives/@elements.0'
 		public RuleCall getRefSAPointParserRuleCall_0() { return cRefSAPointParserRuleCall_0; }
 
-		//RelaySAPoint
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.47/@alternatives/@elements.1'
 		public RuleCall getRelaySAPointParserRuleCall_1() { return cRelaySAPointParserRuleCall_1; }
 	}
 
@@ -2926,25 +2807,22 @@
 		private final CrossReference cRefActorContainerRefCrossReference_1_0 = (CrossReference)cRefAssignment_1.eContents().get(0);
 		private final RuleCall cRefActorContainerRefIDTerminalRuleCall_1_0_1 = (RuleCall)cRefActorContainerRefCrossReference_1_0.eContents().get(1);
 		
-		//RefSAPoint: // satisfies a sub actor
-		//	"ref" ref=[ActorContainerRef];
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/RefSAPoint'
 		public ParserRule getRule() { return rule; }
 
-		//// satisfies a sub actor
-		//"ref" ref=[ActorContainerRef]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.48/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//// satisfies a sub actor
-		//"ref"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.48/@alternatives/@elements.0'
 		public Keyword getRefKeyword_0() { return cRefKeyword_0; }
 
-		//ref=[ActorContainerRef]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.48/@alternatives/@elements.1'
 		public Assignment getRefAssignment_1() { return cRefAssignment_1; }
 
-		//[ActorContainerRef]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.48/@alternatives/@elements.1/@terminal'
 		public CrossReference getRefActorContainerRefCrossReference_1_0() { return cRefActorContainerRefCrossReference_1_0; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.48/@alternatives/@elements.1/@terminal/@terminal'
 		public RuleCall getRefActorContainerRefIDTerminalRuleCall_1_0_1() { return cRefActorContainerRefIDTerminalRuleCall_1_0_1; }
 	}
 
@@ -2956,25 +2834,22 @@
 		private final CrossReference cRelaySPPCrossReference_1_0 = (CrossReference)cRelayAssignment_1.eContents().get(0);
 		private final RuleCall cRelaySPPIDTerminalRuleCall_1_0_1 = (RuleCall)cRelaySPPCrossReference_1_0.eContents().get(1);
 		
-		//RelaySAPoint: // relays from own interface
-		//	"relay_sap" relay=[SPP];
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/RelaySAPoint'
 		public ParserRule getRule() { return rule; }
 
-		//// relays from own interface
-		//"relay_sap" relay=[SPP]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.49/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//// relays from own interface
-		//"relay_sap"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.49/@alternatives/@elements.0'
 		public Keyword getRelay_sapKeyword_0() { return cRelay_sapKeyword_0; }
 
-		//relay=[SPP]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.49/@alternatives/@elements.1'
 		public Assignment getRelayAssignment_1() { return cRelayAssignment_1; }
 
-		//[SPP]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.49/@alternatives/@elements.1/@terminal'
 		public CrossReference getRelaySPPCrossReference_1_0() { return cRelaySPPCrossReference_1_0; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.49/@alternatives/@elements.1/@terminal/@terminal'
 		public RuleCall getRelaySPPIDTerminalRuleCall_1_0_1() { return cRelaySPPIDTerminalRuleCall_1_0_1; }
 	}
 
@@ -2989,32 +2864,31 @@
 		private final CrossReference cServiceSPPCrossReference_2_0 = (CrossReference)cServiceAssignment_2.eContents().get(0);
 		private final RuleCall cServiceSPPIDTerminalRuleCall_2_0_1 = (RuleCall)cServiceSPPCrossReference_2_0.eContents().get(1);
 		
-		//SPPoint:
-		//	ref=[ActorContainerRef] "." service=[SPP];
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/SPPoint'
 		public ParserRule getRule() { return rule; }
 
-		//ref=[ActorContainerRef] "." service=[SPP]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.50/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//ref=[ActorContainerRef]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.50/@alternatives/@elements.0'
 		public Assignment getRefAssignment_0() { return cRefAssignment_0; }
 
-		//[ActorContainerRef]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.50/@alternatives/@elements.0/@terminal'
 		public CrossReference getRefActorContainerRefCrossReference_0_0() { return cRefActorContainerRefCrossReference_0_0; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.50/@alternatives/@elements.0/@terminal/@terminal'
 		public RuleCall getRefActorContainerRefIDTerminalRuleCall_0_0_1() { return cRefActorContainerRefIDTerminalRuleCall_0_0_1; }
 
-		//"."
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.50/@alternatives/@elements.1'
 		public Keyword getFullStopKeyword_1() { return cFullStopKeyword_1; }
 
-		//service=[SPP]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.50/@alternatives/@elements.2'
 		public Assignment getServiceAssignment_2() { return cServiceAssignment_2; }
 
-		//[SPP]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.50/@alternatives/@elements.2/@terminal'
 		public CrossReference getServiceSPPCrossReference_2_0() { return cServiceSPPCrossReference_2_0; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.50/@alternatives/@elements.2/@terminal/@terminal'
 		public RuleCall getServiceSPPIDTerminalRuleCall_2_0_1() { return cServiceSPPIDTerminalRuleCall_2_0_1; }
 	}
 
@@ -3035,50 +2909,49 @@
 		private final Assignment cDocuAssignment_6 = (Assignment)cGroup.eContents().get(6);
 		private final RuleCall cDocuDocumentationParserRuleCall_6_0 = (RuleCall)cDocuAssignment_6.eContents().get(0);
 		
-		//ActorRef:
-		//	refType=ReferenceType? "ActorRef" name=ID multiplicity=MULTIPLICITY? ":" type=[ActorClass|FQN] docu=Documentation?;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ActorRef'
 		public ParserRule getRule() { return rule; }
 
-		//refType=ReferenceType? "ActorRef" name=ID multiplicity=MULTIPLICITY? ":" type=[ActorClass|FQN] docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.51/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//refType=ReferenceType?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.51/@alternatives/@elements.0'
 		public Assignment getRefTypeAssignment_0() { return cRefTypeAssignment_0; }
 
-		//ReferenceType
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.51/@alternatives/@elements.0/@terminal'
 		public RuleCall getRefTypeReferenceTypeEnumRuleCall_0_0() { return cRefTypeReferenceTypeEnumRuleCall_0_0; }
 
-		//"ActorRef"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.51/@alternatives/@elements.1'
 		public Keyword getActorRefKeyword_1() { return cActorRefKeyword_1; }
 
-		//name=ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.51/@alternatives/@elements.2'
 		public Assignment getNameAssignment_2() { return cNameAssignment_2; }
 
-		//ID
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.51/@alternatives/@elements.2/@terminal'
 		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
 
-		//multiplicity=MULTIPLICITY?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.51/@alternatives/@elements.3'
 		public Assignment getMultiplicityAssignment_3() { return cMultiplicityAssignment_3; }
 
-		//MULTIPLICITY
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.51/@alternatives/@elements.3/@terminal'
 		public RuleCall getMultiplicityMULTIPLICITYParserRuleCall_3_0() { return cMultiplicityMULTIPLICITYParserRuleCall_3_0; }
 
-		//":"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.51/@alternatives/@elements.4'
 		public Keyword getColonKeyword_4() { return cColonKeyword_4; }
 
-		//type=[ActorClass|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.51/@alternatives/@elements.5'
 		public Assignment getTypeAssignment_5() { return cTypeAssignment_5; }
 
-		//[ActorClass|FQN]
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.51/@alternatives/@elements.5/@terminal'
 		public CrossReference getTypeActorClassCrossReference_5_0() { return cTypeActorClassCrossReference_5_0; }
 
-		//FQN
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.51/@alternatives/@elements.5/@terminal/@terminal'
 		public RuleCall getTypeActorClassFQNParserRuleCall_5_0_1() { return cTypeActorClassFQNParserRuleCall_5_0_1; }
 
-		//docu=Documentation?
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.51/@alternatives/@elements.6'
 		public Assignment getDocuAssignment_6() { return cDocuAssignment_6; }
 
-		//Documentation
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.51/@alternatives/@elements.6/@terminal'
 		public RuleCall getDocuDocumentationParserRuleCall_6_0() { return cDocuDocumentationParserRuleCall_6_0; }
 	}
 
@@ -3086,14 +2959,10 @@
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AbstractInterfaceItem");
 		private final RuleCall cInterfaceItemParserRuleCall = (RuleCall)rule.eContents().get(1);
 		
-		//// **************************************************************
-		//// concrete message and interface item for state machines
-		////AbstractMessage: Message;
-		//AbstractInterfaceItem:
-		//	InterfaceItem;
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/AbstractInterfaceItem'
 		public ParserRule getRule() { return rule; }
 
-		//InterfaceItem
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.53/@alternatives'
 		public RuleCall getInterfaceItemParserRuleCall() { return cInterfaceItemParserRuleCall; }
 	}
 
@@ -3106,30 +2975,25 @@
 		private final RuleCall cINTTerminalRuleCall_1_1 = (RuleCall)cAlternatives_1.eContents().get(1);
 		private final Keyword cRightSquareBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
 		
-		//// **************************************************************
-		//// general
-		//// the following is a data type rule (accompanied by a value converter) and must not be a terminal rule
-		//// (because then the lexer already would find this in places where it is not expected, e.g. in an Attribute)
-		//MULTIPLICITY returns ecore::EInt:
-		//	"[" ("*" | INT) "]";
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/MULTIPLICITY'
 		public ParserRule getRule() { return rule; }
 
-		//"[" ("*" | INT) "]"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.54/@alternatives'
 		public Group getGroup() { return cGroup; }
 
-		//"["
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.54/@alternatives/@elements.0'
 		public Keyword getLeftSquareBracketKeyword_0() { return cLeftSquareBracketKeyword_0; }
 
-		//"*" | INT
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.54/@alternatives/@elements.1'
 		public Alternatives getAlternatives_1() { return cAlternatives_1; }
 
-		//"*"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.54/@alternatives/@elements.1/@elements.0'
 		public Keyword getAsteriskKeyword_1_0() { return cAsteriskKeyword_1_0; }
 
-		//INT
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.54/@alternatives/@elements.1/@elements.1'
 		public RuleCall getINTTerminalRuleCall_1_1() { return cINTTerminalRuleCall_1_1; }
 
-		//"]"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.54/@alternatives/@elements.2'
 		public Keyword getRightSquareBracketKeyword_2() { return cRightSquareBracketKeyword_2; }
 	}
 
@@ -3144,34 +3008,31 @@
 		private final Keyword cSubSystemClassKeyword_5 = (Keyword)cAlternatives.eContents().get(5);
 		private final Keyword cLogicalSystemKeyword_6 = (Keyword)cAlternatives.eContents().get(6);
 		
-		//AnnotationTargetType:
-		//	"DataClass" | "ActorClass" | "ActorBehavior" | "ProtocolClass" | "CompoundProtocolClass" | "SubSystemClass" |
-		//	"LogicalSystem";
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/AnnotationTargetType'
 		public ParserRule getRule() { return rule; }
 
-		//"DataClass" | "ActorClass" | "ActorBehavior" | "ProtocolClass" | "CompoundProtocolClass" | "SubSystemClass" |
-		//"LogicalSystem"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.55/@alternatives'
 		public Alternatives getAlternatives() { return cAlternatives; }
 
-		//"DataClass"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.55/@alternatives/@elements.0'
 		public Keyword getDataClassKeyword_0() { return cDataClassKeyword_0; }
 
-		//"ActorClass"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.55/@alternatives/@elements.1'
 		public Keyword getActorClassKeyword_1() { return cActorClassKeyword_1; }
 
-		//"ActorBehavior"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.55/@alternatives/@elements.2'
 		public Keyword getActorBehaviorKeyword_2() { return cActorBehaviorKeyword_2; }
 
-		//"ProtocolClass"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.55/@alternatives/@elements.3'
 		public Keyword getProtocolClassKeyword_3() { return cProtocolClassKeyword_3; }
 
-		//"CompoundProtocolClass"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.55/@alternatives/@elements.4'
 		public Keyword getCompoundProtocolClassKeyword_4() { return cCompoundProtocolClassKeyword_4; }
 
-		//"SubSystemClass"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.55/@alternatives/@elements.5'
 		public Keyword getSubSystemClassKeyword_5() { return cSubSystemClassKeyword_5; }
 
-		//"LogicalSystem"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.55/@alternatives/@elements.6'
 		public Keyword getLogicalSystemKeyword_6() { return cLogicalSystemKeyword_6; }
 	}
 	
@@ -3186,31 +3047,28 @@
 		private final EnumLiteralDeclaration cSYNCHRONOUSEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
 		private final Keyword cSYNCHRONOUSSyncKeyword_2_0 = (Keyword)cSYNCHRONOUSEnumLiteralDeclaration_2.eContents().get(0);
 		
-		//// **************************************************************
-		//// protocol class
-		//enum CommunicationType:
-		//	EVENT_DRIVEN="eventdriven" | DATA_DRIVEN="datadriven" | SYNCHRONOUS="sync";
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/CommunicationType'
 		public EnumRule getRule() { return rule; }
 
-		//EVENT_DRIVEN="eventdriven" | DATA_DRIVEN="datadriven" | SYNCHRONOUS="sync"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.18/@alternatives'
 		public Alternatives getAlternatives() { return cAlternatives; }
 
-		//EVENT_DRIVEN="eventdriven"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.18/@alternatives/@elements.0'
 		public EnumLiteralDeclaration getEVENT_DRIVENEnumLiteralDeclaration_0() { return cEVENT_DRIVENEnumLiteralDeclaration_0; }
 
-		//"eventdriven"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.18/@alternatives/@elements.0/@literal'
 		public Keyword getEVENT_DRIVENEventdrivenKeyword_0_0() { return cEVENT_DRIVENEventdrivenKeyword_0_0; }
 
-		//DATA_DRIVEN="datadriven"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.18/@alternatives/@elements.1'
 		public EnumLiteralDeclaration getDATA_DRIVENEnumLiteralDeclaration_1() { return cDATA_DRIVENEnumLiteralDeclaration_1; }
 
-		//"datadriven"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.18/@alternatives/@elements.1/@literal'
 		public Keyword getDATA_DRIVENDatadrivenKeyword_1_0() { return cDATA_DRIVENDatadrivenKeyword_1_0; }
 
-		//SYNCHRONOUS="sync"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.18/@alternatives/@elements.2'
 		public EnumLiteralDeclaration getSYNCHRONOUSEnumLiteralDeclaration_2() { return cSYNCHRONOUSEnumLiteralDeclaration_2; }
 
-		//"sync"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.18/@alternatives/@elements.2/@literal'
 		public Keyword getSYNCHRONOUSSyncKeyword_2_0() { return cSYNCHRONOUSSyncKeyword_2_0; }
 	}
 
@@ -3222,24 +3080,22 @@
 		private final EnumLiteralDeclaration cOPTIONALEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
 		private final Keyword cOPTIONALOptionalKeyword_1_0 = (Keyword)cOPTIONALEnumLiteralDeclaration_1.eContents().get(0);
 		
-		//// IMPORTED='imported'
-		//enum ReferenceType:
-		//	FIXED="fixed" | OPTIONAL="optional";
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ReferenceType'
 		public EnumRule getRule() { return rule; }
 
-		//FIXED="fixed" | OPTIONAL="optional"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.52/@alternatives'
 		public Alternatives getAlternatives() { return cAlternatives; }
 
-		//FIXED="fixed"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.52/@alternatives/@elements.0'
 		public EnumLiteralDeclaration getFIXEDEnumLiteralDeclaration_0() { return cFIXEDEnumLiteralDeclaration_0; }
 
-		//"fixed"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.52/@alternatives/@elements.0/@literal'
 		public Keyword getFIXEDFixedKeyword_0_0() { return cFIXEDFixedKeyword_0_0; }
 
-		//OPTIONAL="optional"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.52/@alternatives/@elements.1'
 		public EnumLiteralDeclaration getOPTIONALEnumLiteralDeclaration_1() { return cOPTIONALEnumLiteralDeclaration_1; }
 
-		//"optional"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.52/@alternatives/@elements.1/@literal'
 		public Keyword getOPTIONALOptionalKeyword_1_0() { return cOPTIONALOptionalKeyword_1_0; }
 	}
 
@@ -3261,57 +3117,52 @@
 		private final EnumLiteralDeclaration cLOGICAL_SYSTEM_CLASSEnumLiteralDeclaration_6 = (EnumLiteralDeclaration)cAlternatives.eContents().get(6);
 		private final Keyword cLOGICAL_SYSTEM_CLASSLogicalSystemKeyword_6_0 = (Keyword)cLOGICAL_SYSTEM_CLASSEnumLiteralDeclaration_6.eContents().get(0);
 		
-		//enum RoomAnnotationTargetEnum:
-		//	DATA_CLASS="DataClass" | ACTOR_CLASS="ActorClass" | ACTOR_BEHAVIOR="ActorBehavior" | PROTOCOL_CLASS="ProtocolClass" |
-		//	COMPOUND_PROTOCOL_CLASS="CompoundProtocolClass" | SUBSYSTEM_CLASS="SubSystemClass" |
-		//	LOGICAL_SYSTEM_CLASS="LogicalSystem";
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/RoomAnnotationTargetEnum'
 		public EnumRule getRule() { return rule; }
 
-		//DATA_CLASS="DataClass" | ACTOR_CLASS="ActorClass" | ACTOR_BEHAVIOR="ActorBehavior" | PROTOCOL_CLASS="ProtocolClass" |
-		//COMPOUND_PROTOCOL_CLASS="CompoundProtocolClass" | SUBSYSTEM_CLASS="SubSystemClass" |
-		//LOGICAL_SYSTEM_CLASS="LogicalSystem"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.56/@alternatives'
 		public Alternatives getAlternatives() { return cAlternatives; }
 
-		//DATA_CLASS="DataClass"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.56/@alternatives/@elements.0'
 		public EnumLiteralDeclaration getDATA_CLASSEnumLiteralDeclaration_0() { return cDATA_CLASSEnumLiteralDeclaration_0; }
 
-		//"DataClass"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.56/@alternatives/@elements.0/@literal'
 		public Keyword getDATA_CLASSDataClassKeyword_0_0() { return cDATA_CLASSDataClassKeyword_0_0; }
 
-		//ACTOR_CLASS="ActorClass"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.56/@alternatives/@elements.1'
 		public EnumLiteralDeclaration getACTOR_CLASSEnumLiteralDeclaration_1() { return cACTOR_CLASSEnumLiteralDeclaration_1; }
 
-		//"ActorClass"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.56/@alternatives/@elements.1/@literal'
 		public Keyword getACTOR_CLASSActorClassKeyword_1_0() { return cACTOR_CLASSActorClassKeyword_1_0; }
 
-		//ACTOR_BEHAVIOR="ActorBehavior"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.56/@alternatives/@elements.2'
 		public EnumLiteralDeclaration getACTOR_BEHAVIOREnumLiteralDeclaration_2() { return cACTOR_BEHAVIOREnumLiteralDeclaration_2; }
 
-		//"ActorBehavior"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.56/@alternatives/@elements.2/@literal'
 		public Keyword getACTOR_BEHAVIORActorBehaviorKeyword_2_0() { return cACTOR_BEHAVIORActorBehaviorKeyword_2_0; }
 
-		//PROTOCOL_CLASS="ProtocolClass"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.56/@alternatives/@elements.3'
 		public EnumLiteralDeclaration getPROTOCOL_CLASSEnumLiteralDeclaration_3() { return cPROTOCOL_CLASSEnumLiteralDeclaration_3; }
 
-		//"ProtocolClass"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.56/@alternatives/@elements.3/@literal'
 		public Keyword getPROTOCOL_CLASSProtocolClassKeyword_3_0() { return cPROTOCOL_CLASSProtocolClassKeyword_3_0; }
 
-		//COMPOUND_PROTOCOL_CLASS="CompoundProtocolClass"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.56/@alternatives/@elements.4'
 		public EnumLiteralDeclaration getCOMPOUND_PROTOCOL_CLASSEnumLiteralDeclaration_4() { return cCOMPOUND_PROTOCOL_CLASSEnumLiteralDeclaration_4; }
 
-		//"CompoundProtocolClass"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.56/@alternatives/@elements.4/@literal'
 		public Keyword getCOMPOUND_PROTOCOL_CLASSCompoundProtocolClassKeyword_4_0() { return cCOMPOUND_PROTOCOL_CLASSCompoundProtocolClassKeyword_4_0; }
 
-		//SUBSYSTEM_CLASS="SubSystemClass"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.56/@alternatives/@elements.5'
 		public EnumLiteralDeclaration getSUBSYSTEM_CLASSEnumLiteralDeclaration_5() { return cSUBSYSTEM_CLASSEnumLiteralDeclaration_5; }
 
-		//"SubSystemClass"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.56/@alternatives/@elements.5/@literal'
 		public Keyword getSUBSYSTEM_CLASSSubSystemClassKeyword_5_0() { return cSUBSYSTEM_CLASSSubSystemClassKeyword_5_0; }
 
-		//LOGICAL_SYSTEM_CLASS="LogicalSystem"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.56/@alternatives/@elements.6'
 		public EnumLiteralDeclaration getLOGICAL_SYSTEM_CLASSEnumLiteralDeclaration_6() { return cLOGICAL_SYSTEM_CLASSEnumLiteralDeclaration_6; }
 
-		//"LogicalSystem"
+		//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#/0/@rules.56/@alternatives/@elements.6/@literal'
 		public Keyword getLOGICAL_SYSTEM_CLASSLogicalSystemKeyword_6_0() { return cLOGICAL_SYSTEM_CLASSLogicalSystemKeyword_6_0; }
 	}
 	
@@ -3468,11 +3319,7 @@
 	}
 
 	
-	//RoomModel:
-	//	"RoomModel" name=FQN docu=Documentation? "{" imports+=Import* (primitiveTypes+=PrimitiveType |
-	//	enumerationTypes+=EnumerationType | externalTypes+=ExternalType | dataClasses+=DataClass |
-	//	protocolClasses+=GeneralProtocolClass | actorClasses+=ActorClass | subSystemClasses+=SubSystemClass |
-	//	systems+=LogicalSystem | annotationTypes+=AnnotationType)* "}";
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/RoomModel'
 	public RoomModelElements getRoomModelAccess() {
 		return pRoomModel;
 	}
@@ -3481,8 +3328,7 @@
 		return getRoomModelAccess().getRule();
 	}
 
-	//RoomClass:
-	//	DataType | GeneralProtocolClass | StructureClass;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/RoomClass'
 	public RoomClassElements getRoomClassAccess() {
 		return pRoomClass;
 	}
@@ -3491,8 +3337,7 @@
 		return getRoomClassAccess().getRule();
 	}
 
-	//StructureClass:
-	//	ActorContainerClass | LogicalSystem;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/StructureClass'
 	public StructureClassElements getStructureClassAccess() {
 		return pStructureClass;
 	}
@@ -3501,8 +3346,7 @@
 		return getStructureClassAccess().getRule();
 	}
 
-	//ActorContainerClass:
-	//	ActorClass | SubSystemClass;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ActorContainerClass'
 	public ActorContainerClassElements getActorContainerClassAccess() {
 		return pActorContainerClass;
 	}
@@ -3511,10 +3355,7 @@
 		return getActorContainerClassAccess().getRule();
 	}
 
-	//// **************************************************************
-	//// data class
-	//VarDecl:
-	//	name=ID ":" refType=RefableType;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/VarDecl'
 	public VarDeclElements getVarDeclAccess() {
 		return pVarDecl;
 	}
@@ -3523,8 +3364,7 @@
 		return getVarDeclAccess().getRule();
 	}
 
-	//RefableType:
-	//	type=[DataType|FQN] ref?="ref"?;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/RefableType'
 	public RefableTypeElements getRefableTypeAccess() {
 		return pRefableType;
 	}
@@ -3533,8 +3373,7 @@
 		return getRefableTypeAccess().getRule();
 	}
 
-	//DataType:
-	//	PrimitiveType | EnumerationType | ComplexType;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/DataType'
 	public DataTypeElements getDataTypeAccess() {
 		return pDataType;
 	}
@@ -3543,8 +3382,7 @@
 		return getDataTypeAccess().getRule();
 	}
 
-	//ComplexType:
-	//	DataClass | ExternalType;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ComplexType'
 	public ComplexTypeElements getComplexTypeAccess() {
 		return pComplexType;
 	}
@@ -3553,9 +3391,7 @@
 		return getComplexTypeAccess().getRule();
 	}
 
-	//PrimitiveType:
-	//	"PrimitiveType" name=ID ":" type=LiteralType "->" targetName=STRING ("(" castName=FQN ")")? "default"
-	//	defaultValueLiteral=STRING docu=Documentation?;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/PrimitiveType'
 	public PrimitiveTypeElements getPrimitiveTypeAccess() {
 		return pPrimitiveType;
 	}
@@ -3564,9 +3400,7 @@
 		return getPrimitiveTypeAccess().getRule();
 	}
 
-	//EnumerationType:
-	//	"Enumeration" name=ID docu=Documentation? ("of" primitiveType=[PrimitiveType|FQN])? "{" (literals+=EnumLiteral (","
-	//	literals+=EnumLiteral)*)? "}";
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/EnumerationType'
 	public EnumerationTypeElements getEnumerationTypeAccess() {
 		return pEnumerationType;
 	}
@@ -3575,8 +3409,7 @@
 		return getEnumerationTypeAccess().getRule();
 	}
 
-	//EnumLiteral:
-	//	name=ID ("=" literal=IntLiteral)?;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/EnumLiteral'
 	public EnumLiteralElements getEnumLiteralAccess() {
 		return pEnumLiteral;
 	}
@@ -3585,8 +3418,7 @@
 		return getEnumLiteralAccess().getRule();
 	}
 
-	//ExternalType:
-	//	"ExternalType" name=ID "->" targetName=STRING ("default" defaultValueLiteral=STRING)? docu=Documentation?;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ExternalType'
 	public ExternalTypeElements getExternalTypeAccess() {
 		return pExternalType;
 	}
@@ -3595,11 +3427,7 @@
 		return getExternalTypeAccess().getRule();
 	}
 
-	//// TODOHRR: define detail level language?
-	//DataClass:
-	//	"DataClass" name=ID docu=Documentation? ("extends" base=[DataClass|FQN])? "{" annotations+=Annotation* ("usercode1"
-	//	userCode1=DetailCode)? ("usercode2" userCode2=DetailCode)? ("usercode3" userCode3=DetailCode)?
-	//	(operations+=StandardOperation | structors+=ClassStructor | attributes+=Attribute)* "}";
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/DataClass'
 	public DataClassElements getDataClassAccess() {
 		return pDataClass;
 	}
@@ -3608,8 +3436,7 @@
 		return getDataClassAccess().getRule();
 	}
 
-	//Attribute:
-	//	"Attribute" name=ID ("[" size=INT "]")? ":" type=RefableType ("=" defaultValueLiteral=STRING)? docu=Documentation?;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/Attribute'
 	public AttributeElements getAttributeAccess() {
 		return pAttribute;
 	}
@@ -3618,8 +3445,7 @@
 		return getAttributeAccess().getRule();
 	}
 
-	//Operation:
-	//	StandardOperation | PortOperation;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/Operation'
 	public OperationElements getOperationAccess() {
 		return pOperation;
 	}
@@ -3628,9 +3454,7 @@
 		return getOperationAccess().getRule();
 	}
 
-	//StandardOperation:
-	//	override?="override"? "Operation" name=ID "(" (arguments+=VarDecl ("," arguments+=VarDecl)*)? ")" (":" ("void" |
-	//	returnType=RefableType))? docu=Documentation? detailCode=DetailCode;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/StandardOperation'
 	public StandardOperationElements getStandardOperationAccess() {
 		return pStandardOperation;
 	}
@@ -3639,9 +3463,7 @@
 		return getStandardOperationAccess().getRule();
 	}
 
-	//PortOperation:
-	//	"Operation" name=ID "(" (arguments+=VarDecl ("," arguments+=VarDecl)*)? ")" (":" ("void" | returnType=RefableType) |
-	//	"sends" sendsMsg=[Message])? docu=Documentation? detailCode=DetailCode;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/PortOperation'
 	public PortOperationElements getPortOperationAccess() {
 		return pPortOperation;
 	}
@@ -3650,8 +3472,7 @@
 		return getPortOperationAccess().getRule();
 	}
 
-	//ClassStructor:
-	//	name=("ctor" | "dtor") detailCode=DetailCode;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ClassStructor'
 	public ClassStructorElements getClassStructorAccess() {
 		return pClassStructor;
 	}
@@ -3660,10 +3481,7 @@
 		return getClassStructorAccess().getRule();
 	}
 
-	//// **************************************************************
-	//// protocol class
-	//enum CommunicationType:
-	//	EVENT_DRIVEN="eventdriven" | DATA_DRIVEN="datadriven" | SYNCHRONOUS="sync";
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/CommunicationType'
 	public CommunicationTypeElements getCommunicationTypeAccess() {
 		return unknownRuleCommunicationType;
 	}
@@ -3672,8 +3490,7 @@
 		return getCommunicationTypeAccess().getRule();
 	}
 
-	//GeneralProtocolClass:
-	//	ProtocolClass | CompoundProtocolClass;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/GeneralProtocolClass'
 	public GeneralProtocolClassElements getGeneralProtocolClassAccess() {
 		return pGeneralProtocolClass;
 	}
@@ -3682,12 +3499,7 @@
 		return getGeneralProtocolClassAccess().getRule();
 	}
 
-	//ProtocolClass:
-	//	commType=CommunicationType? "ProtocolClass" name=ID docu=Documentation? ("extends" base=[ProtocolClass|FQN])? "{"
-	//	annotations+=Annotation* ("usercode1" userCode1=DetailCode)? ("usercode2" userCode2=DetailCode)? ("usercode3"
-	//	userCode3=DetailCode)? ("incoming" "{" incomingMessages+=Message* "}")? ("outgoing" "{" outgoingMessages+=Message*
-	//	"}")? ("regular" "PortClass" regular=PortClass)? ("conjugated" "PortClass" conjugated=PortClass)?
-	//	semantics=ProtocolSemantics? "}";
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ProtocolClass'
 	public ProtocolClassElements getProtocolClassAccess() {
 		return pProtocolClass;
 	}
@@ -3696,8 +3508,7 @@
 		return getProtocolClassAccess().getRule();
 	}
 
-	//CompoundProtocolClass:
-	//	"CompoundProtocolClass" name=ID docu=Documentation? "{" annotations+=Annotation* subProtocols+=SubProtocol* "}";
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/CompoundProtocolClass'
 	public CompoundProtocolClassElements getCompoundProtocolClassAccess() {
 		return pCompoundProtocolClass;
 	}
@@ -3706,8 +3517,7 @@
 		return getCompoundProtocolClassAccess().getRule();
 	}
 
-	//SubProtocol:
-	//	"SubProtocol" name=ID ":" protocol=[GeneralProtocolClass|FQN];
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/SubProtocol'
 	public SubProtocolElements getSubProtocolAccess() {
 		return pSubProtocol;
 	}
@@ -3716,8 +3526,7 @@
 		return getSubProtocolAccess().getRule();
 	}
 
-	//Message:
-	//	priv?="private"? "Message" name=ID "(" data=VarDecl? ")" docu=Documentation?;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/Message'
 	public MessageElements getMessageAccess() {
 		return pMessage;
 	}
@@ -3726,9 +3535,7 @@
 		return getMessageAccess().getRule();
 	}
 
-	//PortClass:
-	//	{PortClass} "{" ("usercode" userCode=DetailCode)? (msgHandlers+=MessageHandler | operations+=PortOperation |
-	//	attributes+=Attribute)* "}";
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/PortClass'
 	public PortClassElements getPortClassAccess() {
 		return pPortClass;
 	}
@@ -3737,8 +3544,7 @@
 		return getPortClassAccess().getRule();
 	}
 
-	//MessageHandler:
-	//	InMessageHandler | OutMessageHandler;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/MessageHandler'
 	public MessageHandlerElements getMessageHandlerAccess() {
 		return pMessageHandler;
 	}
@@ -3747,8 +3553,7 @@
 		return getMessageHandlerAccess().getRule();
 	}
 
-	//InMessageHandler:
-	//	"handle" "incoming" msg=[Message] detailCode=DetailCode;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/InMessageHandler'
 	public InMessageHandlerElements getInMessageHandlerAccess() {
 		return pInMessageHandler;
 	}
@@ -3757,8 +3562,7 @@
 		return getInMessageHandlerAccess().getRule();
 	}
 
-	//OutMessageHandler:
-	//	"handle" "outgoing" msg=[Message] detailCode=DetailCode;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/OutMessageHandler'
 	public OutMessageHandlerElements getOutMessageHandlerAccess() {
 		return pOutMessageHandler;
 	}
@@ -3767,10 +3571,7 @@
 		return getOutMessageHandlerAccess().getRule();
 	}
 
-	//// **************************************************************
-	//// actor class
-	//ModelComponent:
-	//	ActorClass;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ModelComponent'
 	public ModelComponentElements getModelComponentAccess() {
 		return pModelComponent;
 	}
@@ -3779,22 +3580,7 @@
 		return getModelComponentAccess().getRule();
 	}
 
-	//// some notes on ports
-	////
-	//// in ROOM ports can be contained in the structure and/or the interface
-	//// p in s ==> internal end port
-	//// p in i ==> relay port
-	//// p in i and p in s ==> external end port
-	//// since double containment is not supported we decided to define external ports as reference to interface ports
-	//ActorClass:
-	//	(abstract?="abstract"? & commType=ComponentCommunicationType?) "ActorClass" name=ID docu=Documentation? ("extends"
-	//	base=[ActorClass|FQN])? "{" annotations+=Annotation* ("Interface" "{" (serviceProvisionPoints+=SPP |
-	//	interfacePorts+=Port)* "}")? ("Structure" structureDocu=Documentation? "{" ("usercode1" userCode1=DetailCode)?
-	//	("usercode2" userCode2=DetailCode)? ("usercode3" userCode3=DetailCode)? // workaround: reverse the order for serializer
-	//	(connections+=LayerConnection | bindings+=Binding | serviceImplementations+=ServiceImplementation |
-	//	attributes+=Attribute | actorRefs+=ActorRef | serviceAccessPoints+=SAP | internalPorts+=Port |
-	//	externalPorts+=ExternalPort)* "}")? ("Behavior" behaviorDocu=Documentation? "{" behaviorAnnotations+=Annotation*
-	//	(operations+=StandardOperation | structors+=ClassStructor)* stateMachine=StateMachine? "}")? "}";
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ActorClass'
 	public ActorClassElements getActorClassAccess() {
 		return pActorClass;
 	}
@@ -3803,8 +3589,7 @@
 		return getActorClassAccess().getRule();
 	}
 
-	//InterfaceItem:
-	//	Port | SAP | SPP;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/InterfaceItem'
 	public InterfaceItemElements getInterfaceItemAccess() {
 		return pInterfaceItem;
 	}
@@ -3813,9 +3598,7 @@
 		return getInterfaceItemAccess().getRule();
 	}
 
-	//Port:
-	//	conjugated?="conjugated"? "Port" name=ID multiplicity=MULTIPLICITY? ":" protocol=[GeneralProtocolClass|FQN]
-	//	docu=Documentation?;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/Port'
 	public PortElements getPortAccess() {
 		return pPort;
 	}
@@ -3824,8 +3607,7 @@
 		return getPortAccess().getRule();
 	}
 
-	//ExternalPort:
-	//	"external" "Port" interfacePort=[Port];
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ExternalPort'
 	public ExternalPortElements getExternalPortAccess() {
 		return pExternalPort;
 	}
@@ -3834,8 +3616,7 @@
 		return getExternalPortAccess().getRule();
 	}
 
-	//SAP:
-	//	"SAP" name=ID ":" protocol=[ProtocolClass|FQN];
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/SAP'
 	public SAPElements getSAPAccess() {
 		return pSAP;
 	}
@@ -3844,8 +3625,7 @@
 		return getSAPAccess().getRule();
 	}
 
-	//SPP:
-	//	"SPP" name=ID ":" protocol=[ProtocolClass|FQN];
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/SPP'
 	public SPPElements getSPPAccess() {
 		return pSPP;
 	}
@@ -3854,8 +3634,7 @@
 		return getSPPAccess().getRule();
 	}
 
-	//ServiceImplementation:
-	//	"ServiceImplementation" "of" spp=[SPP];
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ServiceImplementation'
 	public ServiceImplementationElements getServiceImplementationAccess() {
 		return pServiceImplementation;
 	}
@@ -3864,9 +3643,7 @@
 		return getServiceImplementationAccess().getRule();
 	}
 
-	//LogicalSystem:
-	//	"LogicalSystem" name=ID docu=Documentation? "{" annotations+=Annotation* (connections+=LayerConnection |
-	//	bindings+=Binding | subSystems+=SubSystemRef)* "}";
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/LogicalSystem'
 	public LogicalSystemElements getLogicalSystemAccess() {
 		return pLogicalSystem;
 	}
@@ -3875,8 +3652,7 @@
 		return getLogicalSystemAccess().getRule();
 	}
 
-	//ActorContainerRef:
-	//	SubSystemRef | ActorRef;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ActorContainerRef'
 	public ActorContainerRefElements getActorContainerRefAccess() {
 		return pActorContainerRef;
 	}
@@ -3885,8 +3661,7 @@
 		return getActorContainerRefAccess().getRule();
 	}
 
-	//SubSystemRef:
-	//	"SubSystemRef" name=ID ":" type=[SubSystemClass|FQN] docu=Documentation?;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/SubSystemRef'
 	public SubSystemRefElements getSubSystemRefAccess() {
 		return pSubSystemRef;
 	}
@@ -3895,11 +3670,7 @@
 		return getSubSystemRefAccess().getRule();
 	}
 
-	//SubSystemClass:
-	//	"SubSystemClass" name=ID docu=Documentation? "{" annotations+=Annotation* ("usercode1" userCode1=DetailCode)?
-	//	("usercode2" userCode2=DetailCode)? ("usercode3" userCode3=DetailCode)? // workaround: reverse the order for serializer
-	//	(actorInstanceMappings+=ActorInstanceMapping | threads+=LogicalThread | connections+=LayerConnection |
-	//	bindings+=Binding | actorRefs+=ActorRef | serviceProvisionPoints+=SPP | relayPorts+=Port)* "}";
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/SubSystemClass'
 	public SubSystemClassElements getSubSystemClassAccess() {
 		return pSubSystemClass;
 	}
@@ -3908,8 +3679,7 @@
 		return getSubSystemClassAccess().getRule();
 	}
 
-	//LogicalThread:
-	//	"LogicalThread" name=ID;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/LogicalThread'
 	public LogicalThreadElements getLogicalThreadAccess() {
 		return pLogicalThread;
 	}
@@ -3918,9 +3688,7 @@
 		return getLogicalThreadAccess().getRule();
 	}
 
-	//ActorInstanceMapping:
-	//	"ActorInstanceMapping" path=RefPath "->" thread=[LogicalThread] ("{" actorInstanceMappings+=ActorInstanceMapping*
-	//	"}")?;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ActorInstanceMapping'
 	public ActorInstanceMappingElements getActorInstanceMappingAccess() {
 		return pActorInstanceMapping;
 	}
@@ -3929,8 +3697,7 @@
 		return getActorInstanceMappingAccess().getRule();
 	}
 
-	//RefPath:
-	//	refs+=RefSegment ("/" refs+=RefSegment)*;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/RefPath'
 	public RefPathElements getRefPathAccess() {
 		return pRefPath;
 	}
@@ -3939,8 +3706,7 @@
 		return getRefPathAccess().getRule();
 	}
 
-	//RefSegment:
-	//	ref=ID (":" idx=INT)?;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/RefSegment'
 	public RefSegmentElements getRefSegmentAccess() {
 		return pRefSegment;
 	}
@@ -3949,8 +3715,7 @@
 		return getRefSegmentAccess().getRule();
 	}
 
-	//Binding:
-	//	"Binding" endpoint1=BindingEndPoint "and" endpoint2=BindingEndPoint;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/Binding'
 	public BindingElements getBindingAccess() {
 		return pBinding;
 	}
@@ -3959,8 +3724,7 @@
 		return getBindingAccess().getRule();
 	}
 
-	//BindingEndPoint:
-	//	(actorRef=[ActorContainerRef] ".")? port=[Port] ("sub" sub=[SubProtocol])?;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/BindingEndPoint'
 	public BindingEndPointElements getBindingEndPointAccess() {
 		return pBindingEndPoint;
 	}
@@ -3969,8 +3733,7 @@
 		return getBindingEndPointAccess().getRule();
 	}
 
-	//LayerConnection:
-	//	"LayerConnection" from=SAPoint "satisfied_by" to=SPPoint;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/LayerConnection'
 	public LayerConnectionElements getLayerConnectionAccess() {
 		return pLayerConnection;
 	}
@@ -3979,8 +3742,7 @@
 		return getLayerConnectionAccess().getRule();
 	}
 
-	//SAPoint:
-	//	RefSAPoint | RelaySAPoint;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/SAPoint'
 	public SAPointElements getSAPointAccess() {
 		return pSAPoint;
 	}
@@ -3989,8 +3751,7 @@
 		return getSAPointAccess().getRule();
 	}
 
-	//RefSAPoint: // satisfies a sub actor
-	//	"ref" ref=[ActorContainerRef];
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/RefSAPoint'
 	public RefSAPointElements getRefSAPointAccess() {
 		return pRefSAPoint;
 	}
@@ -3999,8 +3760,7 @@
 		return getRefSAPointAccess().getRule();
 	}
 
-	//RelaySAPoint: // relays from own interface
-	//	"relay_sap" relay=[SPP];
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/RelaySAPoint'
 	public RelaySAPointElements getRelaySAPointAccess() {
 		return pRelaySAPoint;
 	}
@@ -4009,8 +3769,7 @@
 		return getRelaySAPointAccess().getRule();
 	}
 
-	//SPPoint:
-	//	ref=[ActorContainerRef] "." service=[SPP];
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/SPPoint'
 	public SPPointElements getSPPointAccess() {
 		return pSPPoint;
 	}
@@ -4019,8 +3778,7 @@
 		return getSPPointAccess().getRule();
 	}
 
-	//ActorRef:
-	//	refType=ReferenceType? "ActorRef" name=ID multiplicity=MULTIPLICITY? ":" type=[ActorClass|FQN] docu=Documentation?;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ActorRef'
 	public ActorRefElements getActorRefAccess() {
 		return pActorRef;
 	}
@@ -4029,9 +3787,7 @@
 		return getActorRefAccess().getRule();
 	}
 
-	//// IMPORTED='imported'
-	//enum ReferenceType:
-	//	FIXED="fixed" | OPTIONAL="optional";
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/ReferenceType'
 	public ReferenceTypeElements getReferenceTypeAccess() {
 		return unknownRuleReferenceType;
 	}
@@ -4040,11 +3796,7 @@
 		return getReferenceTypeAccess().getRule();
 	}
 
-	//// **************************************************************
-	//// concrete message and interface item for state machines
-	////AbstractMessage: Message;
-	//AbstractInterfaceItem:
-	//	InterfaceItem;
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/AbstractInterfaceItem'
 	public AbstractInterfaceItemElements getAbstractInterfaceItemAccess() {
 		return pAbstractInterfaceItem;
 	}
@@ -4053,12 +3805,7 @@
 		return getAbstractInterfaceItemAccess().getRule();
 	}
 
-	//// **************************************************************
-	//// general
-	//// the following is a data type rule (accompanied by a value converter) and must not be a terminal rule
-	//// (because then the lexer already would find this in places where it is not expected, e.g. in an Attribute)
-	//MULTIPLICITY returns ecore::EInt:
-	//	"[" ("*" | INT) "]";
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/MULTIPLICITY'
 	public MULTIPLICITYElements getMULTIPLICITYAccess() {
 		return pMULTIPLICITY;
 	}
@@ -4067,9 +3814,7 @@
 		return getMULTIPLICITYAccess().getRule();
 	}
 
-	//AnnotationTargetType:
-	//	"DataClass" | "ActorClass" | "ActorBehavior" | "ProtocolClass" | "CompoundProtocolClass" | "SubSystemClass" |
-	//	"LogicalSystem";
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/AnnotationTargetType'
 	public AnnotationTargetTypeElements getAnnotationTargetTypeAccess() {
 		return pAnnotationTargetType;
 	}
@@ -4078,10 +3823,7 @@
 		return getAnnotationTargetTypeAccess().getRule();
 	}
 
-	//enum RoomAnnotationTargetEnum:
-	//	DATA_CLASS="DataClass" | ACTOR_CLASS="ActorClass" | ACTOR_BEHAVIOR="ActorBehavior" | PROTOCOL_CLASS="ProtocolClass" |
-	//	COMPOUND_PROTOCOL_CLASS="CompoundProtocolClass" | SUBSYSTEM_CLASS="SubSystemClass" |
-	//	LOGICAL_SYSTEM_CLASS="LogicalSystem";
+	//org.eclipse.xtext.resource.ClasspathUriResolutionException: org.eclipse.xtext.resource.FileNotFoundOnClasspathException: Couldn't find resource on classpath. URI was 'classpath:/org/eclipse/etrice/core/Room.xtext#XtextFragmentProvider_org.eclipse.etrice.core.Room/RoomAnnotationTargetEnum'
 	public RoomAnnotationTargetEnumElements getRoomAnnotationTargetEnumAccess() {
 		return unknownRuleRoomAnnotationTargetEnum;
 	}
diff --git a/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/Room.xtext b/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/Room.xtext
index 14592ad..f8e86e1 100644
--- a/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/Room.xtext
+++ b/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/Room.xtext
@@ -88,7 +88,7 @@
 
 
 Attribute:
-	'Attribute' name=ID ('[' size=INT ']')? ':' type=RefableType ('=' defaultValueLiteral=STRING)? (docu=Documentation)?;
+	'Attribute' name=ID ('[' size=INT ']')? ':' (type=RefableType)? ('=' defaultValueLiteral=STRING)? (docu=Documentation)?;
 
 Operation: StandardOperation | PortOperation;
 
diff --git a/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/room/util/RoomHelpers.java b/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/room/util/RoomHelpers.java
index f73c7ce..f611161 100644
--- a/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/room/util/RoomHelpers.java
+++ b/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/room/util/RoomHelpers.java
@@ -68,7 +68,7 @@
 /**
  * This class provides a collection of convenience functions that extract implicit information
  * from model elements. It is assumed that the elements are part of a valid model.<br/><br/>
- * 
+ *
  * There is a second layer which gives access to informations which is even more indirectly
  * contained and requires a somewhat larger effort to extract them.
  * This is provided by the
@@ -79,37 +79,54 @@
  * @see org.eclipse.etrice.core.genmodel.builder.GeneratorModelBuilder eTrice Generator Model
  */
 public class RoomHelpers extends FSMHelpers {
-	
+
 	/**
 	 * Compute a list of the class itself and its base classes in reverse order (super classes to sub classes)
-	 * 
+	 *
 	 * @param ac the {@link ActorClass}
 	 * @return a list of the class itself and its base classes in reverse order (super classes to sub classes)
 	 */
 	public List<ActorClass> getClassHierarchy(ActorClass ac) {
 		ArrayList<ActorClass> result = new ArrayList<ActorClass>();
-		
+
 		while (ac!=null) {
 			result.add(0, ac);
 			ac = ac.getActorBase();
 		}
-		
+
 		return result;
 	}
-	
+
+	/**
+	 * Compute a list of the class itself and its base classes in reverse order (super classes to sub classes)
+	 *
+	 * @param dc the {@link DataClass}
+	 * @return a list of the class itself and its base classes in reverse order (super classes to sub classes)
+	 */
+	public List<DataClass> getClassHierarchy(DataClass dc) {
+		ArrayList<DataClass> result = new ArrayList<DataClass>();
+
+		while (dc!=null) {
+			result.add(0, dc);
+			dc = dc.getBase();
+		}
+
+		return result;
+	}
+
 	/**
 	 * Return a list of all {@link InterfaceItem}s ({@link Port}s and
 	 * {@link SPP}s) of a {@link StructureClass}.
 	 * Internal end ports and SAPs are <em>not</em> included.
-	 * 
+	 *
 	 * @param sc the {@link StructureClass}
 	 * @param includeInherited <code>true</code> if inherited items should be included (applies only for actor classes)
-	 * 
+	 *
 	 * @return a list of all (external) interface items
 	 */
 	public List<InterfaceItem> getInterfaceItems(StructureClass sc, boolean includeInherited) {
 		ArrayList<InterfaceItem> result = new ArrayList<InterfaceItem>();
-		
+
 		if (sc instanceof ActorClass) {
 			ActorClass ac = (ActorClass) sc;
 			do {
@@ -129,7 +146,7 @@
 		else {
 			assert(false): "unexpected sub type";
 		}
-		
+
 		return result;
 	}
 
@@ -137,10 +154,10 @@
 	 * Returns a list of all {@link ActorContainerRef}s of a structure class.
 	 * For {@link SubSystemClass}es and {@link ActorClass}es these are
 	 * {@link ActorRef}s, for {@link LogicalSystem}s these are {@link SubSystemRef}s.
-	 * 
+	 *
 	 * @param sc the {@link StructureClass}
 	 * @param includeInherited <code>true</code> if inherited refs should be included (applies only for actor classes)
-	 * 
+	 *
 	 * @return a list of all {@link ActorContainerRef}s of a structure class.
 	 */
 	public List<ActorContainerRef> getRefs(StructureClass sc, boolean includeInherited) {
@@ -166,13 +183,13 @@
 
 		return result;
 	}
-	
+
 	/**
 	 * Returns a list of all {@link Binding}s of a {@link StructureClass}.
-	 * 
+	 *
 	 * @param sc the {@link StructureClass}
 	 * @param includeInherited <code>true</code> if inherited bindings should be included (applies only for actor classes)
-	 * 
+	 *
 	 * @return a list of all {@link Binding}s of a {@link StructureClass}.
 	 */
 	public List<Binding> getBindings(StructureClass sc, boolean includeInherited) {
@@ -198,14 +215,14 @@
 
 		return result;
 	}
-	
+
 	/**
 	 * Returns a list of all {@link LayerConnection}s of a {@link StructureClass}.
-	 * 
+	 *
 	 * @param sc the {@link StructureClass}
 	 * @param includeInherited <code>true</code> if inherited layer
 	 * 			connections should be included (applies only for actor classes)
-	 * 
+	 *
 	 * @return a list of all {@link LayerConnection}s of a {@link StructureClass}.
 	 */
 	public List<LayerConnection> getConnections(StructureClass sc, boolean includeInherited) {
@@ -235,9 +252,9 @@
 	/**
 	 * Returns the user code 1 of a {@link DataClass} including inherited class code as String.
 	 * The code is ordered super class first.
-	 * 
+	 *
 	 * @param dc the {@link DataClass}
-	 * 
+	 *
 	 * @return the user code 1 of a {@link DataClass} including inherited case class code as String
 	 */
 	public String getDeepUserCode1(DataClass dc) {
@@ -248,9 +265,9 @@
 	/**
 	 * Returns the user code 2 of a {@link DataClass} including inherited class code as String.
 	 * The code is ordered super class first.
-	 * 
+	 *
 	 * @param dc the {@link DataClass}
-	 * 
+	 *
 	 * @return the user code 2 of a {@link DataClass} including inherited case class code as String
 	 */
 	public String getDeepUserCode2(DataClass dc) {
@@ -261,9 +278,9 @@
 	/**
 	 * Returns the user code 3 of a {@link DataClass} including inherited class code as String.
 	 * The code is ordered super class first.
-	 * 
+	 *
 	 * @param dc the {@link DataClass}
-	 * 
+	 *
 	 * @return the user code 3 of a {@link DataClass} including inherited case class code as String
 	 */
 	public String getDeepUserCode3(DataClass dc) {
@@ -274,9 +291,9 @@
 	/**
 	 * Returns the user code 1 of a {@link ProtocolClass} including inherited class code as String.
 	 * The code is ordered super class first.
-	 * 
+	 *
 	 * @param pc the {@link ProtocolClass}
-	 * 
+	 *
 	 * @return the user code 1 of a {@link ProtocolClass} including inherited case class code as String
 	 */
 	public String getDeepUserCode1(ProtocolClass pc) {
@@ -286,9 +303,9 @@
 	/**
 	 * Returns the user code 2 of a {@link ProtocolClass} including inherited class code as String.
 	 * The code is ordered super class first.
-	 * 
+	 *
 	 * @param pc the {@link ProtocolClass}
-	 * 
+	 *
 	 * @return the user code 2 of a {@link ProtocolClass} including inherited case class code as String
 	 */
 	public String getDeepUserCode2(ProtocolClass pc) {
@@ -298,9 +315,9 @@
 	/**
 	 * Returns the user code 3 of a {@link ProtocolClass} including inherited class code as String.
 	 * The code is ordered super class first.
-	 * 
+	 *
 	 * @param pc the {@link ProtocolClass}
-	 * 
+	 *
 	 * @return the user code 3 of a {@link ProtocolClass} including inherited case class code as String
 	 */
 	public String getDeepUserCode3(ProtocolClass pc) {
@@ -310,9 +327,9 @@
 	/**
 	 * Returns the user code 1 of a {@link ActorContainerClass} including inherited class code as String.
 	 * The code is ordered super class first.
-	 * 
+	 *
 	 * @param ac the {@link ActorContainerClass}
-	 * 
+	 *
 	 * @return the user code 1 of a {@link ActorContainerClass} including inherited case class code as String
 	 */
 	public String getDeepUserCode1(ActorContainerClass ac) {
@@ -322,9 +339,9 @@
 	/**
 	 * Returns the user code 2 of a {@link ActorContainerClass} including inherited class code as String.
 	 * The code is ordered super class first.
-	 * 
+	 *
 	 * @param ac the {@link ActorContainerClass}
-	 * 
+	 *
 	 * @return the user code 2 of a {@link ActorContainerClass} including inherited case class code as String
 	 */
 	public String getDeepUserCode2(ActorContainerClass ac) {
@@ -334,22 +351,22 @@
 	/**
 	 * Returns the user code 3 of a {@link ActorContainerClass} including inherited class code as String.
 	 * The code is ordered super class first.
-	 * 
+	 *
 	 * @param ac the {@link ActorContainerClass}
-	 * 
+	 *
 	 * @return the user code 3 of a {@link ActorContainerClass} including inherited case class code as String
 	 */
 	public String getDeepUserCode3(ActorContainerClass ac) {
 		return getDeepUserCode(ac, RoomPackage.Literals.ACTOR_CONTAINER_CLASS__USER_CODE3);
 	}
-	
+
 	private String getDeepUserCode(EObject obj, EStructuralFeature code) {
 		StringBuilder result = new StringBuilder();
-		
+
 		while (obj!=null) {
 			DetailCode dc = (DetailCode) obj.eGet(code);
 			result.insert(0, getDetailCode(dc));
-			
+
 			if (obj instanceof ActorClass)
 				obj = ((ActorClass) obj).getBase();
 			else if (obj instanceof ProtocolClass)
@@ -362,7 +379,7 @@
 
 		return result.toString();
 	}
-	
+
 	/**
 	 * @param pc a {@link ProtocolClass}
 	 * @return all incoming {@link Message}s including base class with base class messages first
@@ -370,7 +387,7 @@
 	public List<Message> getAllIncomingMessages(ProtocolClass pc) {
 		return getAllMessages(pc, true);
 	}
-	
+
 	/**
 	 * @param pc a {@link ProtocolClass}
 	 * @return all outgoing {@link Message}s including base class with base class messages first
@@ -378,42 +395,42 @@
 	public List<Message> getAllOutgoingMessages(ProtocolClass pc) {
 		return getAllMessages(pc, false);
 	}
-	
+
 	/**
 	 * Returns a list of all {@link Message}s of one direction of a {@link ProtocolClass}
 	 * including base classes.
-	 * 
+	 *
 	 * @param pc a {@link ProtocolClass}
 	 * @param incoming if <code>true</code> the incoming messages are returned, else outgoing
-	 * 
+	 *
 	 * @return a list of all {@link Message}s of one direction a {@link ProtocolClass} including base classes
 	 */
 	public List<Message> getAllMessages(ProtocolClass pc, boolean incoming) {
 		ArrayList<Message> result = new ArrayList<Message>();
-		
+
 		while (pc!=null) {
 			if (incoming)
 				result.addAll(0, pc.getIncomingMessages());
 			else
 				result.addAll(0, pc.getOutgoingMessages());
-			
+
 			pc = pc.getBase();
 		}
-		
+
 		return result;
 	}
 
 	/**
 	 * returns a list of {@link PortOperation}s of a {@link ProtocolClass} for one direction
 	 * including base classes. Ordered by base class first.
-	 *  
+	 *
 	 * @param pc a {@link ProtocolClass}
 	 * @param incoming if <code>true</code> the operations of the regular port are returned, else those of the conjugate
 	 * @return a list of all {@link PortOperation}s for one direction
 	 */
 	public List<PortOperation> getAllOperations(ProtocolClass pc, boolean incoming) {
 		ArrayList<PortOperation> result = new ArrayList<PortOperation>();
-		
+
 		while (pc!=null) {
 			if (incoming) {
 				if (pc.getRegular()!=null)
@@ -423,10 +440,10 @@
 				if (pc.getConjugated()!=null)
 					result.addAll(0, pc.getConjugated().getOperations());
 			}
-			
+
 			pc = pc.getBase();
 		}
-		
+
 		return result;
 	}
 
@@ -451,7 +468,7 @@
 		else
 			return Collections.emptyList();
 	}
-	
+
 	/**
 	 * @param item an {@link InterfaceItem}
 	 * @return <code>true</code> if the item is logically conjugate
@@ -463,116 +480,116 @@
 			return true;
 		else if (item instanceof SPP)
 			return false;
-		
+
 		assert(false): "unexpected sub type";
 		return true;
 	}
-	
+
 	/**
 	 * Returns a list of all {@link Attribute}s of an {@link ActorClass}
 	 * including base classes. Ordered by base class first.
-	 * 
+	 *
 	 * @param ac an {@link ActorClass}
-	 * 
+	 *
 	 * @return a list of all {@link Attribute}s of an {@link ActorClass}
 	 */
 	public List<Attribute> getAllAttributes(ActorClass ac) {
 		ArrayList<Attribute> result = new ArrayList<Attribute>();
-		
+
 		while (ac!=null) {
 			result.addAll(0, ac.getAttributes());
-			
+
 			ac = ac.getActorBase();
 		}
-		
+
 		return result;
 	}
-	
+
 	/**
 	 * Returns a list of all {@link Attribute}s of a {@link DataClass}
 	 * including base classes. Ordered by base class first.
-	 * 
+	 *
 	 * @param dc an {@link DataClass}
-	 * 
+	 *
 	 * @return a list of all {@link Attribute}s of a {@link DataClass}
 	 */
 	public List<Attribute> getAllAttributes(DataClass dc) {
 		ArrayList<Attribute> result = new ArrayList<Attribute>();
-		
+
 		while (dc!=null) {
 			result.addAll(0, dc.getAttributes());
-			
+
 			dc = dc.getBase();
 		}
-		
+
 		return result;
 	}
 
 	/**
 	 * Returns a list of all {@link Operation}s of an {@link ActorClass}
 	 * including base classes. Ordered by base class first.
-	 * 
+	 *
 	 * @param ac an {@link ActorClass}
-	 * 
+	 *
 	 * @return a list of all {@link Operation}s of an {@link ActorClass}
 	 */
 	public List<StandardOperation> getAllOperations(ActorClass ac) {
 		ArrayList<StandardOperation> result = new ArrayList<StandardOperation>();
-		
+
 		while (ac!=null) {
 			result.addAll(0, ac.getOperations());
-			
+
 			ac = ac.getActorBase();
 		}
-		
+
 		return result;
 	}
-	
+
 	/**
 	 * Returns a list of all {@link ClassStructor}s of an {@link ActorClass}
 	 * including base classes. Ordered by base class first.
-	 * 
+	 *
 	 * @param ac an {@link ActorClass}
-	 * 
+	 *
 	 * @return a list of all {@link ClassStructor}s of an {@link ActorClass}
 	 */
 	public List<ClassStructor> getAllStructors(ActorClass ac) {
 		ArrayList<ClassStructor> result = new ArrayList<ClassStructor>();
-		
+
 		while (ac!=null) {
 			result.addAll(0, ac.getStructors());
-			
+
 			ac = ac.getActorBase();
 		}
-		
+
 		return result;
 	}
 
 	/**
 	 * Returns a list of all {@link Operation}s of a {@link DataClass}
 	 * including base classes. Ordered by base class first.
-	 * 
+	 *
 	 * @param dc an {@link DataClass}
-	 * 
+	 *
 	 * @return a list of all {@link Operation}s of a {@link DataClass}
 	 */
 	public List<StandardOperation> getAllOperations(DataClass dc) {
 		ArrayList<StandardOperation> result = new ArrayList<StandardOperation>();
-		
+
 		while (dc!=null) {
 			result.addAll(0, dc.getOperations());
-			
+
 			dc = dc.getBase();
 		}
-		
+
 		return result;
 	}
-	
+
 	/**
 	 * Returns the latest implementations of (overridden) {@link Operation}s.
-	 * 
+	 *
 	 * @param ac an {@link ActorClass}
-	 * 
+	 *
 	 * @return a list of {@link Operation}s of an {@link ActorClass} inheritance hierarchy
 	 */
 	public List<StandardOperation> getLatestOperations(ActorClass ac){
@@ -584,16 +601,16 @@
 					map.put(op.getName(), op);
 			base = base.getActorBase();
 		}
-		
+
 		return Lists.newArrayList(map.values());
 	}
-	
-	
+
+
 	/**
 	 * Returns the latest implementations of (overridden) {@link Operation}s.
-	 * 
+	 *
 	 * @param ac an {@link DataClass}
-	 * 
+	 *
 	 * @return a list of {@link Operation}s of an {@link DataClass} inheritance hierarchy
 	 */
 	public List<StandardOperation> getLatestOperations(DataClass dc){
@@ -605,36 +622,36 @@
 					map.put(op.getName(), op);
 			base = base.getBase();
 		}
-		
+
 		return Lists.newArrayList(map.values());
 	}
-	
+
 
 	/**
 	 * Returns a list of all {@link ClassStructor}s of a {@link DataClass}
 	 * including base classes. Ordered by base class first.
-	 * 
+	 *
 	 * @param dc an {@link DataClass}
-	 * 
+	 *
 	 * @return a list of all {@link ClassStructor}s of a {@link DataClass}
 	 */
 	public List<ClassStructor> getAllStructors(DataClass ac) {
 		ArrayList<ClassStructor> result = new ArrayList<ClassStructor>();
-		
+
 		while (ac!=null) {
 			result.addAll(0, ac.getStructors());
-			
+
 			ac = ac.getBase();
 		}
-		
+
 		return result;
 	}
-	
+
 	/**
 	 * Returns a list of the (internal and external) end {@link Port}s of an {@link ActorClass}.
-	 * 
+	 *
 	 * @param ac an {@link ActorClass}
-	 * 
+	 *
 	 * @return a list of the end {@link Port}s of an {@link ActorClass}
 	 */
 	public List<Port> getEndPorts(ActorClass ac) {
@@ -648,74 +665,74 @@
 
 		return result;
 	}
-	
+
 	/**
 	 * Returns a list of {@link SAP}s of an {@link ActorClass}
 	 * including base classes.
-	 * 
+	 *
 	 * @param ac an {@link ActorClass}
-	 * 
+	 *
 	 * @return a list of all end {@link SAP}s of an {@link ActorClass}
 	 * 		with base class items first
 	 */
 	public List<SAP> getAllSAPs(ActorClass ac) {
 		ArrayList<SAP> result = new ArrayList<SAP>();
-		
+
 		while (ac!=null) {
 			result.addAll(0, ac.getServiceAccessPoints());
 			ac = ac.getActorBase();
 		}
-		
+
 		return result;
 	}
-	
+
 	/**
 	 * Returns a list of all (internal and external) end {@link ServiceImplementation}s of an {@link ActorClass}
 	 * including base classes.
-	 * 
+	 *
 	 * @param ac an {@link ActorClass}
-	 * 
+	 *
 	 * @return a list of all end {@link ServiceImplementation}s of an {@link ActorClass}
 	 * 		with base class items first
 	 */
 	public List<ServiceImplementation> getAllServiceImplementations(ActorClass ac) {
 		ArrayList<ServiceImplementation> result = new ArrayList<ServiceImplementation>();
-		
+
 		while (ac!=null) {
 			result.addAll(0, ac.getServiceImplementations());
 			ac = ac.getActorBase();
 		}
-		
+
 		return result;
 	}
-	
+
 	/**
 	 * Returns a list of all {@link Port}s of an {@link ActorClass}
 	 * including base classes.
-	 * 
+	 *
 	 * @param ac an {@link ActorClass}
-	 * 
+	 *
 	 * @return a list of all end {@link Port}s of an {@link ActorClass}
 	 * 		with base class items first
 	 */
 	public List<Port> getAllEndPorts(ActorClass ac) {
 		ArrayList<Port> result = new ArrayList<Port>();
-		
+
 		while (ac!=null) {
 			result.addAll(0, ac.getInternalPorts());
-			
+
 			// to preserve the order of external ports we use insertAt
 			int insertAt = 0;
 			for (ExternalPort p : ac.getExternalPorts()) {
 				result.add(insertAt++, p.getInterfacePort());
 			}
-			
+
 			ac = ac.getActorBase();
 		}
-		
+
 		return result;
 	}
-    
+
 	/**
 	 * @param ac an {@link ActorClass}
 	 * @return a list of the interface ports
@@ -751,7 +768,7 @@
 		assert (false) : "unexpected sub type";
 		return null;
 	}
-	
+
 	/**
 	 * @param ac an {@link ActorClass}
 	 * @return a list of all interface items <i>without</i> inherited ones
@@ -764,10 +781,10 @@
 		result.addAll(ac.getExternalEndPorts());
 		result.addAll(ac.getServiceAccessPoints());
 		result.addAll(ac.getImplementedSPPs());
-		
+
 		return result;
 	}
-	
+
 	/**
 	 * @param dc the data class to check
 	 * @return {@code true} if the class hierarchy is circular (i.e. a base class refers to one of its sub classes)
@@ -775,15 +792,15 @@
 	public boolean isCircularClassHierarchy(DataClass dc) {
 		HashSet<DataClass> classes = new HashSet<DataClass>();
 		classes.add(dc);
-		
+
 		while (dc.getBase()!=null) {
 			dc = dc.getBase();
 			if (classes.contains(dc))
 				return true;
-			
+
 			classes.add(dc);
 		}
-		
+
 		return false;
 	}
 
@@ -794,69 +811,69 @@
 	public boolean isCircularClassHierarchy(ProtocolClass pc) {
 		HashSet<ProtocolClass> classes = new HashSet<ProtocolClass>();
 		classes.add(pc);
-		
+
 		while (pc.getBase()!=null) {
 			pc = pc.getBase();
 			if (classes.contains(pc))
 				return true;
-			
+
 			classes.add(pc);
 		}
-		
+
 		return false;
 	}
-	
+
 	/**
 	 * Returns a list of all end {@link InterfaceItem}s of an {@link ActorClass}
 	 * including base classes. I.e. all end ports, all SAPs and all non-relaying SPPs.
-	 * 
+	 *
 	 * @param ac an {@link ActorClass}
-	 * 
+	 *
 	 * @return a list of all end {@link InterfaceItem}s of an {@link ActorClass}
 	 */
 	public List<InterfaceItem> getAllInterfaceItems(ActorClass ac) {
 		ArrayList<InterfaceItem> result = new ArrayList<InterfaceItem>();
 		if (isCircularClassHierarchy(ac))
 			return result;
-		
+
 		while (ac!=null) {
 			result.addAll(ac.getInternalPorts());
 			result.addAll(ac.getExternalEndPorts());
 			result.addAll(ac.getServiceAccessPoints());
 			result.addAll(ac.getImplementedSPPs());
-			
+
 			ac = ac.getActorBase();
 		}
-		
+
 		return result;
 	}
-	
+
 	/**
 	 * Returns a list of all {@link Port}s of an {@link ActorClass}
 	 * including base classes.
-	 * 
+	 *
 	 * @param ac an {@link ActorClass}
-	 * 
+	 *
 	 * @return a list of all {@link Port}s of an {@link ActorClass}
 	 */
 	public List<Port> getAllPorts(ActorClass ac) {
 		ArrayList<Port> result = new ArrayList<Port>();
 		if (isCircularClassHierarchy(ac))
 			return result;
-		
+
 		while (ac!=null) {
 			result.addAll(ac.getInternalPorts());
 			result.addAll(ac.getInterfacePorts());
-			
+
 			ac = ac.getActorBase();
 		}
-		
+
 		return result;
 	}
-	
+
 	public List<ActorContainerRef> getAllActorContainerRefs(StructureClass sc) {
 		List<ActorContainerRef> refs = new ArrayList<ActorContainerRef>();
-		
+
 		if(sc instanceof LogicalSystem)
 			refs.addAll(((LogicalSystem)sc).getSubSystems());
 		else if(sc instanceof ActorContainerClass) {
@@ -867,59 +884,59 @@
 					refs.addAll(base.getActorRefs());
 			}
 		}
-		
+
 		return refs;
 	}
-	
+
 	/**
 	 * Returns a list of all {@link Binding}s of an {@link ActorClass}
 	 * including base classes.
-	 * 
+	 *
 	 * @param ac an {@link ActorClass}
-	 * 
+	 *
 	 * @return a list of all {@link Binding}s of an {@link ActorClass}
 	 */
 	public List<Binding> getAllBindings(ActorClass ac) {
 		ArrayList<Binding> result = new ArrayList<Binding>();
 		if (isCircularClassHierarchy(ac))
 			return result;
-		
+
 		while (ac!=null) {
 			result.addAll(ac.getBindings());
-			
+
 			ac = ac.getActorBase();
 		}
-		
+
 		return result;
 	}
-	
+
 	/**
 	 * Returns a list of all {@link LayerConnection}s of an {@link ActorClass}
 	 * including base classes.
-	 * 
+	 *
 	 * @param ac an {@link ActorClass}
-	 * 
+	 *
 	 * @return a list of all {@link LayerConnection}s of an {@link ActorClass}
 	 */
 	public List<LayerConnection> getAllLayerConnections(ActorClass ac) {
 		ArrayList<LayerConnection> result = new ArrayList<LayerConnection>();
 		if (isCircularClassHierarchy(ac))
 			return result;
-		
+
 		while (ac!=null) {
 			result.addAll(ac.getConnections());
-			
+
 			ac = ac.getActorBase();
 		}
-		
+
 		return result;
 	}
 
 	/**
 	 * Returns the parent {@link ActorClass} of a {@link StateGraphItem}.
-	 * 
+	 *
 	 * @param item a {@link StateGraphItem}
-	 * 
+	 *
 	 * @return the parent {@link ActorClass} of a {@link StateGraphItem}
 	 */
 	public ActorClass getActorClass(StateGraphItem item) {
@@ -932,12 +949,12 @@
 		assert(false): "data structure broken";
 		return null;
 	}
-	
+
 	/**
 	 * Returns the parent {@link ActorClass} of an arbitrary EObject (result may be null).
-	 * 
+	 *
 	 * @param obj an {@link EObject}
-	 * 
+	 *
 	 * @return the parent {@link ActorClass} of an arbitrary EObject (result may be null)
 	 */
 	public ActorClass getActorClass(EObject obj) {
@@ -963,12 +980,12 @@
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Returns the parent {@link ProtocolClass} of an arbitrary EObject (result may be null).
-	 * 
+	 *
 	 * @param obj an {@link EObject}
-	 * 
+	 *
 	 * @return the parent {@link ProtocolClass} of an arbitrary EObject (result may be null)
 	 */
 	public ProtocolClass getProtocolClass(EObject obj) {
@@ -977,128 +994,128 @@
 			ctx = ctx.eContainer();
 		if (ctx instanceof ProtocolClass)
 			return (ProtocolClass) ctx;
-		
+
 		return null;
 	}
-	
+
 	/**
 	 * <code>true</code> if the named annotation is present in the {@link ActorClass}.
-	 * 
+	 *
 	 * @param ac the {@link ActorClass}
 	 * @param name the name to be searched
-	 * 
+	 *
 	 * @return <code>true</code> if the named annotation is present in the {@link ActorClass}
 	 */
 	public boolean isAnnotationPresent(ActorClass ac, String name) {
 		return isAnnotationPresent(ac.getAnnotations(), name);
 	}
-	
+
 	/**
 	 * <code>true</code> if the named annotation is present in the <em>behavior</em>
 	 * of the {@link ActorClass}.
-	 * 
+	 *
 	 * @param ac the {@link ActorClass}
 	 * @param name the name to be searched
-	 * 
+	 *
 	 * @return <code>true</code> if the named annotation is present in the <em>behavior</em>
 	 * of the {@link ActorClass}
 	 */
 	public boolean isBehaviorAnnotationPresent(ActorClass ac, String name) {
 		return isAnnotationPresent(ac.getBehaviorAnnotations(), name);
 	}
-	
+
 	/**
 	 * Returns a list of the {@link Annotation} attributes of the named annotation.
 	 * Returns an empty list if no such annotation is found.
-	 * 
+	 *
 	 * @param ac the {@link ActorClass}
 	 * @param name the name to be searched
-	 * 
+	 *
 	 * @return a list of the {@link Annotation} attributes of the named annotation
 	 */
 	public List<KeyValue> getAttributes(ActorClass ac, String name) {
 		return getAttributes(ac.getAnnotations(), name);
 	}
-	
-	
+
+
 	/**
 	 * Returns a list of the <em>behavior</em> {@link Annotation} attributes of the named annotation.
 	 * Returns an empty list if no such annotation is found.
-	 * 
+	 *
 	 * @param ac the {@link ActorClass}
 	 * @param name the name to be searched
-	 * 
+	 *
 	 * @return a list of the {@link Annotation} attributes of the named annotation
 	 */
 	public List<KeyValue> getBehaviorAttributes(ActorClass ac, String name) {
 		return getAttributes(ac.getBehaviorAnnotations(), name);
 	}
-	
+
 	/**
 	 * Searches the annotation attributes of an {@link ActorClass} for a given name.
-	 *  
+	 *
 	 * @param ac the actor class
 	 * @param name the annotation name
 	 * @param key the attribute name
-	 * 
+	 *
 	 * @return <code>true</code> if such an attribute is present
-	 * 
+	 *
 	 * @see #isBehaviorAttributePresent(ActorClass, String, String)
 	 */
 	public boolean isAttributePresent(ActorClass ac, String name, String key) {
 		return isAttributePresent(ac.getAnnotations(), name, key);
 	}
-	
+
 	/**
 	 * Searches the behavior annotation attributes of an {@link ActorClass} for a given name.
-	 *  
+	 *
 	 * @param ac the actor class
 	 * @param name the annotation name
 	 * @param key the attribute name
-	 * 
+	 *
 	 * @return <code>true</code> if such an attribute is present
-	 * 
+	 *
 	 * @see #isAttributePresent(ActorClass, String, String)
 	 */
 	public boolean isBehaviorAttributePresent(ActorClass ac, String name, String key) {
 		return isAttributePresent(ac.getBehaviorAnnotations(), name, key);
 	}
-	
+
 	/**
 	 * Returns the value of an annotation attribute of an {@link ActorClass}
-	 * 
+	 *
 	 * @param ac the actor class
 	 * @param name the annotation name
 	 * @param key the attribute name
-	 * 
+	 *
 	 * @return the string value of the attribute or an empty string if not found
 	 */
 	public String getAttribute(ActorClass ac, String name, String key) {
 		return getAttribute(ac.getAnnotations(), name, key);
 	}
-	
+
 	/**
 	 * Returns the value of an behavior annotation attribute of an {@link ActorClass}
-	 * 
+	 *
 	 * @param ac the actor class
 	 * @param name the annotation name
 	 * @param key the attribute name
-	 * 
+	 *
 	 * @return the string value of the attribute or an empty string if not found
 	 */
 	public String getBehaviorAttribute(ActorClass ac, String name, String key) {
 		return getAttribute(ac.getBehaviorAnnotations(), name, key);
 	}
-	
+
 	/**
 	 * Computes a list of all messages that can be received or sent by an {@link InterfaceItem}
 	 * (i.e. {@link Port}, {@link SAP} or {@link SPP}.
-	 * 
+	 *
 	 * @param item the interface item
 	 * @param outgoing <code>true</code> for outgoing, <code>false</code> for incoming
-	 * 
+	 *
 	 * @return a list of all messages
-	 * 
+	 *
 	 * @see #getAllMessages(ProtocolClass, boolean)
 	 */
 	public List<Message> getMessageListDeep(InterfaceItem item, boolean outgoing) {
@@ -1109,7 +1126,7 @@
 				assert(false): "unexpected protocol type";
 				return null;
 			}
-			
+
 			protocol = (ProtocolClass) ((Port) item).getProtocol();
 			if (((Port) item).isConjugated())
 				outgoing = !outgoing;
@@ -1125,17 +1142,17 @@
 			assert(false): "unexpected sub type";
 			return null;
 		}
-		
+
 		return getAllMessages(protocol, !outgoing);
 	}
-	
+
 	/**
 	 * Returns the {@link PortClass} associated with an {@link InterfaceItem}
 	 * (i.e. {@link Port}, {@link SAP} or {@link SPP}.
 	 * For regular ports this is the regular PortClass of the associated {@link ProtocolClass}.
-	 * 
+	 *
 	 * @param item the interface item
-	 * 
+	 *
 	 * @return the PortClass or null if not defined
 	 */
 	public PortClass getPortClass(InterfaceItem item) {
@@ -1147,7 +1164,7 @@
 				assert(false): "unexpected protocol type";
 				return null;
 			}
-			
+
 			protocol = (ProtocolClass) ((Port) item).getProtocol();
 			conjugated = ((Port) item).isConjugated();
 		}
@@ -1162,13 +1179,13 @@
 			assert(false): "unexpected sub type";
 			return null;
 		}
-		
+
 		return conjugated? protocol.getConjugated():protocol.getRegular();
 	}
-	
+
 	/**
 	 * returns true if this is a relay port
-	 * 
+	 *
 	 * @param port
 	 * @return true if relay port
 	 */
@@ -1187,10 +1204,10 @@
 		else
 			return true;
 	}
-	
+
 	/**
 	 * Returns true if this is an internal port.
-	 * 
+	 *
 	 * @param port
 	 * @return true if internal port
 	 */
@@ -1205,10 +1222,10 @@
 		else
 			return false;
 	}
-	
+
 	/**
 	 * Returns true if this is an external port.
-	 * 
+	 *
 	 * @param port
 	 * @return true if external port
 	 */
@@ -1223,13 +1240,13 @@
 		}
 		return false;
 	}
-	
+
 	/**
 	 * Returns the {@link ProtocolClass} of an {@link InterfaceItem}.
 	 * In case of a relay port with a CompoundProtocolClass <code>null</code> is returned.
-	 * 
+	 *
 	 * @param item the interface item
-	 * 
+	 *
 	 * @return the {@link ProtocolClass} of an {@link InterfaceItem}
 	 */
 	public ProtocolClass getProtocol(InterfaceItem item) {
@@ -1239,10 +1256,10 @@
 			else
 				return null;
 	}
-	
+
 	/**
 	 * Returns {@code true} if the interface item is data driven (i.e. has a data driven {@link ProtocolClass}.
-	 * 
+	 *
 	 * @param item an {@link InterfaceItem}
 	 * @return {@code true} if the interface item is data driven (i.e. has a data driven {@link ProtocolClass}
 	 */
@@ -1250,15 +1267,15 @@
 		ProtocolClass pc = getProtocol(item);
 		if (pc!=null && pc.getCommType()==CommunicationType.DATA_DRIVEN)
 			return true;
-		
+
 		return false;
 	}
-	
+
 	/**
 	 * Returns the {@link GeneralProtocolClass} of an {@link InterfaceItem}.
-	 * 
+	 *
 	 * @param item the interface item
-	 * 
+	 *
 	 * @return the {@link GeneralProtocolClass} of an {@link InterfaceItem}
 	 */
 	public GeneralProtocolClass getGeneralProtocol(InterfaceItem item) {
@@ -1269,7 +1286,7 @@
 			return ((SAP)item).getProtocol();
 		else if (item instanceof SPP)
 			return ((SPP)item).getProtocol();
-		
+
 		assert(item.eIsProxy()): "unexpected sub type";
 		return null;
 	}
@@ -1277,9 +1294,9 @@
 	/**
 	 * Determines the last common super type of a list of types or <code>null</code> if no such exists.
 	 * If a  {@link RefableType} is returned then it is an independent copy not part of the model.
-	 * 
+	 *
 	 * @param types a list of {@link RefableType}s
-	 * 
+	 *
 	 * @return the last common super type of a list of types or <code>null</code> if no such exists
 	 */
 	public RefableType getLastCommonSuperType(List<RefableType> types) {
@@ -1289,18 +1306,18 @@
 			if (rt==null)
 				// no data
 				return null;
-			
+
 			if (rt.getType() instanceof DataClass)
 				++ndc;
-			
+
 			if (rt.isRef())
 				++nref;
 		}
-		
+
 		// all or none can be ref
 		if (!(nref==0 || nref==types.size()))
 			return null;
-		
+
 		if (ndc==0) {
 			// in this case all types have to be the same
 			DataType type = types.get(0).getType();
@@ -1317,7 +1334,7 @@
 				DataClass dc = (DataClass) rt.getType();
 				ArrayList<DataClass> superTypes = new ArrayList<DataClass>();
 				allSuperTypes.add(superTypes);
-				
+
 				// add base classes first
 				while (dc!=null) {
 					superTypes.add(0, dc);
@@ -1331,9 +1348,9 @@
 				if (superTypes.get(0)!=common)
 					return null;
 			}
-			
+
 			// common is a candidate
-			
+
 			// lets try to improve
 			tryImprove:
 				for (int idx = 1; idx<min; ++idx) {
@@ -1344,21 +1361,21 @@
 					}
 					common = better;
 				}
-			
+
 			RefableType rt = RoomFactory.eINSTANCE.createRefableType();
 			rt.setRef(nref>0);
 			rt.setType(common);
 			return rt;
 		}
-		
+
 		return null;
 	}
 
 	/**
 	 * Returns the parent container of an {@link ActorInstanceMapping}.
-	 * 
+	 *
 	 * @param aim the actor instance mapping
-	 * 
+	 *
 	 * @return the parent container of an {@link ActorInstanceMapping}
 	 */
 	public ActorContainerClass getParentContainer(ActorInstanceMapping aim) {
@@ -1375,9 +1392,9 @@
 
 	/**
 	 * Return the target {@link ActorContainerClass} of an instance mapping.
-	 * 
+	 *
 	 * @param aim the actor instance mapping
-	 * 
+	 *
 	 * @return the target {@link ActorContainerClass} of an instance mapping
 	 */
 	public ActorContainerClass getActorContainerClass(ActorInstanceMapping aim) {
@@ -1394,18 +1411,18 @@
 
 			if (match == null)
 				return null;
-			
+
 			result = match.getType();
 		}
 
 		return result;
 	}
-	
+
 	/**
 	 * Returns a {@link RefPath} as string.
-	 * 
+	 *
 	 * @param path the reference path of a mapping
-	 * 
+	 *
 	 * @return a {@link RefPath} as string
 	 */
 	public String asString(RefPath path) {
@@ -1415,20 +1432,20 @@
 		}
 		return sb.toString();
 	}
-	
+
 	/**
 	 * Returns the last {@link ActorRef} of a {@link RefPath} relative to a
 	 * {@link ActorContainerClass}.
-	 * 
+	 *
 	 * @param root the starting point (an {@link ActorContainerClass})
 	 * @param path the path of actor references
-	 * 
+	 *
 	 * @return the last {@link ActorRef} of a {@link RefPath}
 	 */
 	public ActorRef getLastActorRef(ActorContainerClass root, RefPath path) {
 		if (path.getRefs().isEmpty())
 			return null;
-		
+
 		ActorRef lastMatch = null;
 		ActorContainerClass result = root;
 		for (RefSegment ref : path.getRefs()) {
@@ -1442,7 +1459,7 @@
 
 			if (match == null)
 				return null;
-			
+
 			result = match.getType();
 			lastMatch = match;
 		}
@@ -1452,7 +1469,7 @@
 
 	/**
 	 * returns first invalid path segment else {@code null}
-	 * 
+	 *
 	 * @param root
 	 * @param path
 	 * @return first invalid path segment else {@code null}
@@ -1491,7 +1508,7 @@
 			}
 			if (match == null)
 				return ref.getRef();
-			
+
 			if (match.getMultiplicity()==1) {
 				if (ref.getIdx()!=-1)
 					return ref.toString()+" (ref not indexed )";
@@ -1502,7 +1519,7 @@
 				if (ref.getIdx()>=match.getMultiplicity())
 					return ref.toString()+" (index out of bounds)";
 			}
-			
+
 			last = match.getType();
 		}
 
@@ -1511,16 +1528,16 @@
 
 	/**
 	 * checks whether pc1 is derived from (but not equal) pc2
-	 * 
+	 *
 	 * @param pc1 potential sub class
 	 * @param pc2 potential super class
-	 * 
+	 *
 	 * @return true if pc1 is derived from pc2
 	 */
 	public boolean isDerivedFrom(ProtocolClass pc1, ProtocolClass pc2) {
 		if (pc1==pc2)
 			return false;
-		
+
 		while (pc1!=null) {
 			if (pc1==pc2)
 				return true;
@@ -1530,7 +1547,7 @@
 	}
 
 	/**
-	 * check whether ac2 is super type of ac1 
+	 * check whether ac2 is super type of ac1
 	 * @param ac1
 	 * @param ac2
 	 * @return <code>true</code> if ac1 or one of its base types is identical to ac2
@@ -1541,16 +1558,16 @@
 
 		if (ac1==null || isCircularClassHierarchy(ac1))
 			return false;
-		
+
 		while (ac1!=null) {
 			if (ac2==ac1)
 				return true;
-			
+
 			ac1 = ac1.getActorBase();
 		}
 		return false;
 	}
-	
+
 	/**
 	 * check if ref recursively is referencing ac
 	 * @param ref
@@ -1560,18 +1577,18 @@
 	public boolean isReferencing(ActorClass ref, ActorClass ac) {
 		if (isKindOf(ref,ac))
 			return true;
-		
+
 		Set<ActorClass> visited = new HashSet<ActorClass>();
 		LinkedList<ActorClass> stack = new LinkedList<ActorClass>();
 		visited.add(ac);
 		stack.push(ref);
-		
+
 		ActorClass next;
 		while(!stack.isEmpty()){
 			next = stack.pop();
 			if(visited.contains(next))
 				continue;
-			
+
 			for (ActorRef ar : next.getActorRefs()) {
 				if (isKindOf(ar.getType(), ac) || isKindOf(next, ar.getType()))
 					return true;
@@ -1579,10 +1596,10 @@
 			}
 			visited.add(next);
 		}
-		
+
 		return false;
 	}
-	
+
 	@SuppressWarnings({ "rawtypes", "unchecked" })
 	public boolean matchingArguments(Operation op1, Operation op2){
 		List sig1 = Lists.newArrayList();
@@ -1597,16 +1614,16 @@
 			sig2.add(varDecl.getRefType().getType());
 			sig2.add(varDecl.getRefType().isRef());
 		}
-		
+
 		return sig1.equals(sig2);
 	}
-	
+
 	public boolean matchingReturnType(Operation op1, Operation op2){
 		RefableType refType1 = op1.getReturnType();
 		RefableType refType2 = op2.getReturnType();
 		if(refType1 != null && refType2 != null)
 			return refType1.getType().equals(refType2.getType()) && refType1.isRef() == refType2.isRef();
-		
+
 		return refType1 == null && refType2 == null;
 	}
 }
diff --git a/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/validation/RoomJavaValidator.java b/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/validation/RoomJavaValidator.java
index 04705ac..66d74bc 100644
--- a/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/validation/RoomJavaValidator.java
+++ b/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/validation/RoomJavaValidator.java
@@ -281,10 +281,10 @@
 
 	@Check
 	public void checkAttribute(Attribute attr){
+		if(attr.getType() == null)
+			error("missing type", attr, RoomPackage.Literals.ATTRIBUTE__TYPE);
 		if(attr.getDefaultValueLiteral() != null)
 			warning("deprecated,  initialize in user code or .config instead", attr, RoomPackage.Literals.ATTRIBUTE__DEFAULT_VALUE_LITERAL);
-		if(!(attr.eContainer() instanceof DataClass) &&attr.getSize() > 0)
-			warning("deprecated, array types should be declared in data classes only", attr, RoomPackage.Literals.ATTRIBUTE__SIZE);
 	}
 
 	@Check
diff --git a/plugins/org.eclipse.etrice.generator.cpp/src/org/eclipse/etrice/generator/cpp/gen/ActorClassGen.xtend b/plugins/org.eclipse.etrice.generator.cpp/src/org/eclipse/etrice/generator/cpp/gen/ActorClassGen.xtend
index 90d6233..8251fce 100644
--- a/plugins/org.eclipse.etrice.generator.cpp/src/org/eclipse/etrice/generator/cpp/gen/ActorClassGen.xtend
+++ b/plugins/org.eclipse.etrice.generator.cpp/src/org/eclipse/etrice/generator/cpp/gen/ActorClassGen.xtend
@@ -251,7 +251,7 @@
 				RTServices::getInstance().getMsgSvcCtrl().getMsgSvc(getThread())->addPollingMessageReceiver(*this);
 			«ENDIF»
 
-			«initHelper.genArrayInitializers(ac.attributes)»
+			«initHelper.genExtraInitializers(ac.attributes)»
 			«ac.userStructorBody(true)»
 		}
 
diff --git a/plugins/org.eclipse.etrice.generator.cpp/src/org/eclipse/etrice/generator/cpp/gen/DataClassGen.xtend b/plugins/org.eclipse.etrice.generator.cpp/src/org/eclipse/etrice/generator/cpp/gen/DataClassGen.xtend
index 29b9c98..20f92d5 100644
--- a/plugins/org.eclipse.etrice.generator.cpp/src/org/eclipse/etrice/generator/cpp/gen/DataClassGen.xtend
+++ b/plugins/org.eclipse.etrice.generator.cpp/src/org/eclipse/etrice/generator/cpp/gen/DataClassGen.xtend
@@ -23,6 +23,7 @@
 import org.eclipse.etrice.generator.generic.ProcedureHelpers
 import org.eclipse.etrice.generator.generic.RoomExtensions
 import org.eclipse.xtext.generator.JavaIoFileSystemAccess
+import org.eclipse.etrice.core.room.util.RoomHelpers
 
 @Singleton
 class DataClassGen {
@@ -33,7 +34,7 @@
 	@Inject extension ProcedureHelpers helpers
 //	@Inject extension TypeHelpers typeHelpers
 	@Inject Initialization initHelper
-//	@Inject extension RoomHelpers
+	@Inject extension RoomHelpers
 	@Inject ILogger logger
 
 	def doGenerate(Root root) {
@@ -94,8 +95,7 @@
 			«dc.name»& operator=(const «dc.name»& rhs);
 
 			// constructor using fields
-			// TODO
-			//«IF !dc.attributes.empty»«dc.name»(«dc.attributes.argList»);«ENDIF»
+			«IF !dc.allAttributes.empty»«dc.name»(«dc.allAttributes.argList»);«ENDIF»
 		};
 
 		«dc.generateNamespaceEnd»
@@ -125,7 +125,7 @@
 		«dc.name»::«dc.name»()
 			«dc.generateDefaultInitalizerList»
 		{
-			«initHelper.genArrayInitializers(dc.attributes)»
+			«initHelper.genExtraInitializers(dc.attributes)»
 			«dc.userStructorBody(true)»
 		}
 
@@ -137,13 +137,12 @@
 
 		// constructor using fields
 		// TODO
-«««		«IF !dc.attributes.empty»
-«««			«dc.name»::«dc.name»(«dc.attributes.argList»)
-«««				«IF dc.base!=null»:«dc.base.name»()«ENDIF»
-«««			{
-«««				«dc.userStructorBody(true)»
-«««			}
-«««		«ENDIF»
+		«IF !dc.allAttributes.empty»
+			«dc.name»::«dc.name»(«dc.allAttributes.argList»)
+				«dc.generateFieldInitializerList»
+			{
+			}
+		«ENDIF»
 
 		// assignment operator
 		«dc.name»& «dc.name»::operator=(const «dc.name»& rhs)
@@ -182,6 +181,17 @@
 		initList.generateCtorInitializerList
 	}
 
+	def private generateFieldInitializerList(DataClass dataClass){
+		val extension initHelper = initHelper
+		var initList = <CharSequence>newArrayList
+
+		if(dataClass.base != null)
+			initList += '''«dataClass.base.name»(«dataClass.base.allAttributes.map[name].join(', ')»)'''
+		initList += dataClass.attributes.map['''«name»(«name»)''']
+
+		initList.generateCtorInitializerList
+	}
+
 //	def paramList(DataClass _dc) {
 //		var result = ""
 //		var dc = _dc
diff --git a/plugins/org.eclipse.etrice.generator.cpp/src/org/eclipse/etrice/generator/cpp/gen/Initialization.xtend b/plugins/org.eclipse.etrice.generator.cpp/src/org/eclipse/etrice/generator/cpp/gen/Initialization.xtend
index e494937..493d4b3 100644
--- a/plugins/org.eclipse.etrice.generator.cpp/src/org/eclipse/etrice/generator/cpp/gen/Initialization.xtend
+++ b/plugins/org.eclipse.etrice.generator.cpp/src/org/eclipse/etrice/generator/cpp/gen/Initialization.xtend
@@ -24,26 +24,43 @@
 	@Inject ILanguageExtension languageExt
 	@Inject TypeHelpers typeHelpers
 
-	def generateCtorInitializerList(Iterable<? extends CharSequence> items) '''
-		«FOR s : items BEFORE ':' SEPARATOR ','»«s»
-		«ENDFOR»
-	'''
-
-	def genArrayInitializers(Iterable<Attribute> attributes) {
-		val arrayInitAttrs = attributes.filter[size > 0 && defaultValueLiteral != null && defaultValueLiteral.startsWith('{')]
-		if(arrayInitAttrs.empty) return ''
+	def generateCtorInitializerList(Iterable<? extends CharSequence> items){
+		if(items.empty) return ''
 		'''
-			// array initialization
-			«FOR it : arrayInitAttrs»
-				«typeHelpers.getTypeName(it)» «name»InitValues[«size»] = «defaultValueLiteral»;
+			: «items.head»
+			«FOR item : items.tail»
+				, «item»
+			«ENDFOR»
+		'''
+	}
+
+	/*
+	 *  Generate array and struct initialization
+	 */
+	def genExtraInitializers(Iterable<Attribute> attributes) {
+		val extraInitAttrs = attributes.filter[initializerListValue == null && initValue != null && initValue.startsWith('{')]
+		if(extraInitAttrs.empty) return ''
+		'''
+			// extra initialization
+			«FOR it : extraInitAttrs.filter[size > 0]»
+				«typeHelpers.getTypeName(it)» «name»InitValues[«size»] = «initValue»;
 				«name» = «name»InitValues;
 			«ENDFOR»
+			«FOR it : extraInitAttrs.filter[size == 0]»
+				«typeHelpers.getTypeName(it)» «name»InitValue = «initValue»;
+				«name» = «name»InitValue;
+			«ENDFOR»
 		'''
 	}
 
 	def String getInitializerListValue(Attribute attribute) {
+		val initValue = attribute.initValue
+		return if(initValue != null && initValue.startsWith('{')) null else initValue
+	}
+
+	def protected getInitValue(Attribute attribute) {
 		switch it : attribute {
-			case defaultValueLiteral != null: if(defaultValueLiteral.startsWith('{')) null else defaultValueLiteral
+			case defaultValueLiteral != null: defaultValueLiteral
 			case type.ref: languageExt.nullPointer
 			default: languageExt.defaultValue(type.type)
 		}
diff --git a/plugins/org.eclipse.etrice.generator.cpp/src/org/eclipse/etrice/generator/cpp/gen/ProtocolClassGen.xtend b/plugins/org.eclipse.etrice.generator.cpp/src/org/eclipse/etrice/generator/cpp/gen/ProtocolClassGen.xtend
index 22494ef..ca48d51 100644
--- a/plugins/org.eclipse.etrice.generator.cpp/src/org/eclipse/etrice/generator/cpp/gen/ProtocolClassGen.xtend
+++ b/plugins/org.eclipse.etrice.generator.cpp/src/org/eclipse/etrice/generator/cpp/gen/ProtocolClassGen.xtend
@@ -255,7 +255,7 @@
 	«portClassName»::«portClassName»(IInterfaceItemOwner* actor, const std::string& name, int localId, int idx)
 		«pclass.generateConstructorInitalizerList('idx')»
 	{
-		«IF pclass != null»«initHelper.genArrayInitializers(pclass.attributes)»«ENDIF»
+		«IF pclass != null»«initHelper.genExtraInitializers(pclass.attributes)»«ENDIF»
 		«IF Main::settings.generateMSCInstrumentation»
 			DebuggingService::getInstance().addPortInstance(*this);
 		«ENDIF»
diff --git a/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/ActorClassGen.java b/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/ActorClassGen.java
index 353e703..03811a8 100644
--- a/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/ActorClassGen.java
+++ b/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/ActorClassGen.java
@@ -821,8 +821,8 @@
       _builder.newLine();
       _builder.append("\t");
       EList<Attribute> _attributes = ac.getAttributes();
-      CharSequence _genArrayInitializers = this.initHelper.genArrayInitializers(_attributes);
-      _builder.append(_genArrayInitializers, "\t");
+      CharSequence _genExtraInitializers = this.initHelper.genExtraInitializers(_attributes);
+      _builder.append(_genExtraInitializers, "\t");
       _builder.newLineIfNotEmpty();
       _builder.append("\t");
       String _userStructorBody = this._procedureHelpers.userStructorBody(ac, true);
diff --git a/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/DataClassGen.java b/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/DataClassGen.java
index c8e534c..f71c8a4 100644
--- a/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/DataClassGen.java
+++ b/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/DataClassGen.java
@@ -27,6 +27,7 @@
 import org.eclipse.etrice.core.room.RefableType;
 import org.eclipse.etrice.core.room.RoomModel;
 import org.eclipse.etrice.core.room.StandardOperation;
+import org.eclipse.etrice.core.room.util.RoomHelpers;
 import org.eclipse.etrice.generator.cpp.gen.CppExtensions;
 import org.eclipse.etrice.generator.cpp.gen.Initialization;
 import org.eclipse.etrice.generator.generic.ProcedureHelpers;
@@ -36,6 +37,7 @@
 import org.eclipse.xtext.xbase.lib.CollectionLiterals;
 import org.eclipse.xtext.xbase.lib.Extension;
 import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
 import org.eclipse.xtext.xbase.lib.ListExtensions;
 
 @Singleton
@@ -61,6 +63,10 @@
   private Initialization initHelper;
   
   @Inject
+  @Extension
+  private RoomHelpers _roomHelpers;
+  
+  @Inject
   private ILogger logger;
   
   public void doGenerate(final Root root) {
@@ -233,20 +239,16 @@
     _builder.append("// constructor using fields");
     _builder.newLine();
     _builder.append("\t");
-    _builder.append("// TODO");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("//");
     {
-      EList<Attribute> _attributes_3 = dc.getAttributes();
-      boolean _isEmpty = _attributes_3.isEmpty();
+      List<Attribute> _allAttributes = this._roomHelpers.getAllAttributes(dc);
+      boolean _isEmpty = _allAttributes.isEmpty();
       boolean _not = (!_isEmpty);
       if (_not) {
         String _name_12 = dc.getName();
         _builder.append(_name_12, "\t");
         _builder.append("(");
-        EList<Attribute> _attributes_4 = dc.getAttributes();
-        String _argList = this.helpers.argList(_attributes_4);
+        List<Attribute> _allAttributes_1 = this._roomHelpers.getAllAttributes(dc);
+        String _argList = this.helpers.argList(_allAttributes_1);
         _builder.append(_argList, "\t");
         _builder.append(");");
       }
@@ -320,8 +322,8 @@
     _builder.newLine();
     _builder.append("\t");
     EList<Attribute> _attributes = dc.getAttributes();
-    CharSequence _genArrayInitializers = this.initHelper.genArrayInitializers(_attributes);
-    _builder.append(_genArrayInitializers, "\t");
+    CharSequence _genExtraInitializers = this.initHelper.genExtraInitializers(_attributes);
+    _builder.append(_genExtraInitializers, "\t");
     _builder.newLineIfNotEmpty();
     _builder.append("\t");
     String _userStructorBody = this.helpers.userStructorBody(dc, true);
@@ -355,17 +357,43 @@
     _builder.newLine();
     _builder.append("// TODO");
     _builder.newLine();
+    {
+      List<Attribute> _allAttributes = this._roomHelpers.getAllAttributes(dc);
+      boolean _isEmpty = _allAttributes.isEmpty();
+      boolean _not = (!_isEmpty);
+      if (_not) {
+        String _name_6 = dc.getName();
+        _builder.append(_name_6, "");
+        _builder.append("::");
+        String _name_7 = dc.getName();
+        _builder.append(_name_7, "");
+        _builder.append("(");
+        List<Attribute> _allAttributes_1 = this._roomHelpers.getAllAttributes(dc);
+        String _argList = this.helpers.argList(_allAttributes_1);
+        _builder.append(_argList, "");
+        _builder.append(")");
+        _builder.newLineIfNotEmpty();
+        _builder.append("\t");
+        CharSequence _generateFieldInitializerList = this.generateFieldInitializerList(dc);
+        _builder.append(_generateFieldInitializerList, "\t");
+        _builder.newLineIfNotEmpty();
+        _builder.append("{");
+        _builder.newLine();
+        _builder.append("}");
+        _builder.newLine();
+      }
+    }
     _builder.newLine();
     _builder.append("// assignment operator");
     _builder.newLine();
-    String _name_6 = dc.getName();
-    _builder.append(_name_6, "");
-    _builder.append("& ");
-    String _name_7 = dc.getName();
-    _builder.append(_name_7, "");
-    _builder.append("::operator=(const ");
     String _name_8 = dc.getName();
     _builder.append(_name_8, "");
+    _builder.append("& ");
+    String _name_9 = dc.getName();
+    _builder.append(_name_9, "");
+    _builder.append("::operator=(const ");
+    String _name_10 = dc.getName();
+    _builder.append(_name_10, "");
     _builder.append("& rhs)");
     _builder.newLineIfNotEmpty();
     _builder.append("{");
@@ -379,8 +407,8 @@
       boolean _notEquals = (!Objects.equal(_base, null));
       if (_notEquals) {
         DataClass _base_1 = dc.getBase();
-        String _name_9 = _base_1.getName();
-        _builder.append(_name_9, "\t");
+        String _name_11 = _base_1.getName();
+        _builder.append(_name_11, "\t");
         _builder.append("::operator=(rhs);");
       }
     }
@@ -390,11 +418,11 @@
       for(final Attribute attr : _attributes_1) {
         _builder.append("\t");
         _builder.append("this->");
-        String _name_10 = attr.getName();
-        _builder.append(_name_10, "\t");
+        String _name_12 = attr.getName();
+        _builder.append(_name_12, "\t");
         _builder.append(" = rhs.");
-        String _name_11 = attr.getName();
-        _builder.append(_name_11, "\t");
+        String _name_13 = attr.getName();
+        _builder.append(_name_13, "\t");
         _builder.append(";");
         _builder.newLineIfNotEmpty();
       }
@@ -406,8 +434,8 @@
     _builder.newLine();
     _builder.newLine();
     EList<StandardOperation> _operations = dc.getOperations();
-    String _name_12 = dc.getName();
-    CharSequence _operationsImplementation = this.helpers.operationsImplementation(_operations, _name_12);
+    String _name_14 = dc.getName();
+    CharSequence _operationsImplementation = this.helpers.operationsImplementation(_operations, _name_14);
     _builder.append(_operationsImplementation, "");
     _builder.newLineIfNotEmpty();
     _builder.newLine();
@@ -486,6 +514,53 @@
     return _xblockexpression;
   }
   
+  private CharSequence generateFieldInitializerList(final DataClass dataClass) {
+    CharSequence _xblockexpression = null;
+    {
+      @Extension
+      final Initialization initHelper = this.initHelper;
+      ArrayList<CharSequence> initList = CollectionLiterals.<CharSequence>newArrayList();
+      DataClass _base = dataClass.getBase();
+      boolean _notEquals = (!Objects.equal(_base, null));
+      if (_notEquals) {
+        StringConcatenation _builder = new StringConcatenation();
+        DataClass _base_1 = dataClass.getBase();
+        String _name = _base_1.getName();
+        _builder.append(_name, "");
+        _builder.append("(");
+        DataClass _base_2 = dataClass.getBase();
+        List<Attribute> _allAttributes = this._roomHelpers.getAllAttributes(_base_2);
+        final Function1<Attribute, String> _function = new Function1<Attribute, String>() {
+          public String apply(final Attribute it) {
+            return it.getName();
+          }
+        };
+        List<String> _map = ListExtensions.<Attribute, String>map(_allAttributes, _function);
+        String _join = IterableExtensions.join(_map, ", ");
+        _builder.append(_join, "");
+        _builder.append(")");
+        initList.add(_builder.toString());
+      }
+      EList<Attribute> _attributes = dataClass.getAttributes();
+      final Function1<Attribute, String> _function_1 = new Function1<Attribute, String>() {
+        public String apply(final Attribute it) {
+          StringConcatenation _builder = new StringConcatenation();
+          String _name = it.getName();
+          _builder.append(_name, "");
+          _builder.append("(");
+          String _name_1 = it.getName();
+          _builder.append(_name_1, "");
+          _builder.append(")");
+          return _builder.toString();
+        }
+      };
+      List<String> _map_1 = ListExtensions.<Attribute, String>map(_attributes, _function_1);
+      Iterables.<CharSequence>addAll(initList, _map_1);
+      _xblockexpression = initHelper.generateCtorInitializerList(initList);
+    }
+    return _xblockexpression;
+  }
+  
   public String deepCopy(final DataClass _dc) {
     String result = "";
     DataClass dc = _dc;
diff --git a/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/Initialization.java b/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/Initialization.java
index ddf3ce4..3d62928 100644
--- a/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/Initialization.java
+++ b/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/Initialization.java
@@ -33,59 +33,76 @@
   private TypeHelpers typeHelpers;
   
   public CharSequence generateCtorInitializerList(final Iterable<? extends CharSequence> items) {
-    StringConcatenation _builder = new StringConcatenation();
+    CharSequence _xblockexpression = null;
     {
-      boolean _hasElements = false;
-      for(final CharSequence s : items) {
-        if (!_hasElements) {
-          _hasElements = true;
-          _builder.append(":", "");
-        } else {
-          _builder.appendImmediate(",", "");
-        }
-        _builder.append(s, "");
-        _builder.newLineIfNotEmpty();
+      boolean _isEmpty = IterableExtensions.isEmpty(items);
+      if (_isEmpty) {
+        return "";
       }
+      StringConcatenation _builder = new StringConcatenation();
+      _builder.append(": ");
+      CharSequence _head = IterableExtensions.head(items);
+      _builder.append(_head, "");
+      _builder.newLineIfNotEmpty();
+      {
+        Iterable<? extends CharSequence> _tail = IterableExtensions.tail(items);
+        for(final CharSequence item : _tail) {
+          _builder.append(", ");
+          _builder.append(item, "");
+          _builder.newLineIfNotEmpty();
+        }
+      }
+      _xblockexpression = _builder;
     }
-    return _builder;
+    return _xblockexpression;
   }
   
-  public CharSequence genArrayInitializers(final Iterable<Attribute> attributes) {
+  /**
+   * Generate array and struct initialization
+   */
+  public CharSequence genExtraInitializers(final Iterable<Attribute> attributes) {
     CharSequence _xblockexpression = null;
     {
       final Function1<Attribute, Boolean> _function = new Function1<Attribute, Boolean>() {
         public Boolean apply(final Attribute it) {
           boolean _and = false;
           boolean _and_1 = false;
-          int _size = it.getSize();
-          boolean _greaterThan = (_size > 0);
-          if (!_greaterThan) {
+          String _initializerListValue = Initialization.this.getInitializerListValue(it);
+          boolean _equals = Objects.equal(_initializerListValue, null);
+          if (!_equals) {
             _and_1 = false;
           } else {
-            String _defaultValueLiteral = it.getDefaultValueLiteral();
-            boolean _notEquals = (!Objects.equal(_defaultValueLiteral, null));
+            String _initValue = Initialization.this.getInitValue(it);
+            boolean _notEquals = (!Objects.equal(_initValue, null));
             _and_1 = _notEquals;
           }
           if (!_and_1) {
             _and = false;
           } else {
-            String _defaultValueLiteral_1 = it.getDefaultValueLiteral();
-            boolean _startsWith = _defaultValueLiteral_1.startsWith("{");
+            String _initValue_1 = Initialization.this.getInitValue(it);
+            boolean _startsWith = _initValue_1.startsWith("{");
             _and = _startsWith;
           }
           return Boolean.valueOf(_and);
         }
       };
-      final Iterable<Attribute> arrayInitAttrs = IterableExtensions.<Attribute>filter(attributes, _function);
-      boolean _isEmpty = IterableExtensions.isEmpty(arrayInitAttrs);
+      final Iterable<Attribute> extraInitAttrs = IterableExtensions.<Attribute>filter(attributes, _function);
+      boolean _isEmpty = IterableExtensions.isEmpty(extraInitAttrs);
       if (_isEmpty) {
         return "";
       }
       StringConcatenation _builder = new StringConcatenation();
-      _builder.append("// array initialization");
+      _builder.append("// extra initialization");
       _builder.newLine();
       {
-        for(final Attribute it : arrayInitAttrs) {
+        final Function1<Attribute, Boolean> _function_1 = new Function1<Attribute, Boolean>() {
+          public Boolean apply(final Attribute it) {
+            int _size = it.getSize();
+            return Boolean.valueOf((_size > 0));
+          }
+        };
+        Iterable<Attribute> _filter = IterableExtensions.<Attribute>filter(extraInitAttrs, _function_1);
+        for(final Attribute it : _filter) {
           String _typeName = this.typeHelpers.getTypeName(it);
           _builder.append(_typeName, "");
           _builder.append(" ");
@@ -95,8 +112,8 @@
           int _size = it.getSize();
           _builder.append(_size, "");
           _builder.append("] = ");
-          String _defaultValueLiteral = it.getDefaultValueLiteral();
-          _builder.append(_defaultValueLiteral, "");
+          String _initValue = this.getInitValue(it);
+          _builder.append(_initValue, "");
           _builder.append(";");
           _builder.newLineIfNotEmpty();
           String _name_1 = it.getName();
@@ -108,12 +125,59 @@
           _builder.newLineIfNotEmpty();
         }
       }
+      {
+        final Function1<Attribute, Boolean> _function_2 = new Function1<Attribute, Boolean>() {
+          public Boolean apply(final Attribute it) {
+            int _size = it.getSize();
+            return Boolean.valueOf((_size == 0));
+          }
+        };
+        Iterable<Attribute> _filter_1 = IterableExtensions.<Attribute>filter(extraInitAttrs, _function_2);
+        for(final Attribute it_1 : _filter_1) {
+          String _typeName_1 = this.typeHelpers.getTypeName(it_1);
+          _builder.append(_typeName_1, "");
+          _builder.append(" ");
+          String _name_3 = it_1.getName();
+          _builder.append(_name_3, "");
+          _builder.append("InitValue = ");
+          String _initValue_1 = this.getInitValue(it_1);
+          _builder.append(_initValue_1, "");
+          _builder.append(";");
+          _builder.newLineIfNotEmpty();
+          String _name_4 = it_1.getName();
+          _builder.append(_name_4, "");
+          _builder.append(" = ");
+          String _name_5 = it_1.getName();
+          _builder.append(_name_5, "");
+          _builder.append("InitValue;");
+          _builder.newLineIfNotEmpty();
+        }
+      }
       _xblockexpression = _builder;
     }
     return _xblockexpression;
   }
   
   public String getInitializerListValue(final Attribute attribute) {
+    final String initValue = this.getInitValue(attribute);
+    String _xifexpression = null;
+    boolean _and = false;
+    boolean _notEquals = (!Objects.equal(initValue, null));
+    if (!_notEquals) {
+      _and = false;
+    } else {
+      boolean _startsWith = initValue.startsWith("{");
+      _and = _startsWith;
+    }
+    if (_and) {
+      _xifexpression = null;
+    } else {
+      _xifexpression = initValue;
+    }
+    return _xifexpression;
+  }
+  
+  protected String getInitValue(final Attribute attribute) {
     String _switchResult = null;
     final Attribute it = attribute;
     boolean _matched = false;
@@ -122,15 +186,7 @@
       boolean _notEquals = (!Objects.equal(_defaultValueLiteral, null));
       if (_notEquals) {
         _matched=true;
-        String _xifexpression = null;
-        String _defaultValueLiteral_1 = it.getDefaultValueLiteral();
-        boolean _startsWith = _defaultValueLiteral_1.startsWith("{");
-        if (_startsWith) {
-          _xifexpression = null;
-        } else {
-          _xifexpression = it.getDefaultValueLiteral();
-        }
-        _switchResult = _xifexpression;
+        _switchResult = it.getDefaultValueLiteral();
       }
     }
     if (!_matched) {
diff --git a/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/ProtocolClassGen.java b/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/ProtocolClassGen.java
index a1335b9..74878fd 100644
--- a/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/ProtocolClassGen.java
+++ b/plugins/org.eclipse.etrice.generator.cpp/xtend-gen/org/eclipse/etrice/generator/cpp/gen/ProtocolClassGen.java
@@ -666,8 +666,8 @@
         boolean _notEquals = (!Objects.equal(pclass, null));
         if (_notEquals) {
           EList<Attribute> _attributes = pclass.getAttributes();
-          CharSequence _genArrayInitializers = this.initHelper.genArrayInitializers(_attributes);
-          _builder.append(_genArrayInitializers, "\t");
+          CharSequence _genExtraInitializers = this.initHelper.genExtraInitializers(_attributes);
+          _builder.append(_genExtraInitializers, "\t");
         }
       }
       _builder.newLineIfNotEmpty();
diff --git a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/generic/ProcedureHelpers.xtend b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/generic/ProcedureHelpers.xtend
index f011f04..b456097 100644
--- a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/generic/ProcedureHelpers.xtend
+++ b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/generic/ProcedureHelpers.xtend
@@ -212,7 +212,7 @@
 	 * @param attributes a list of {@link Attribute}s
 	 * @return an argument list for the attributes
 	 */
-	def argList(List<Attribute> attributes) {
+	def argList(Iterable<Attribute> attributes) {
 		attributes.map[signatureString + ' ' + name].join(', ')
 	}
 
diff --git a/plugins/org.eclipse.etrice.generator/xtend-gen/org/eclipse/etrice/generator/generic/ProcedureHelpers.java b/plugins/org.eclipse.etrice.generator/xtend-gen/org/eclipse/etrice/generator/generic/ProcedureHelpers.java
index 7e199e4..05d2676 100644
--- a/plugins/org.eclipse.etrice.generator/xtend-gen/org/eclipse/etrice/generator/generic/ProcedureHelpers.java
+++ b/plugins/org.eclipse.etrice.generator/xtend-gen/org/eclipse/etrice/generator/generic/ProcedureHelpers.java
@@ -41,7 +41,6 @@
 import org.eclipse.xtext.xbase.lib.Extension;
 import org.eclipse.xtext.xbase.lib.Functions.Function1;
 import org.eclipse.xtext.xbase.lib.IterableExtensions;
-import org.eclipse.xtext.xbase.lib.ListExtensions;
 import org.eclipse.xtext.xbase.lib.StringExtensions;
 
 /**
@@ -397,7 +396,7 @@
    * @param attributes a list of {@link Attribute}s
    * @return an argument list for the attributes
    */
-  public String argList(final List<Attribute> attributes) {
+  public String argList(final Iterable<Attribute> attributes) {
     final Function1<Attribute, String> _function = new Function1<Attribute, String>() {
       public String apply(final Attribute it) {
         String _signatureString = ProcedureHelpers.this.signatureString(it);
@@ -406,7 +405,7 @@
         return (_plus + _name);
       }
     };
-    List<String> _map = ListExtensions.<Attribute, String>map(attributes, _function);
+    Iterable<String> _map = IterableExtensions.<Attribute, String>map(attributes, _function);
     return IterableExtensions.join(_map, ", ");
   }
   
diff --git a/runtime/org.eclipse.etrice.runtime.cpp/src/common/containers/StaticArray.h b/runtime/org.eclipse.etrice.runtime.cpp/src/common/containers/StaticArray.h
index 551423c..bb88694 100644
--- a/runtime/org.eclipse.etrice.runtime.cpp/src/common/containers/StaticArray.h
+++ b/runtime/org.eclipse.etrice.runtime.cpp/src/common/containers/StaticArray.h
@@ -87,6 +87,9 @@
 		return *this;
 	}
 
+	/**
+	 * copy assignment from c++ array
+	 */
 	StaticArray<Type, Size>& operator=(const Type data[Size]) {
 		memcpy(this->data, data, sizeof(this->data));
 		return *this;
diff --git a/tests/org.eclipse.etrice.generator.cpp.tests/make.xml b/tests/org.eclipse.etrice.generator.cpp.tests/make.xml
index 2e3d932..3bafe20 100644
--- a/tests/org.eclipse.etrice.generator.cpp.tests/make.xml
+++ b/tests/org.eclipse.etrice.generator.cpp.tests/make.xml
@@ -24,6 +24,7 @@
 		<test testid="OperationInheritanceTest" models="${models.path}/OperationInheritanceTest.room ${models.path}/GenericPhysical.etphys" />
 		<test testid="PingPongThreadTest" models="${models.path}/PingPongThreadTest.etmap" />
 		<test testid="PingPongThreadReplPortTest" models="${models.path}/PingPongThreadReplPortTest.etmap" />
+		<test testid="InitializationTest" models="${models.path}/InitializationTest.room ${models.path}/GenericPhysical.etphys" />
 	</target>
 
 	<target name="copyModels" depends="common.copyModels">
@@ -57,16 +58,16 @@
 		<sequential>
 			<echo>generating @{testId}</echo>
 			<standaloneGenerator testId="@{testId}" models="@{models}"/>
-			
+
 			<echo>building @{testId}</echo>
 			<build testId="@{testId}"/>
-			
+
 			<echo>running @{testId}</echo>
 			<run testId="@{testId}"/>
-			
+
 			<echo>converting @{testId}</echo>
 			<convert testId="@{testId}"/>
-			
+
 			<echo>copying result @{testId}</echo>
 			<copyResult testId="@{testId}" targetId="${runtime.platform}_"/>
 		</sequential>
diff --git a/tests/org.eclipse.etrice.generator.cpp.tests/targetModels/InitializationTest.room b/tests/org.eclipse.etrice.generator.cpp.tests/targetModels/InitializationTest.room
new file mode 100644
index 0000000..5c4e8c8
--- /dev/null
+++ b/tests/org.eclipse.etrice.generator.cpp.tests/targetModels/InitializationTest.room
@@ -0,0 +1,105 @@
+RoomModel InitializationTest {
+
+	import room.basic.types.* from "Types.room"
+
+	import room.basic.etunit.* from "Tests.room"
+
+	async ActorClass InitializationTest {
+		@TestInstance
+		Structure {
+			usercode1 {
+				"struct structType {"
+				"	int32 number;"
+				"	structType* refStruct;"
+				"} typedef structType;"
+				""
+				"class ClassType {"
+				"public:"
+				"	ClassType(bool boolAttr, int32 number) : boolAttr(boolAttr), number(number) {}"
+				""
+				"	bool boolAttr;"
+				"	int32 number;"
+				"};"
+			}
+			Attribute caseId : int16
+
+			// c/c++ struct
+			Attribute structAttr1: structType
+			Attribute structAttr2: structType = "{2, NULL}"
+			Attribute arrayStructAttr[2]: structType = "{{1, NULL}, {2, NULL}}"
+
+			// static array
+			Attribute arrayInt32Attr1[5]: int32
+			Attribute arrayInt32Attr2[5]: int32 = ""
+			Attribute arrayInt32Attr3[5]: int32 = "1"
+			Attribute arrayInt32Attr4[5]: int32 = "{1, 2, 3, 4, 5}"
+
+			// data class
+			Attribute dataClassAttr1 : SubDataClass
+			Attribute dataClassAttr2 : SubDataClass = "true, 2"
+			// Attribute arrayDataClassAttr[2]: SubDataClass  // = "..." init NOT possible
+
+			// external class
+			Attribute extClassAttr1 : ClassType
+			Attribute extClassAttr2 : ClassType = "true, 2"
+			// Attribute arrayExtClassAttr[2] : ClassType // = "..." init NOT possible
+		}
+		Behavior {
+			ctor {
+				"caseId = etUnit_openAll(\"log/testlog\", \"InitializationTest\", \"org.eclipse.etrice.generator.cpp.tests.InitializationTest\", \"InitializationTest_case\");"
+				"testInitValues(caseId);"
+			}
+			dtor {
+				"etUnit_closeAll(caseId);"
+			}
+			Operation testInitValues(caseId : int16) {
+				"// c/c++ struct"
+				"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 1, structAttr1.number);"
+				"EXPECT_TRUE(caseId, \"<|MODEL_LOCATION|>\", structAttr1.refStruct == NULL);"
+				"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 2, structAttr2.number);"
+				"EXPECT_TRUE(caseId, \"<|MODEL_LOCATION|>\", structAttr2.refStruct == NULL);"
+				"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 1, arrayStructAttr[0].number);"
+				"EXPECT_TRUE(caseId, \"<|MODEL_LOCATION|>\", arrayStructAttr[0].refStruct == NULL);"
+				"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 2, arrayStructAttr[1].number);"
+				"EXPECT_TRUE(caseId, \"<|MODEL_LOCATION|>\", arrayStructAttr[1].refStruct == NULL);"
+				"// static array"
+				"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 0, arrayInt32Attr1[0]);"
+				"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 1, arrayInt32Attr3[0]);"
+				"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 1, arrayInt32Attr4[0]);"
+				"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 5, arrayInt32Attr4[4]);"
+				"// data class"
+				"EXPECT_FALSE(caseId, \"<|MODEL_LOCATION|>\", dataClassAttr1.boolAttr);"
+				"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 0, dataClassAttr1.number);"
+				"EXPECT_TRUE(caseId, \"<|MODEL_LOCATION|>\", dataClassAttr2.boolAttr);"
+				"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 2, dataClassAttr2.number);"
+				"// external class"
+				"EXPECT_FALSE(caseId, \"<|MODEL_LOCATION|>\", extClassAttr1.boolAttr);"
+				"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 0, extClassAttr1.number);"
+				"EXPECT_TRUE(caseId, \"<|MODEL_LOCATION|>\", extClassAttr2.boolAttr);"
+				"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 2, extClassAttr2.number);"
+			}
+
+		StateMachine {
+				State finish {
+					entry {
+						"etUnit_testFinished(caseId);"
+					}
+				}
+				Transition init: initial -> finish
+			}
+		}
+	}
+
+	DataClass BaseDataClass {
+		Attribute boolAttr : boolean
+	}
+
+	DataClass SubDataClass extends BaseDataClass {
+		Attribute number : int32
+	}
+
+	ExternalType ClassType -> "ClassType" default "false, 0"
+	ExternalType structType -> "structType" default "{1, NULL}"
+
+
+}
\ No newline at end of file