From 9fe0e07eb7638ce554878c0e8ab51995e3184305 Mon Sep 17 00:00:00 2001
From: Sophie Coudert <sophie.coudert@telecom-paris.fr>
Date: Thu, 4 Jul 2024 17:01:23 +0200
Subject: [PATCH] save. some warning suppressed. Lexers commented. begin to
 comment FromSysMLParser

---
 .idea/uiDesigner.xml                          | 124 -------
 .../tosysmlv2/Avatar2SysMLLexer.java          |  44 +--
 .../tosysmlv2/AvatarFromSysMLError.java       |   2 +-
 .../tosysmlv2/AvatarFromSysMLLexer.java       | 303 +++++++++---------
 .../tosysmlv2/AvatarFromSysMLParser.java      |   3 +
 .../tosysmlv2/javacup/Avatar2SysMLLexer.jflex |   2 +-
 .../tosysmlv2/javacup/AvatarFromSysML.jcup    |   3 +
 .../tosysmlv2/javacup/AvatarFromSysML.jflex   |  25 +-
 8 files changed, 205 insertions(+), 301 deletions(-)
 delete mode 100644 .idea/uiDesigner.xml

diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
deleted file mode 100644
index 2b63946d5b..0000000000
--- a/.idea/uiDesigner.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="Palette2">
-    <group name="Swing">
-      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
-      </item>
-      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
-      </item>
-      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
-      </item>
-      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
-        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
-      </item>
-      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
-        <initial-values>
-          <property name="text" value="Button" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
-        <initial-values>
-          <property name="text" value="RadioButton" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
-        <initial-values>
-          <property name="text" value="CheckBox" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
-        <initial-values>
-          <property name="text" value="Label" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
-          <preferred-size width="150" height="-1" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
-          <preferred-size width="150" height="-1" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
-          <preferred-size width="150" height="-1" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
-      </item>
-      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
-          <preferred-size width="200" height="200" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
-          <preferred-size width="200" height="200" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
-      </item>
-      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
-      </item>
-      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
-      </item>
-      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
-      </item>
-      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
-          <preferred-size width="-1" height="20" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
-      </item>
-      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
-      </item>
-    </group>
-  </component>
-</project>
\ No newline at end of file
diff --git a/src/main/java/avatartranslator/tosysmlv2/Avatar2SysMLLexer.java b/src/main/java/avatartranslator/tosysmlv2/Avatar2SysMLLexer.java
index 18625de7db..66a50fff7d 100644
--- a/src/main/java/avatartranslator/tosysmlv2/Avatar2SysMLLexer.java
+++ b/src/main/java/avatartranslator/tosysmlv2/Avatar2SysMLLexer.java
@@ -1,4 +1,4 @@
-/* The following code was generated by JFlex 1.4.3 on 23/06/2024 11:51 */
+/* The following code was generated by JFlex 1.4.3 on 04/07/2024 16:14 */
 
 /* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
  *
@@ -45,7 +45,7 @@ import java_cup.runtime.*;
 /**
  * This class is a scanner generated by 
  * <a href="http://www.jflex.de/">JFlex</a> 1.4.3
- * on 23/06/2024 11:51 from the specification file
+ * on 04/07/2024 16:14 from the specification file
  * <code>__Avatar2SysMLLexer__.jflex</code>
  */
 public class Avatar2SysMLLexer implements java_cup.runtime.Scanner {
@@ -616,77 +616,77 @@ public class Avatar2SysMLLexer implements java_cup.runtime.Scanner {
           { return new Symbol(Avatar2SysMLSymbols.IDENT, yytext());
           }
         case 28: break;
+        case 2: 
+          { break;
+          }
+        case 29: break;
         case 18: 
           { return new Symbol(Avatar2SysMLSymbols.DIF);
           }
-        case 29: break;
+        case 30: break;
         case 23: 
           { return new Symbol(Avatar2SysMLSymbols.CONSTANT, "false");
           }
-        case 30: break;
+        case 31: break;
         case 11: 
           { return new Symbol(Avatar2SysMLSymbols.LT);
           }
-        case 31: break;
+        case 32: break;
         case 15: 
           { return new Symbol(Avatar2SysMLSymbols.COMMA);
           }
-        case 32: break;
+        case 33: break;
         case 5: 
           { return new Symbol(Avatar2SysMLSymbols.PLUS);
           }
-        case 33: break;
+        case 34: break;
         case 12: 
           { return new Symbol(Avatar2SysMLSymbols.GT);
           }
-        case 34: break;
+        case 35: break;
         case 21: 
           { return new Symbol(Avatar2SysMLSymbols.GEQ);
           }
-        case 35: break;
+        case 36: break;
         case 9: 
           { return new Symbol(Avatar2SysMLSymbols.MOD);
           }
-        case 36: break;
+        case 37: break;
         case 19: 
           { return new Symbol(Avatar2SysMLSymbols.EQ);
           }
-        case 37: break;
+        case 38: break;
         case 14: 
           { return new Symbol(Avatar2SysMLSymbols.RPAR);
           }
-        case 38: break;
+        case 39: break;
         case 17: 
           { return new Symbol(Avatar2SysMLSymbols.OR);
           }
-        case 39: break;
+        case 40: break;
         case 20: 
           { return new Symbol(Avatar2SysMLSymbols.LEQ);
           }
-        case 40: break;
+        case 41: break;
         case 1: 
           { throw new Exception ("Unknown character in  expression");
           }
-        case 41: break;
+        case 42: break;
         case 6: 
           { return new Symbol(Avatar2SysMLSymbols.MINUS);
           }
-        case 42: break;
+        case 43: break;
         case 22: 
           { return new Symbol(Avatar2SysMLSymbols.CONSTANT, "true");
           }
-        case 43: break;
+        case 44: break;
         case 7: 
           { return new Symbol(Avatar2SysMLSymbols.MULT);
           }
-        case 44: break;
+        case 45: break;
         case 13: 
           { return new Symbol(Avatar2SysMLSymbols.LPAR);
           }
-        case 45: break;
-        case 2: 
-          { 
-          }
         case 46: break;
         default: 
           if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLError.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLError.java
index 1dd24bdc3d..be8ced2255 100644
--- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLError.java
+++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLError.java
@@ -62,7 +62,7 @@ public class AvatarFromSysMLError {
     private String message;
     /** seriousness of the error */
     private byte level;
-    
+
     public AvatarFromSysMLError(Byte lv, Location loc, String msg, Location ref){
         location = loc;
         reference = ref;
diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLLexer.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLLexer.java
index a94e25a11d..e3622e76fe 100644
--- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLLexer.java
+++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLLexer.java
@@ -1,4 +1,4 @@
-/* The following code was generated by JFlex 1.4.3 on 24/06/2024 14:11 */
+/* The following code was generated by JFlex 1.4.3 on 04/07/2024 16:46 */
 
 /* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
  *
@@ -43,10 +43,11 @@ import java_cup.runtime.ComplexSymbolFactory.*;
 import java.util.HashSet;
 import avatartranslator.tosysmlv2.AvatarFromSysMLSyntax.*;
 
+
 /**
  * This class is a scanner generated by 
  * <a href="http://www.jflex.de/">JFlex</a> 1.4.3
- * on 24/06/2024 14:11 from the specification file
+ * on 04/07/2024 16:46 from the specification file
  * <code>__AvatarFromSysMLLexer__.jflex</code>
  */
 public class AvatarFromSysMLLexer implements java_cup.runtime.Scanner {
@@ -2241,6 +2242,7 @@ public class AvatarFromSysMLLexer implements java_cup.runtime.Scanner {
             new Location(yyline, yycolumn + yytext().length()),
             val);
     }
+    /** create a symbol provided with current lexeme and location */
     ComplexSymbol makeSymbol(int id) {
         // System.out.print(" ##" + AvatarFromSysMLSymbols.terminalNames[id] + "(" + "l:" + yyline + ",c:" + yycolumn + ")");
         return new ComplexSymbol(
@@ -2249,9 +2251,17 @@ public class AvatarFromSysMLLexer implements java_cup.runtime.Scanner {
             new Location(yyline, yycolumn),
             new Location(yyline, yycolumn + yytext().length()));
     }
+
+    /** to memorize error location before throwing an exception */
     Location errorLocation;
+
+    /** memorize error location */
     public void setErrorLocation(Location _errorLocation) { errorLocation = _errorLocation; }
+
+    /** get memorized error location */
     public Location getErrorLocation() { return errorLocation; }
+
+    /** get current location. To allow parser to know location without lexeme (i.e. through empty grammar rule) */
     public Location getLocation() { return new Location(yyline, yycolumn); }
 
 
@@ -2262,7 +2272,8 @@ public class AvatarFromSysMLLexer implements java_cup.runtime.Scanner {
    * @param   in  the java.io.Reader to read input from.
    */
   public AvatarFromSysMLLexer(java.io.Reader in) {
-      errorLocation = null;
+    // there is initially no error
+    errorLocation = null;
     this.zzReader = in;
   }
 
@@ -2628,163 +2639,163 @@ public class AvatarFromSysMLLexer implements java_cup.runtime.Scanner {
           { return makeSymbol(AvatarFromSysMLSymbols.FILTER);
           }
         case 257: break;
+        case 37: 
+          { yybegin(COMMENTLINE); break;
+          }
+        case 258: break;
         case 1: 
           { setErrorLocation(new Location(yyline, yycolumn));
      throw new Exception ("unexpected character in  expression");
           }
-        case 258: break;
+        case 259: break;
         case 141: 
           { return makeSymbol(AvatarFromSysMLSymbols.IDENT, new Ident(AvatarFromSysMLSyntax.TIMERBLOCKNAME,yytext()));
           }
-        case 259: break;
+        case 260: break;
         case 173: 
           { return makeSymbol(AvatarFromSysMLSymbols.IDENT, new Ident(AvatarFromSysMLSyntax.RELATIONNAME,yytext()));
           }
-        case 260: break;
+        case 261: break;
         case 104: 
           { return makeSymbol(AvatarFromSysMLSymbols.ASSERT);
           }
-        case 261: break;
+        case 262: break;
         case 71: 
           { return makeSymbol(AvatarFromSysMLSymbols.ELSE);
           }
-        case 262: break;
+        case 263: break;
         case 67: 
           { return makeSymbol(AvatarFromSysMLSymbols.PART);
           }
-        case 263: break;
+        case 264: break;
         case 246: 
           { return makeSymbol(AvatarFromSysMLSymbols.AVSTANDARDSTATE_T);
           }
-        case 264: break;
+        case 265: break;
         case 192: 
           { return makeSymbol(AvatarFromSysMLSymbols.SYNCREL_T);
           }
-        case 265: break;
+        case 266: break;
         case 46: 
           { return makeSymbol(AvatarFromSysMLSymbols.NOT);
           }
-        case 266: break;
+        case 267: break;
         case 91: 
           { return makeSymbol(AvatarFromSysMLSymbols.UNTIL);
           }
-        case 267: break;
+        case 268: break;
         case 51: 
           { return makeSymbol(AvatarFromSysMLSymbols.OUT);
           }
-        case 268: break;
+        case 269: break;
         case 242: 
           { return makeSymbol(AvatarFromSysMLSymbols.AVRANDOMSTATE_T);
           }
-        case 269: break;
+        case 270: break;
         case 154: 
           { return makeSymbol(AvatarFromSysMLSymbols.PARALLEL);
           }
-        case 270: break;
+        case 271: break;
         case 103: 
           { return makeSymbol(AvatarFromSysMLSymbols.ASSUME);
           }
-        case 271: break;
+        case 272: break;
         case 251: 
           { return makeSymbol(AvatarFromSysMLSymbols.AVPRERECEIVESTATE_T);
           }
-        case 272: break;
+        case 273: break;
         case 26: 
           { return makeSymbol(AvatarFromSysMLSymbols.TO);
           }
-        case 273: break;
+        case 274: break;
         case 68: 
           { return makeSymbol(AvatarFromSysMLSymbols.PORT);
           }
-        case 274: break;
+        case 275: break;
         case 175: 
           { return makeSymbol(AvatarFromSysMLSymbols.IDENT, new Ident(AvatarFromSysMLSyntax.MESSAGENAME,yytext()));
           }
-        case 275: break;
+        case 276: break;
         case 29: 
           { return makeSymbol(AvatarFromSysMLSymbols.BY);
           }
-        case 276: break;
+        case 277: break;
         case 12: 
           { return makeSymbol(AvatarFromSysMLSymbols.PLUS);
           }
-        case 277: break;
+        case 278: break;
         case 177: 
           { return makeSymbol(AvatarFromSysMLSymbols.PAYLOAD_F);
           }
-        case 278: break;
+        case 279: break;
         case 176: 
           { return makeSymbol(AvatarFromSysMLSymbols.REQUEST_F);
           }
-        case 279: break;
+        case 280: break;
         case 57: 
           { return makeSymbol(AvatarFromSysMLSymbols.DONE_U);
           }
-        case 280: break;
+        case 281: break;
         case 19: 
           { return makeSymbol(AvatarFromSysMLSymbols.LPAR);
           }
-        case 281: break;
+        case 282: break;
         case 75: 
           { return makeSymbol(AvatarFromSysMLSymbols.WHEN);
           }
-        case 282: break;
+        case 283: break;
         case 158: 
           { return makeSymbol(AvatarFromSysMLSymbols.BLOCK2_F);
           }
-        case 283: break;
+        case 284: break;
         case 69: 
           { return makeSymbol(AvatarFromSysMLSymbols.CALC);
           }
-        case 284: break;
+        case 285: break;
         case 23: 
           { return makeSymbol(AvatarFromSysMLSymbols.COMMA);
           }
-        case 285: break;
+        case 286: break;
         case 17: 
           { return makeSymbol(AvatarFromSysMLSymbols.EQUAL);
           }
-        case 286: break;
+        case 287: break;
         case 205: 
           { return makeSymbol(AvatarFromSysMLSymbols.IDENT, new Ident(AvatarFromSysMLSyntax.SENDSTATENAME,yytext()));
           }
-        case 287: break;
+        case 288: break;
         case 48: 
           { return makeSymbol(AvatarFromSysMLSymbols.ALL);
           }
-        case 288: break;
+        case 289: break;
         case 196: 
           { return makeSymbol(AvatarFromSysMLSymbols.REQUIREMENT);
           }
-        case 289: break;
+        case 290: break;
         case 160: 
           { return makeSymbol(AvatarFromSysMLSymbols.EXPIRE_TM);
           }
-        case 290: break;
+        case 291: break;
         case 228: 
           { return makeSymbol(AvatarFromSysMLSymbols.IDENT, new Ident(AvatarFromSysMLSyntax.PRERESETTIMERSTATENAME,yytext()));
           }
-        case 291: break;
+        case 292: break;
         case 185: 
           { return makeSymbol(AvatarFromSysMLSymbols.ALLOCATION);
           }
-        case 292: break;
+        case 293: break;
         case 111: 
           { return makeSymbol(AvatarFromSysMLSymbols.VERIFY);
           }
-        case 293: break;
+        case 294: break;
         case 152: 
           { return makeSymbol(AvatarFromSysMLSymbols.ANALYSIS);
           }
-        case 294: break;
+        case 295: break;
         case 42: 
           { String s = yytext();
                                 return makeSymbol(AvatarFromSysMLSymbols.ANYNAME, s.substring(1, s.length() - 1));
           }
-        case 295: break;
-        case 24: 
-          { yybegin(YYINITIAL);
-          }
         case 296: break;
         case 54: 
           { return makeSymbol(AvatarFromSysMLSymbols.VIA);
@@ -2886,213 +2897,213 @@ public class AvatarFromSysMLLexer implements java_cup.runtime.Scanner {
           { return makeSymbol(AvatarFromSysMLSymbols.INOUT);
           }
         case 321: break;
+        case 24: 
+          { yybegin(YYINITIAL); break;
+          }
+        case 322: break;
         case 253: 
           { return makeSymbol(AvatarFromSysMLSymbols.RESETTIMERREQUEST_T);
           }
-        case 322: break;
+        case 323: break;
         case 247: 
           { return makeSymbol(AvatarFromSysMLSymbols.AVSETTIMERSTATE_T);
           }
-        case 323: break;
+        case 324: break;
         case 243: 
           { return makeSymbol(AvatarFromSysMLSymbols.AVSTATEMACHINE_T);
           }
-        case 324: break;
+        case 325: break;
         case 43: 
           { return makeSymbol(AvatarFromSysMLSymbols.IDENT, new Ident(AvatarFromSysMLSyntax.QUOTEDNAME,yytext()));
           }
-        case 325: break;
+        case 326: break;
         case 224: 
           { return makeSymbol(AvatarFromSysMLSymbols.RECEIVEREQUEST_T);
           }
-        case 326: break;
+        case 327: break;
         case 33: 
           { return makeSymbol(AvatarFromSysMLSymbols.IF);
           }
-        case 327: break;
+        case 328: break;
         case 234: 
           { return makeSymbol(AvatarFromSysMLSymbols.TRANSITIONACTION_T);
           }
-        case 328: break;
+        case 329: break;
         case 99: 
           { return makeSymbol(AvatarFromSysMLSymbols.ISTYPE);
           }
-        case 329: break;
+        case 330: break;
         case 244: 
           { return makeSymbol(AvatarFromSysMLSymbols.AVRECEIVESTATE_T);
           }
-        case 330: break;
+        case 331: break;
         case 188: 
           { return makeSymbol(AvatarFromSysMLSymbols.CONSTRAINT);
           }
-        case 331: break;
+        case 332: break;
         case 85: 
           { return makeSymbol(AvatarFromSysMLSymbols.ABOUT);
           }
-        case 332: break;
+        case 333: break;
         case 47: 
           { return makeSymbol(AvatarFromSysMLSymbols.FOR);
           }
-        case 333: break;
+        case 334: break;
         case 13: 
           { return makeSymbol(AvatarFromSysMLSymbols.MULT);
           }
-        case 334: break;
+        case 335: break;
         case 135: 
           { return makeSymbol(AvatarFromSysMLSymbols.COMMENT);
           }
-        case 335: break;
+        case 336: break;
         case 59: 
           { return makeSymbol(AvatarFromSysMLSymbols.THEN);
           }
-        case 336: break;
+        case 337: break;
         case 241: 
           { return makeSymbol(AvatarFromSysMLSymbols.IMMEDIATEREQUEST_U);
           }
-        case 337: break;
+        case 338: break;
         case 179: 
           { return makeSymbol(AvatarFromSysMLSymbols.CHANNEL_F);
           }
-        case 338: break;
+        case 339: break;
         case 225: 
           { return makeSymbol(AvatarFromSysMLSymbols.TIMEREXPIREMSG_T);
           }
-        case 339: break;
+        case 340: break;
         case 56: 
           { return makeSymbol(AvatarFromSysMLSymbols.IDENT, new Ident(AvatarFromSysMLSyntax.ATTRIBUTENAME,yytext()));
           }
-        case 340: break;
+        case 341: break;
         case 137: 
           { return makeSymbol(AvatarFromSysMLSymbols.VARIANT);
           }
-        case 341: break;
+        case 342: break;
         case 96: 
           { return makeSymbol(AvatarFromSysMLSymbols.MSG_U);
           }
-        case 342: break;
+        case 343: break;
         case 129: 
           { return makeSymbol(AvatarFromSysMLSymbols.PACKAGE);
           }
-        case 343: break;
+        case 344: break;
         case 231: 
           { return makeSymbol(AvatarFromSysMLSymbols.AVSENDSTATE_T);
           }
-        case 344: break;
+        case 345: break;
         case 120: 
           { return makeSymbol(AvatarFromSysMLSymbols.BINDING);
           }
-        case 345: break;
+        case 346: break;
         case 220: 
           { return makeSymbol(AvatarFromSysMLSymbols.RECEIVEACTION_T);
           }
-        case 346: break;
+        case 347: break;
         case 30: 
           { return makeSymbol(AvatarFromSysMLSymbols.GEQ);
           }
-        case 347: break;
+        case 348: break;
         case 40: 
           { String s = yytext();
                       return makeSymbol(AvatarFromSysMLSymbols.STRING, s.substring(1, s.length() - 1));
           }
-        case 348: break;
+        case 349: break;
         case 27: 
           { return makeSymbol(AvatarFromSysMLSymbols.REFINES);
           }
-        case 349: break;
+        case 350: break;
         case 206: 
           { return makeSymbol(AvatarFromSysMLSymbols.IDENT, new Ident(AvatarFromSysMLSyntax.RANDOMSTATENAME,yytext()));
           }
-        case 350: break;
+        case 351: break;
         case 182: 
           { return makeSymbol(AvatarFromSysMLSymbols.TRANSITION);
           }
-        case 351: break;
+        case 352: break;
         case 157: 
           { return makeSymbol(AvatarFromSysMLSymbols.BLOCK1_F);
           }
-        case 352: break;
+        case 353: break;
         case 143: 
           { return makeSymbol(AvatarFromSysMLSymbols.IDENT, new Ident(AvatarFromSysMLSyntax.SIGNALNAME,yytext()));
           }
-        case 353: break;
+        case 354: break;
         case 252: 
           { return makeSymbol(AvatarFromSysMLSymbols.AVEXPIRETIMERSTATE_T);
           }
-        case 354: break;
+        case 355: break;
         case 121: 
           { return makeSymbol(AvatarFromSysMLSymbols.BOOLEAN_T);
           }
-        case 355: break;
+        case 356: break;
         case 116: 
           { return makeSymbol(AvatarFromSysMLSymbols.SYNC_T);
           }
-        case 356: break;
+        case 357: break;
         case 110: 
           { return makeSymbol(AvatarFromSysMLSymbols.EXPOSE);
           }
-        case 357: break;
+        case 358: break;
         case 254: 
           { return makeSymbol(AvatarFromSysMLSymbols.EXPIRETIMERREQUEST_T);
           }
-        case 358: break;
+        case 359: break;
         case 186: 
           { return makeSymbol(AvatarFromSysMLSymbols.REFERENCES);
           }
-        case 359: break;
+        case 360: break;
         case 22: 
           { return makeSymbol(AvatarFromSysMLSymbols.RBRAC);
           }
-        case 360: break;
+        case 361: break;
         case 58: 
           { return makeSymbol(AvatarFromSysMLSymbols.BOOL, Boolean.TRUE);
           }
-        case 361: break;
+        case 362: break;
         case 34: 
           { return makeSymbol(AvatarFromSysMLSymbols.AT);
           }
-        case 362: break;
+        case 363: break;
         case 124: 
           { return makeSymbol(AvatarFromSysMLSymbols.SUBJECT);
           }
-        case 363: break;
+        case 364: break;
         case 147: 
           { return makeSymbol(AvatarFromSysMLSymbols.BFIFO_T);
           }
-        case 364: break;
+        case 365: break;
         case 169: 
           { return makeSymbol(AvatarFromSysMLSymbols.OBJECTIVE);
           }
-        case 365: break;
+        case 366: break;
         case 61: 
           { return makeSymbol(AvatarFromSysMLSymbols.LOOP);
           }
-        case 366: break;
+        case 367: break;
         case 117: 
           { return makeSymbol(AvatarFromSysMLSymbols.DEFINED);
           }
-        case 367: break;
+        case 368: break;
         case 41: 
           { try { return makeSymbol(AvatarFromSysMLSymbols.REAL, Double.parseDouble(yytext())); }
                   catch (NumberFormatException nfe) {
                     setErrorLocation(new Location(yyline, yycolumn));
                     throw new Exception ("lexing : bad format for number : " + yytext()); }
           }
-        case 368: break;
+        case 369: break;
         case 195: 
           { return makeSymbol(AvatarFromSysMLSymbols.SPECIALIZES);
           }
-        case 369: break;
+        case 370: break;
         case 235: 
           { return makeSymbol(AvatarFromSysMLSymbols.AVSTARTSTATE_T);
           }
-        case 370: break;
+        case 371: break;
         case 159: 
           { return makeSymbol(AvatarFromSysMLSymbols.AMOUNT_U);
           }
-        case 371: break;
-        case 37: 
-          { yybegin(COMMENTLINE);
-          }
         case 372: break;
         case 14: 
           { return makeSymbol(AvatarFromSysMLSymbols.MOD);
@@ -3449,193 +3460,193 @@ public class AvatarFromSysMLLexer implements java_cup.runtime.Scanner {
           { return makeSymbol(AvatarFromSysMLSymbols.ALIAS);
           }
         case 460: break;
+        case 2: 
+          { break;
+          }
+        case 461: break;
         case 218: 
           { return makeSymbol(AvatarFromSysMLSymbols.IDENT, new Ident(AvatarFromSysMLSyntax.PRESETTIMERSTATENAME,yytext()));
           }
-        case 461: break;
+        case 462: break;
         case 50: 
           { return makeSymbol(AvatarFromSysMLSymbols.REP);
           }
-        case 462: break;
+        case 463: break;
         case 140: 
           { return makeSymbol(AvatarFromSysMLSymbols.DELAY_F);
           }
-        case 463: break;
+        case 464: break;
         case 9: 
           { return makeSymbol(AvatarFromSysMLSymbols.LT);
           }
-        case 464: break;
+        case 465: break;
         case 39: 
           { return makeSymbol(AvatarFromSysMLSymbols.EQ);
           }
-        case 465: break;
+        case 466: break;
         case 240: 
           { return makeSymbol(AvatarFromSysMLSymbols.IDENT, new Ident(AvatarFromSysMLSyntax.PRERECEIVESTATENAME,yytext()));
           }
-        case 466: break;
+        case 467: break;
         case 45: 
           { return makeSymbol(AvatarFromSysMLSymbols.DEF);
           }
-        case 467: break;
+        case 468: break;
         case 142: 
           { return makeSymbol(AvatarFromSysMLSymbols.IDENT, new Ident(AvatarFromSysMLSyntax.BLOCKNAME,yytext()));
           }
-        case 468: break;
+        case 469: break;
         case 72: 
           { return makeSymbol(AvatarFromSysMLSymbols.ENUM);
           }
-        case 469: break;
+        case 470: break;
         case 197: 
           { return makeSymbol(AvatarFromSysMLSymbols.BFIFOREL_T);
           }
-        case 470: break;
+        case 471: break;
         case 126: 
           { return makeSymbol(AvatarFromSysMLSymbols.IMPLIES);
           }
-        case 471: break;
+        case 472: break;
         case 229: 
           { return makeSymbol(AvatarFromSysMLSymbols.INSIGNALBINDING_T);
           }
-        case 472: break;
+        case 473: break;
         case 73: 
           { return makeSymbol(AvatarFromSysMLSymbols.EXIT);
           }
-        case 473: break;
+        case 474: break;
         case 138: 
           { return makeSymbol(AvatarFromSysMLSymbols.HASTYPE);
           }
-        case 474: break;
+        case 475: break;
         case 239: 
           { return makeSymbol(AvatarFromSysMLSymbols.AVVOIDMETHOD_T);
           }
-        case 475: break;
+        case 476: break;
         case 106: 
           { return makeSymbol(AvatarFromSysMLSymbols.ACCEPT);
           }
-        case 476: break;
+        case 477: break;
         case 128: 
           { return makeSymbol(AvatarFromSysMLSymbols.ORDERED);
           }
-        case 477: break;
+        case 478: break;
         case 215: 
           { return makeSymbol(AvatarFromSysMLSymbols.STATEMACHINE);
           }
-        case 478: break;
+        case 479: break;
         case 98: 
           { return makeSymbol(AvatarFromSysMLSymbols.STRING_T);
           }
-        case 479: break;
+        case 480: break;
         case 49: 
           { return makeSymbol(AvatarFromSysMLSymbols.REF);
           }
-        case 480: break;
+        case 481: break;
         case 198: 
           { return makeSymbol(AvatarFromSysMLSymbols.INMESSAGE_T);
           }
-        case 481: break;
+        case 482: break;
         case 79: 
           { return makeSymbol(AvatarFromSysMLSymbols.STATE);
           }
-        case 482: break;
+        case 483: break;
         case 89: 
           { return makeSymbol(AvatarFromSysMLSymbols.ACTOR);
           }
-        case 483: break;
+        case 484: break;
         case 219: 
           { return makeSymbol(AvatarFromSysMLSymbols.IDENT, new Ident(AvatarFromSysMLSyntax.EXPIRETIMERSTATENAME,yytext()));
           }
-        case 484: break;
+        case 485: break;
         case 125: 
           { return makeSymbol(AvatarFromSysMLSymbols.INCLUDE);
           }
-        case 485: break;
+        case 486: break;
         case 112: 
           { return makeSymbol(AvatarFromSysMLSymbols.IDENT, new Ident(AvatarFromSysMLSyntax.CHANNELPRENAME,yytext()));
           }
-        case 486: break;
+        case 487: break;
         case 119: 
           { return makeSymbol(AvatarFromSysMLSymbols.DERIVED);
           }
-        case 487: break;
+        case 488: break;
         case 122: 
           { return makeSymbol(AvatarFromSysMLSymbols.SATISFY);
           }
-        case 488: break;
+        case 489: break;
         case 167: 
           { return makeSymbol(AvatarFromSysMLSymbols.REDEFINES);
           }
-        case 489: break;
+        case 490: break;
         case 109: 
           { return makeSymbol(AvatarFromSysMLSymbols.PUBLIC);
           }
-        case 490: break;
+        case 491: break;
         case 191: 
           { return makeSymbol(AvatarFromSysMLSymbols.MAXSIZE_F);
           }
-        case 491: break;
+        case 492: break;
         case 187: 
           { return makeSymbol(AvatarFromSysMLSymbols.OCCURRENCE);
           }
-        case 492: break;
+        case 493: break;
         case 35: 
           { return makeSymbol(AvatarFromSysMLSymbols.AS);
           }
-        case 493: break;
+        case 494: break;
         case 130: 
           { return makeSymbol(AvatarFromSysMLSymbols.PRIVATE);
           }
-        case 494: break;
+        case 495: break;
         case 87: 
           { return makeSymbol(AvatarFromSysMLSymbols.ASSOC);
           }
-        case 495: break;
+        case 496: break;
         case 210: 
           { return makeSymbol(AvatarFromSysMLSymbols.AVBLOCK_T);
           }
-        case 496: break;
+        case 497: break;
         case 150: 
           { return makeSymbol(AvatarFromSysMLSymbols.ABSTRACT);
           }
-        case 497: break;
+        case 498: break;
         case 123: 
           { return makeSymbol(AvatarFromSysMLSymbols.SUBSETS);
           }
-        case 498: break;
+        case 499: break;
         case 248: 
           { return makeSymbol(AvatarFromSysMLSymbols.DISTRIBUTION_A);
           }
-        case 499: break;
+        case 500: break;
         case 105: 
           { return makeSymbol(AvatarFromSysMLSymbols.ACTION);
           }
-        case 500: break;
+        case 501: break;
         case 214: 
           { return makeSymbol(AvatarFromSysMLSymbols.STATEACTION_F);
           }
-        case 501: break;
+        case 502: break;
         case 213: 
           { return makeSymbol(AvatarFromSysMLSymbols.IDENT, new Ident(AvatarFromSysMLSyntax.COUNTSTATENAME,yytext()));
           }
-        case 502: break;
+        case 503: break;
         case 62: 
           { return makeSymbol(AvatarFromSysMLSymbols.SEND);
           }
-        case 503: break;
+        case 504: break;
         case 156: 
           { return makeSymbol(AvatarFromSysMLSymbols.TARGET_F);
           }
-        case 504: break;
+        case 505: break;
         case 163: 
           { return makeSymbol(AvatarFromSysMLSymbols.TIMESLICE);
           }
-        case 505: break;
+        case 506: break;
         case 31: 
           { return makeSymbol(AvatarFromSysMLSymbols.LEQ);
           }
-        case 506: break;
-        case 2: 
-          { 
-          }
         case 507: break;
         case 74: 
           { return makeSymbol(AvatarFromSysMLSymbols.VIEW);
diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java
index f8c7c1819e..e1ea6539eb 100644
--- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java
+++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java
@@ -1174,7 +1174,10 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser {
 
 
 
+    /** to make lexer access easier */
     AvatarFromSysMLLexer lexer = (AvatarFromSysMLLexer) getScanner();
+
+
     @Override
     public void user_init() {
         errors = new ArrayList<AvatarFromSysMLError>();
diff --git a/src/main/java/avatartranslator/tosysmlv2/javacup/Avatar2SysMLLexer.jflex b/src/main/java/avatartranslator/tosysmlv2/javacup/Avatar2SysMLLexer.jflex
index 89f644864b..613045c084 100644
--- a/src/main/java/avatartranslator/tosysmlv2/javacup/Avatar2SysMLLexer.jflex
+++ b/src/main/java/avatartranslator/tosysmlv2/javacup/Avatar2SysMLLexer.jflex
@@ -61,7 +61,7 @@ Identifier = [a-zA-Z_][a-zA-Z0-9_\.]*
 %%
 
 <YYINITIAL> {
- {Space}        { }
+ {Space}        { break; }
  "true"         { return new Symbol(#Symb.CONSTANT, "true"); }
  "false"        { return new Symbol(#Symb.CONSTANT, "false"); }
  {Natural}      { try { return new Symbol(#Symb.CONSTANT, "" + Integer.parseInt(yytext()));}
diff --git a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup
index 922f8070b6..056f569bfb 100644
--- a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup
+++ b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup
@@ -44,7 +44,10 @@ import java.util.function.BiConsumer;
 import static java.lang.System.out;
 
 parser code {:
+    /** to make lexer access easier */
     LexerClassName lexer = (LexerClassName) getScanner();
+
+
     @Override
     public void user_init() {
         errors = new ArrayList<AvatarFromSysMLError>();
diff --git a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jflex b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jflex
index 7ee1a7a9ac..77c11ab775 100644
--- a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jflex
+++ b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jflex
@@ -40,6 +40,7 @@ import java_cup.runtime.*;
 import java_cup.runtime.ComplexSymbolFactory.*;
 import java.util.HashSet;
 import avatartranslator.tosysmlv2.AvatarFromSysMLSyntax.*;
+
 %%
 
 %class LexerClassName
@@ -54,7 +55,7 @@ import avatartranslator.tosysmlv2.AvatarFromSysMLSyntax.*;
 
 %yylexthrow Exception
 
-%{
+%{  /** create a symbol provided with current lexeme and location */
     ComplexSymbol makeSymbol(int id, Object val) {
         // System.out.print(" ##" + #Symb.terminalNames[id] + "-" + val + " " + "(" + "l:" + yyline + ",c:" + yycolumn + ")");
         return new ComplexSymbol(
@@ -64,6 +65,7 @@ import avatartranslator.tosysmlv2.AvatarFromSysMLSyntax.*;
             new Location(yyline, yycolumn + yytext().length()),
             val);
     }
+    /** create a symbol provided with current lexeme and location */
     ComplexSymbol makeSymbol(int id) {
         // System.out.print(" ##" + #Symb.terminalNames[id] + "(" + "l:" + yyline + ",c:" + yycolumn + ")");
         return new ComplexSymbol(
@@ -72,12 +74,21 @@ import avatartranslator.tosysmlv2.AvatarFromSysMLSyntax.*;
             new Location(yyline, yycolumn),
             new Location(yyline, yycolumn + yytext().length()));
     }
+
+    /** to memorize error location before throwing an exception */
     Location errorLocation;
+
+    /** memorize error location */
     public void setErrorLocation(Location _errorLocation) { errorLocation = _errorLocation; }
+
+    /** get memorized error location */
     public Location getErrorLocation() { return errorLocation; }
+
+    /** get current location. To allow parser to know location without lexeme (i.e. through empty grammar rule) */
     public Location getLocation() { return new Location(yyline, yycolumn); }
 %}
 %init{
+  // there is initially no error
     errorLocation = null;
 %init}
 Space = [\ \n\r\t\f]
@@ -117,17 +128,17 @@ timerBlockName = "'@tmr:" {AvIdent} "'"
 %%
 
 <COMMENTLINE> {
- [^\n\r]+                   { }
- "\n"                       { yybegin(YYINITIAL); }
+ [^\n\r]+                   { break; }
+ "\n"                       { yybegin(YYINITIAL); break; }
 }
 <IMPORTITEM> {
- [^;]+                   { }
- "\;"                       { yybegin(YYINITIAL); }
+ [^;]+                   { break; }
+ "\;"                       { yybegin(YYINITIAL); break; }
 }
 
 <YYINITIAL> {
- {Space}        {}
- "//"           { yybegin(COMMENTLINE); }
+ {Space}        { break; }
+ "//"           { yybegin(COMMENTLINE); break; }
  {Natural}      { try { return makeSymbol(#Symb.INT, Integer.parseInt(yytext())); }
                   catch (NumberFormatException nfe) {
                     setErrorLocation(new Location(yyline, yycolumn));
-- 
GitLab