diff --git a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup
index c436e4a2e1c65719731d34f834e0647c1143cbd8..44f86cb58e62f647bd821eab6f9929c98c19a22c 100644
--- a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup
+++ b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup
@@ -16,7 +16,7 @@ terminal LOSSY_F, MAXSIZE_F, PRIVATE_F, RELATION_F, BLOCK1_F, BLOCK2_F, POOL_F,
 
 // Communications
 terminal  RELATION_T, SYNCREL_T, BFIFOREL_T, NBFIFOREL_T, INMESSAGE_T, OUTMESSAGE_T, CHANNEL_T, FIFO_T, BFIFO_T,
-    NBFIFO_T, SYNC_T;
+    NBFIFO_T, SYNC_T, INSIGNALBINDING_T, OUTSIGNALBINDING_T;
 
 // Transition server
 terminal  NOKREQUEST_U, TRIVIALREQUEST_T, IMMEDIATEREQUEST_U, SENDREQUEST_T, RECEIVEREQUEST_T;
@@ -83,10 +83,23 @@ channelDecl ::= syncChDecl | nbfChDecl |bfChDecl;
 syncChDecl ::= syncChDeclHEADER syncChDeclBODY;
 nbfChDecl ::= nbfChDeclHEADER fifofChDeclBODY;
 bfChDecl ::= bfChDeclHEADER fifoChDeclBODY;
-    | signalBind
-    | messageDecl
-    | blockDecl
-    | blockAlias
+signalBinding ::= inSignalBinding | outSignalBinding;
+insignalBinding ::= insignalBindingHEADER insignalBindingBODY;
+outsignalBinding ::= outsignalBindingHEADER outsignalBindingBODY;
+messageDecl ::= inMessageDecl | outMessageDecl;
+inMessageDecl ::= inMessageDeclHEADER inMessageDeclBODY;
+outMessageDecl ::= outMessageDeclHEADER outMessageDeclBODY;
+blockDecl ::= blockDeclHEADER blockDeclBODY;
+
+blockAlias ::=
+    | PART BLOCKNAME EQ blockChain
+    | PART AVATARNAME EQ blockChain
+;
+blockChain::=
+    | BLOCKNAME
+    | AVATARNAME
+    | BLOCKNAME blockChain
+    | AVATARNAME blockChain
 ;
 datatypeDeclHEADER ::=
     | ATTRIBUTE DEF DATATYPENAME SPECIALIZES AVDATATYPE
@@ -116,4 +129,25 @@ nbfChDeclHEADER ::=
     | PART CHANNELNAME SPECIALIZES NBFIFO_T
     | PART AVATARNAME SPECIALIZES NBFIFO_T
 ;
-
+insignalBindingHEADER ::=
+    | BINDING COLON INSIGNALBINDING_T
+    | BINDING AVATARNAME COLON INSIGNALBINDING_T
+;
+outsignalBindingHEADER ::=
+    | BINDING COLON OUTSIGNALBINDING_T
+    | BINDING AVATARNAME COLON INSIGNALBINDING_T
+;
+inMessageDeclHEADER ::=
+    | PART DEF MESSAGENAME SPECIALIZES INMESSAGE_T
+    | PART DEF AVATARNAME SPECIALIZES INMESSAGE_T
+;
+outMessageDeclHEADER ::=
+    | PART DEF MESSAGENAME SPECIALIZES OUTMESSAGE_T COMMA MESSAGENAME
+    | PART DEF AVATARNAME SPECIALIZES OUTMESSAGE_T COMMA MESSAGENAME
+    | PART DEF MESSAGENAME SPECIALIZES MESSAGENAME COMMA OUTMESSAGE_T
+    | PART DEF AVATARNAME SPECIALIZES MESSAGENAME COMMA OUTMESSAGE_T
+;
+blockDeclHEADER ::=
+    | PART DEF BLOCKNAME SPECIALIZES AVBLOCK_T
+    | PART DEF AVATARNAME SPECIALIZES AVBLOCK_T
+;
\ No newline at end of file
diff --git a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jflex b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jflex
index a674bde092171f0a70798d0ed8d8a042a0521769..ab8ed8a7cf52b0c75f4c9491002339c318814488 100644
--- a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jflex
+++ b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jflex
@@ -119,6 +119,8 @@ expireTimerChannelName = "'@ch:expire." AvIdent "'"
   "'#Bfifo'"       { return new Symbol(XX#Symb.BFIFO_T, yyline, yycolumn); }
   "'#NBfifo'"      { return new Symbol(XX#Symb.NBFIFO_T, yyline, yycolumn); }
   "'#Sync'"        { return new Symbol(XX#Symb.SYNC_T, yyline, yycolumn); }
+  "'#InSignalBinding'"  { return new Symbol(XX#Symb.INSIGNALBINDING_T, yyline, yycolumn); }
+  "'#OutSignalBinding'" { return new Symbol(XX#Symb.OUTSIGNALBINDING_T, yyline, yycolumn); }
 
   "'#nok_request'"        { return new Symbol(XX#Symb.NOKREQUEST_U, yyline, yycolumn); }
   "'#TrivialRequest'"     { return new Symbol(XX#Symb.TRIVIALREQUEST_T, yyline, yycolumn); }