From e146003d69c2b58b8736f24ea3e7d4d12956f75b Mon Sep 17 00:00:00 2001
From: Sophie Coudert <sophie.coudert@telecom-paris.fr>
Date: Wed, 5 Jun 2024 12:37:08 +0200
Subject: [PATCH] little improvment of error detection

---
 .../tosysmlv2/javacup/AvatarFromSysML.jcup               | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup
index cbb4248166..08f6a69832 100644
--- a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup
+++ b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup
@@ -477,6 +477,9 @@ syncChDecl ::= PART:p IDENT:id COLON SYNC_T EQUAL SYNC_T LPAR RELATION_F EQUAL I
         addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Channel " + id.getAvatarName() +
         " is already declared", theChannel.getLeft()) );
     } else {
+        if (theRelation.getAsynchronous())
+            addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHWARNING,
+                pxleft, "synchroneous channels require a synchroneous relation\n"));
         theRelation.addChannel(theChannel);
         theChannel.setLeft(pxleft);
         theChannel.setRight(sxright);
@@ -489,6 +492,9 @@ nbfChDecl ::= PART:p IDENT:id COLON NBFIFO_T EQUAL NBFIFO_T LPAR RELATION_F EQUA
         addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Channel " + id.getAvatarName() +
         " is already declared", theChannel.getLeft()) );
     } else {
+        if (! theRelation.getAsynchronous())
+            addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHWARNING,
+                pxleft, "FIFO channels require an asynchroneous relation\n"));
         theRelation.addChannel(theChannel);
         theChannel.setLeft(pxleft);
         theChannel.setRight(sxright);
@@ -501,6 +507,9 @@ bfChDecl ::= PART:p IDENT:id COLON BFIFO_T EQUAL BFIFO_T LPAR RELATION_F EQUAL I
         addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Channel " + id.getAvatarName() +
         " is already declared", theChannel.getLeft()) );
     } else {
+        if (! theRelation.getAsynchronous())
+            addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHWARNING,
+                pxleft, "FIFO channels require an asynchroneous relation\n"));
         theRelation.addChannel(theChannel);
         theChannel.setLeft(pxleft);
         theChannel.setRight(sxright);
-- 
GitLab