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