From fe2cbde18bb3e6d524dc828a09fb98caa63422db Mon Sep 17 00:00:00 2001 From: Sophie Coudert <sophie.coudert@telecom-paris.fr> Date: Mon, 15 Jul 2024 15:38:46 +0200 Subject: [PATCH] rereading and commenting completed --- .../tosysmlv2/AvatarFromSysMLLexer.java | 4 +- .../tosysmlv2/AvatarFromSysMLParser.java | 1971 +++++++++-------- .../tosysmlv2/javacup/AvatarFromSysML.jcup | 468 ++-- .../static/AvatarCommunication.sysml | 2 +- .../tosysmlv2/static/AvatarGeneral.sysml | 6 +- 5 files changed, 1337 insertions(+), 1114 deletions(-) diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLLexer.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLLexer.java index d289740f13..4d4a7e71f2 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 11/07/2024 17:00 */ +/* The following code was generated by JFlex 1.4.3 on 15/07/2024 15:37 */ /* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille * @@ -47,7 +47,7 @@ import avatartranslator.tosysmlv2.AvatarFromSysMLSyntax.*; /** * This class is a scanner generated by * <a href="http://www.jflex.de/">JFlex</a> 1.4.3 - * on 11/07/2024 17:00 from the specification file + * on 15/07/2024 15:37 from the specification file * <code>__AvatarFromSysMLLexer__.jflex</code> */ public class AvatarFromSysMLLexer implements java_cup.runtime.Scanner { diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java index 989e5d1108..c1c48a4823 100644 --- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java +++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLParser.java @@ -38,7 +38,7 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { /** Production table. */ protected static final short _production_table[][] = unpackFromStrings(new String[] { - "\000\u0142\000\002\004\007\000\002\002\004\000\002\004" + + "\000\u0143\000\002\004\007\000\002\002\004\000\002\004" + "\006\000\002\005\003\000\002\005\004\000\002\006\003" + "\000\002\006\003\000\002\006\003\000\002\006\003\000" + "\002\006\003\000\002\006\003\000\002\006\003\000\002" + @@ -94,50 +94,50 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\004\000\002\166\006\000\002\116\011\000\002\116\010" + "\000\002\116\004\000\002\167\006\000\002\117\011\000" + "\002\117\010\000\002\117\004\000\002\170\006\000\002" + - "\120\007\000\002\120\005\000\002\121\005\000\002\122" + - "\003\000\002\122\005\000\002\227\002\000\002\123\014" + - "\000\002\123\004\000\002\124\003\000\002\124\003\000" + + "\120\006\000\002\120\007\000\002\120\005\000\002\121" + + "\005\000\002\122\003\000\002\122\005\000\002\123\014" + + "\000\002\123\004\000\002\227\002\000\002\124\003\000" + "\002\124\003\000\002\124\003\000\002\124\003\000\002" + - "\124\003\000\002\125\003\000\002\125\005\000\002\147" + - "\004\000\002\130\005\000\002\150\004\000\002\131\005" + - "\000\002\151\004\000\002\132\005\000\002\152\004\000" + - "\002\133\005\000\002\153\004\000\002\134\005\000\002" + - "\154\004\000\002\126\003\000\002\126\005\000\002\127" + - "\003\000\002\127\003\000\002\127\003\000\002\127\003" + + "\124\003\000\002\124\003\000\002\125\003\000\002\125" + + "\005\000\002\147\004\000\002\130\005\000\002\150\004" + + "\000\002\131\005\000\002\151\004\000\002\132\005\000" + + "\002\152\004\000\002\133\005\000\002\153\004\000\002" + + "\134\005\000\002\154\004\000\002\126\003\000\002\126" + + "\005\000\002\127\003\000\002\127\003\000\002\127\003" + "\000\002\127\003\000\002\127\003\000\002\127\003\000" + - "\002\135\005\000\002\136\005\000\002\226\003\000\002" + - "\137\003\000\002\137\003\000\002\141\010\000\002\142" + - "\007\000\002\142\006\000\002\142\004\000\002\142\007" + - "\000\002\142\006\000\002\172\004\000\002\143\005\000" + - "\002\144\007\000\002\145\007\000\002\146\007\000\002" + - "\204\003\000\002\204\005\000\002\173\012\000\002\173" + - "\012\000\002\174\005\000\002\212\003\000\002\213\003" + - "\000\002\213\005\000\002\175\005\000\002\140\010\000" + - "\002\176\012\000\002\176\012\000\002\177\011\000\002" + - "\200\006\000\002\200\007\000\002\200\010\000\002\200" + - "\011\000\002\205\007\000\002\205\013\000\002\201\005" + - "\000\002\201\006\000\002\201\005\000\002\201\006\000" + - "\002\214\006\000\002\215\006\000\002\207\010\000\002" + - "\207\006\000\002\202\007\000\002\202\005\000\002\203" + - "\007\000\002\203\006\000\002\003\003\000\002\211\003" + - "\000\002\210\004\000\002\210\004\000\002\216\013\000" + - "\002\217\010\000\002\217\006\000\002\220\006\000\002" + - "\220\004\000\002\221\012\000\002\206\004\000\002\206" + - "\005\000\002\222\003\000\002\222\003\000\002\222\003" + - "\000\002\223\010\000\002\224\010\000\002\224\010\000" + - "\002\225\010\000\002\225\010\000\002\230\003\000\002" + - "\230\003\000\002\230\003\000\002\231\003\000\002\233" + - "\003\000\002\233\003\000\002\234\005\000\002\234\005" + + "\002\127\003\000\002\135\005\000\002\136\005\000\002" + + "\226\003\000\002\137\003\000\002\137\003\000\002\141" + + "\010\000\002\142\007\000\002\142\006\000\002\142\004" + + "\000\002\142\007\000\002\142\006\000\002\172\004\000" + + "\002\143\005\000\002\144\007\000\002\145\007\000\002" + + "\146\007\000\002\204\003\000\002\204\005\000\002\174" + + "\005\000\002\212\003\000\002\213\003\000\002\213\005" + + "\000\002\173\012\000\002\173\012\000\002\175\005\000" + + "\002\140\010\000\002\176\012\000\002\176\012\000\002" + + "\177\011\000\002\200\006\000\002\200\007\000\002\200" + + "\010\000\002\200\011\000\002\205\007\000\002\205\013" + + "\000\002\201\005\000\002\201\006\000\002\201\005\000" + + "\002\201\006\000\002\214\006\000\002\215\006\000\002" + + "\207\010\000\002\207\006\000\002\202\007\000\002\202" + + "\005\000\002\203\007\000\002\203\006\000\002\211\003" + + "\000\002\003\003\000\002\210\004\000\002\210\004\000" + + "\002\216\013\000\002\217\010\000\002\217\006\000\002" + + "\220\006\000\002\220\004\000\002\221\012\000\002\206" + + "\004\000\002\206\005\000\002\222\003\000\002\222\003" + + "\000\002\222\003\000\002\223\010\000\002\224\010\000" + + "\002\224\010\000\002\225\010\000\002\225\010\000\002" + + "\230\003\000\002\230\003\000\002\230\003\000\002\231" + + "\003\000\002\233\003\000\002\233\003\000\002\234\005" + "\000\002\234\005\000\002\234\005\000\002\234\005\000" + - "\002\234\004\000\002\234\005\000\002\234\005\000\002" + - "\234\004\000\002\234\005\000\002\234\005\000\002\234" + + "\002\234\005\000\002\234\004\000\002\234\005\000\002" + + "\234\005\000\002\234\004\000\002\234\005\000\002\234" + "\005\000\002\234\005\000\002\234\005\000\002\234\005" + - "\000\002\234\005\000\002\234\003\000\002\234\003\000" + - "\002\235\003\000\002\235\005\000\002\232\004\000\002" + - "\232\005\000\002\236\004\000\002\243\003\000\002\243" + - "\005\000\002\240\003\000\002\237\003\000\002\237\003" + - "\000\002\237\003\000\002\241\004\000\002\241\005\000" + - "\002\242\004" }); + "\000\002\234\005\000\002\234\005\000\002\234\003\000" + + "\002\234\003\000\002\235\003\000\002\235\005\000\002" + + "\232\004\000\002\232\005\000\002\236\004\000\002\243" + + "\003\000\002\243\005\000\002\240\003\000\002\237\003" + + "\000\002\237\003\000\002\237\003\000\002\241\004\000" + + "\002\241\005\000\002\242\004" }); /** Access to production table. */ @Override @@ -146,7 +146,7 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { /** Parse-action table. */ protected static final short[][] _action_table = unpackFromStrings(new String[] { - "\000\u032e\000\004\260\005\001\002\000\004\002\u0330\001" + + "\000\u032f\000\004\260\005\001\002\000\004\002\u0331\001" + "\002\000\004\141\006\001\002\000\004\014\007\001\002" + "\000\014\015\030\164\020\166\040\232\010\262\046\001" + "\002\000\014\015\ufffc\164\ufffc\166\ufffc\232\ufffc\262\ufffc" + @@ -156,10 +156,10 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\uffde\262\uffde\001\002\000\014\015\uffdf\164\uffdf\166\uffdf" + "\232\uffdf\262\uffdf\001\002\000\014\015\uffbf\164\uffbf\166" + "\uffbf\232\uffbf\262\uffbf\001\002\000\014\015\uffc5\164\uffc5" + - "\166\uffc5\232\uffc5\262\uffc5\001\002\000\014\025\u0313\026" + - "\u0315\027\u030d\031\u0314\032\u030c\001\002\000\004\201\u0329" + - "\001\002\000\014\025\u0313\026\u0315\027\u030d\031\u0314\032" + - "\u030c\001\002\000\014\015\ufffe\164\020\166\040\232\010" + + "\166\uffc5\232\uffc5\262\uffc5\001\002\000\014\025\u0314\026" + + "\u0316\027\u030e\031\u0315\032\u030d\001\002\000\004\201\u032a" + + "\001\002\000\014\025\u0314\026\u0316\027\u030e\031\u0315\032" + + "\u030d\001\002\000\014\015\ufffe\164\020\166\040\232\010" + "\262\046\001\002\000\014\015\uffca\164\uffca\166\uffca\232" + "\uffca\262\uffca\001\002\000\014\015\uffcb\164\uffcb\166\uffcb" + "\232\uffcb\262\uffcb\001\002\000\014\015\ufffa\164\ufffa\166" + @@ -167,12 +167,12 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\166\uffc4\232\uffc4\262\uffc4\001\002\000\014\015\uffc9\164" + "\uffc9\166\uffc9\232\uffc9\262\uffc9\001\002\000\004\002\uffff" + "\001\002\000\014\015\uffbe\164\uffbe\166\uffbe\232\uffbe\262" + - "\uffbe\001\002\000\014\025\u0313\026\u0315\027\u030d\031\u0314" + - "\032\u030c\001\002\000\006\014\u0300\017\u02ff\001\002\000" + + "\uffbe\001\002\000\014\025\u0314\026\u0316\027\u030e\031\u0315" + + "\032\u030d\001\002\000\006\014\u0301\017\u0300\001\002\000" + "\014\015\ufff7\164\ufff7\166\ufff7\232\ufff7\262\ufff7\001\002" + - "\000\006\164\275\265\u02ef\001\002\000\014\015\ufffb\164" + - "\ufffb\166\ufffb\232\ufffb\262\ufffb\001\002\000\004\014\u02e8" + - "\001\002\000\004\020\u02cd\001\002\000\020\015\163\145" + + "\000\006\164\275\265\u02f0\001\002\000\014\015\ufffb\164" + + "\ufffb\166\ufffb\232\ufffb\262\ufffb\001\002\000\004\014\u02e9" + + "\001\002\000\004\020\u02ce\001\002\000\020\015\163\145" + "\172\164\156\171\162\215\153\262\200\270\154\001\002" + "\000\004\015\151\001\002\000\014\015\ufff6\164\ufff6\166" + "\ufff6\232\ufff6\262\ufff6\001\002\000\014\015\uffe0\164\uffe0" + @@ -219,23 +219,23 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\054\147\001\002\000\006\014\uffb2\017\uffb2\001\002\000" + "\006\164\uffbc\265\uffbc\001\002\000\004\002\001\001\002" + "\000\020\015\uff9a\145\uff9a\164\uff9a\171\uff9a\215\uff9a\262" + - "\uff9a\270\uff9a\001\002\000\004\307\u02c9\001\002\000\004" + - "\164\u02c5\001\002\000\020\015\uffa4\145\uffa4\164\uffa4\171" + - "\uffa4\215\uffa4\262\uffa4\270\uffa4\001\002\000\004\141\u02c2" + + "\uff9a\270\uff9a\001\002\000\004\307\u02ca\001\002\000\004" + + "\164\u02c6\001\002\000\020\015\uffa4\145\uffa4\164\uffa4\171" + + "\uffa4\215\uffa4\262\uffa4\270\uffa4\001\002\000\004\141\u02c3" + "\001\002\000\020\015\uffa5\145\uffa5\164\uffa5\171\uffa5\215" + - "\uffa5\262\uffa5\270\uffa5\001\002\000\010\017\u02bc\023\u02bb" + - "\202\u02ba\001\002\000\020\015\uffa8\145\uffa8\164\uffa8\171" + - "\uffa8\215\uffa8\262\uffa8\270\uffa8\001\002\000\004\141\u02b7" + + "\uffa5\262\uffa5\270\uffa5\001\002\000\010\017\u02bd\023\u02bc" + + "\202\u02bb\001\002\000\020\015\uffa8\145\uffa8\164\uffa8\171" + + "\uffa8\215\uffa8\262\uffa8\270\uffa8\001\002\000\004\141\u02b8" + "\001\002\000\024\015\uffae\145\uffae\164\uffae\166\uffae\171" + "\uffae\215\uffae\232\uffae\262\uffae\270\uffae\001\002\000\004" + - "\014\u02ac\001\002\000\020\015\uffa7\145\uffa7\164\uffa7\171" + - "\uffa7\215\uffa7\262\uffa7\270\uffa7\001\002\000\020\015\u02aa" + + "\014\u02ad\001\002\000\020\015\uffa7\145\uffa7\164\uffa7\171" + + "\uffa7\215\uffa7\262\uffa7\270\uffa7\001\002\000\020\015\u02ab" + "\145\172\164\156\171\162\215\153\262\200\270\154\001" + "\002\000\024\015\uffad\145\uffad\164\uffad\166\uffad\171\uffad" + "\215\uffad\232\uffad\262\uffad\270\uffad\001\002\000\020\015" + "\uff9b\145\uff9b\164\uff9b\171\uff9b\215\uff9b\262\uff9b\270\uff9b" + "\001\002\000\020\015\uffa6\145\uffa6\164\uffa6\171\uffa6\215" + - "\uffa6\262\uffa6\270\uffa6\001\002\000\004\141\u02a7\001\002" + + "\uffa6\262\uffa6\270\uffa6\001\002\000\004\141\u02a8\001\002" + "\000\006\014\321\017\320\001\002\000\004\014\273\001" + "\002\000\020\015\uffa9\145\uffa9\164\uffa9\171\uffa9\215\uffa9" + "\262\uffa9\270\uffa9\001\002\000\006\017\217\023\220\001" + @@ -253,110 +253,110 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\270\uff8e\001\002\000\020\015\uff8f\145\uff8f\164\uff8f\171" + "\uff8f\215\uff8f\262\uff8f\270\uff8f\001\002\000\020\015\uff9e" + "\145\uff9e\164\uff9e\171\uff9e\215\uff9e\262\uff9e\270\uff9e\001" + - "\002\000\016\004\222\005\225\012\226\141\223\251\231" + - "\335\221\001\002\000\016\004\222\005\225\012\226\141" + - "\223\251\231\335\221\001\002\000\044\011\ufecf\013\ufecf" + - "\016\ufecf\017\ufecf\024\ufecf\155\ufecf\255\ufecf\334\ufecf\335" + - "\ufecf\336\ufecf\337\ufecf\340\ufecf\341\ufecf\342\ufecf\343\ufecf" + - "\344\ufecf\345\ufecf\001\002\000\046\011\ufecd\013\ufecd\016" + - "\ufecd\017\ufecd\021\270\024\ufecd\155\ufecd\255\ufecd\334\ufecd" + - "\335\ufecd\336\ufecd\337\ufecd\340\ufecd\341\ufecd\342\ufecd\343" + - "\ufecd\344\ufecd\345\ufecd\001\002\000\044\011\ufee0\013\ufee0" + - "\016\ufee0\017\ufee0\024\ufee0\155\ufee0\255\ufee0\334\ufee0\335" + - "\ufee0\336\ufee0\337\ufee0\340\ufee0\341\ufee0\342\ufee0\343\ufee0" + - "\344\ufee0\345\ufee0\001\002\000\044\011\ufece\013\ufece\016" + - "\ufece\017\ufece\024\ufece\155\ufece\255\ufece\334\ufece\335\ufece" + - "\336\ufece\337\ufece\340\ufece\341\ufece\342\ufece\343\ufece\344" + - "\ufece\345\ufece\001\002\000\016\004\222\005\225\012\226" + - "\141\223\251\231\335\221\001\002\000\036\011\241\017" + - "\265\155\234\255\246\334\240\335\233\336\236\337\242" + - "\340\235\341\237\342\244\343\243\344\247\345\245\001" + - "\002\000\044\011\ufee1\013\ufee1\016\ufee1\017\ufee1\024\ufee1" + - "\155\ufee1\255\ufee1\334\ufee1\335\ufee1\336\ufee1\337\ufee1\340" + - "\ufee1\341\ufee1\342\ufee1\343\ufee1\344\ufee1\345\ufee1\001\002" + - "\000\016\004\222\005\225\012\226\141\223\251\231\335" + - "\221\001\002\000\044\011\241\013\ufed7\016\ufed7\017\ufed7" + - "\024\ufed7\155\ufed7\255\ufed7\334\240\335\233\336\236\337" + - "\242\340\235\341\237\342\244\343\243\344\247\345\245" + - "\001\002\000\016\004\222\005\225\012\226\141\223\251" + - "\231\335\221\001\002\000\016\004\222\005\225\012\226" + - "\141\223\251\231\335\221\001\002\000\016\004\222\005" + - "\225\012\226\141\223\251\231\335\221\001\002\000\016" + - "\004\222\005\225\012\226\141\223\251\231\335\221\001" + - "\002\000\016\004\222\005\225\012\226\141\223\251\231" + - "\335\221\001\002\000\016\004\222\005\225\012\226\141" + - "\223\251\231\335\221\001\002\000\016\004\222\005\225" + - "\012\226\141\223\251\231\335\221\001\002\000\016\004" + - "\222\005\225\012\226\141\223\251\231\335\221\001\002" + - "\000\016\004\222\005\225\012\226\141\223\251\231\335" + - "\221\001\002\000\016\004\222\005\225\012\226\141\223" + - "\251\231\335\221\001\002\000\016\004\222\005\225\012" + - "\226\141\223\251\231\335\221\001\002\000\016\004\222" + - "\005\225\012\226\141\223\251\231\335\221\001\002\000" + - "\016\004\222\005\225\012\226\141\223\251\231\335\221" + - "\001\002\000\034\011\ufed4\013\ufed4\016\ufed4\017\ufed4\024" + - "\ufed4\155\ufed4\255\ufed4\334\240\335\233\336\236\337\242" + - "\340\235\341\ufed4\001\002\000\044\011\241\013\ufed9\016" + - "\ufed9\017\ufed9\024\ufed9\155\234\255\ufed9\334\240\335\233" + - "\336\236\337\242\340\235\341\237\342\244\343\243\344" + - "\247\345\245\001\002\000\034\011\ufed3\013\ufed3\016\ufed3" + - "\017\ufed3\024\ufed3\155\ufed3\255\ufed3\334\240\335\233\336" + - "\236\337\242\340\235\341\ufed3\001\002\000\034\011\ufed6" + - "\013\ufed6\016\ufed6\017\ufed6\024\ufed6\155\ufed6\255\ufed6\334" + - "\240\335\233\336\236\337\242\340\235\341\ufed6\001\002" + - "\000\034\011\ufed5\013\ufed5\016\ufed5\017\ufed5\024\ufed5\155" + - "\ufed5\255\ufed5\334\240\335\233\336\236\337\242\340\235" + - "\341\ufed5\001\002\000\044\011\ufedc\013\ufedc\016\ufedc\017" + - "\ufedc\024\ufedc\155\ufedc\255\ufedc\334\ufedc\335\ufedc\336\ufedc" + - "\337\ufedc\340\ufedc\341\ufedc\342\ufedc\343\ufedc\344\ufedc\345" + - "\ufedc\001\002\000\044\011\ufed2\013\ufed2\016\ufed2\017\ufed2" + - "\024\ufed2\155\ufed2\255\ufed2\334\240\335\233\336\236\337" + - "\242\340\235\341\ufed2\342\244\343\243\344\247\345\245" + - "\001\002\000\044\011\ufedf\013\ufedf\016\ufedf\017\ufedf\024" + - "\ufedf\155\ufedf\255\ufedf\334\ufedf\335\ufedf\336\236\337\242" + - "\340\235\341\ufedf\342\ufedf\343\ufedf\344\ufedf\345\ufedf\001" + - "\002\000\044\011\ufed1\013\ufed1\016\ufed1\017\ufed1\024\ufed1" + - "\155\ufed1\255\ufed1\334\240\335\233\336\236\337\242\340" + - "\235\341\ufed1\342\244\343\243\344\247\345\245\001\002" + - "\000\044\011\ufedd\013\ufedd\016\ufedd\017\ufedd\024\ufedd\155" + - "\ufedd\255\ufedd\334\ufedd\335\ufedd\336\ufedd\337\ufedd\340\ufedd" + - "\341\ufedd\342\ufedd\343\ufedd\344\ufedd\345\ufedd\001\002\000" + - "\044\011\ufedb\013\ufedb\016\ufedb\017\ufedb\024\ufedb\155\ufedb" + - "\255\ufedb\334\ufedb\335\ufedb\336\ufedb\337\ufedb\340\ufedb\341" + - "\ufedb\342\ufedb\343\ufedb\344\ufedb\345\ufedb\001\002\000\044" + - "\011\241\013\ufed8\016\ufed8\017\ufed8\024\ufed8\155\ufed8\255" + - "\ufed8\334\240\335\233\336\236\337\242\340\235\341\237" + - "\342\244\343\243\344\247\345\245\001\002\000\044\011" + - "\ufede\013\ufede\016\ufede\017\ufede\024\ufede\155\ufede\255\ufede" + - "\334\ufede\335\ufede\336\236\337\242\340\235\341\ufede\342" + - "\ufede\343\ufede\344\ufede\345\ufede\001\002\000\020\015\uff9d" + + "\002\000\016\004\222\005\224\012\226\141\223\251\230" + + "\335\221\001\002\000\016\004\222\005\224\012\226\141" + + "\223\251\230\335\221\001\002\000\044\011\ufece\013\ufece" + + "\016\ufece\017\ufece\024\ufece\155\ufece\255\ufece\334\ufece\335" + + "\ufece\336\ufece\337\ufece\340\ufece\341\ufece\342\ufece\343\ufece" + + "\344\ufece\345\ufece\001\002\000\046\011\ufecc\013\ufecc\016" + + "\ufecc\017\ufecc\021\270\024\ufecc\155\ufecc\255\ufecc\334\ufecc" + + "\335\ufecc\336\ufecc\337\ufecc\340\ufecc\341\ufecc\342\ufecc\343" + + "\ufecc\344\ufecc\345\ufecc\001\002\000\044\011\ufecd\013\ufecd" + + "\016\ufecd\017\ufecd\024\ufecd\155\ufecd\255\ufecd\334\ufecd\335" + + "\ufecd\336\ufecd\337\ufecd\340\ufecd\341\ufecd\342\ufecd\343\ufecd" + + "\344\ufecd\345\ufecd\001\002\000\044\011\ufedf\013\ufedf\016" + + "\ufedf\017\ufedf\024\ufedf\155\ufedf\255\ufedf\334\ufedf\335\ufedf" + + "\336\ufedf\337\ufedf\340\ufedf\341\ufedf\342\ufedf\343\ufedf\344" + + "\ufedf\345\ufedf\001\002\000\016\004\222\005\224\012\226" + + "\141\223\251\230\335\221\001\002\000\036\011\241\017" + + "\265\155\234\255\246\334\240\335\233\336\235\337\242" + + "\340\236\341\237\342\245\343\243\344\247\345\244\001" + + "\002\000\016\004\222\005\224\012\226\141\223\251\230" + + "\335\221\001\002\000\044\011\ufee0\013\ufee0\016\ufee0\017" + + "\ufee0\024\ufee0\155\ufee0\255\ufee0\334\ufee0\335\ufee0\336\ufee0" + + "\337\ufee0\340\ufee0\341\ufee0\342\ufee0\343\ufee0\344\ufee0\345" + + "\ufee0\001\002\000\044\011\241\013\ufed6\016\ufed6\017\ufed6" + + "\024\ufed6\155\ufed6\255\ufed6\334\240\335\233\336\235\337" + + "\242\340\236\341\237\342\245\343\243\344\247\345\244" + + "\001\002\000\016\004\222\005\224\012\226\141\223\251" + + "\230\335\221\001\002\000\016\004\222\005\224\012\226" + + "\141\223\251\230\335\221\001\002\000\016\004\222\005" + + "\224\012\226\141\223\251\230\335\221\001\002\000\016" + + "\004\222\005\224\012\226\141\223\251\230\335\221\001" + + "\002\000\016\004\222\005\224\012\226\141\223\251\230" + + "\335\221\001\002\000\016\004\222\005\224\012\226\141" + + "\223\251\230\335\221\001\002\000\016\004\222\005\224" + + "\012\226\141\223\251\230\335\221\001\002\000\016\004" + + "\222\005\224\012\226\141\223\251\230\335\221\001\002" + + "\000\016\004\222\005\224\012\226\141\223\251\230\335" + + "\221\001\002\000\016\004\222\005\224\012\226\141\223" + + "\251\230\335\221\001\002\000\016\004\222\005\224\012" + + "\226\141\223\251\230\335\221\001\002\000\016\004\222" + + "\005\224\012\226\141\223\251\230\335\221\001\002\000" + + "\016\004\222\005\224\012\226\141\223\251\230\335\221" + + "\001\002\000\034\011\ufed3\013\ufed3\016\ufed3\017\ufed3\024" + + "\ufed3\155\ufed3\255\ufed3\334\240\335\233\336\235\337\242" + + "\340\236\341\ufed3\001\002\000\044\011\241\013\ufed8\016" + + "\ufed8\017\ufed8\024\ufed8\155\234\255\ufed8\334\240\335\233" + + "\336\235\337\242\340\236\341\237\342\245\343\243\344" + + "\247\345\244\001\002\000\034\011\ufed5\013\ufed5\016\ufed5" + + "\017\ufed5\024\ufed5\155\ufed5\255\ufed5\334\240\335\233\336" + + "\235\337\242\340\236\341\ufed5\001\002\000\034\011\ufed2" + + "\013\ufed2\016\ufed2\017\ufed2\024\ufed2\155\ufed2\255\ufed2\334" + + "\240\335\233\336\235\337\242\340\236\341\ufed2\001\002" + + "\000\034\011\ufed4\013\ufed4\016\ufed4\017\ufed4\024\ufed4\155" + + "\ufed4\255\ufed4\334\240\335\233\336\235\337\242\340\236" + + "\341\ufed4\001\002\000\044\011\ufedb\013\ufedb\016\ufedb\017" + + "\ufedb\024\ufedb\155\ufedb\255\ufedb\334\ufedb\335\ufedb\336\ufedb" + + "\337\ufedb\340\ufedb\341\ufedb\342\ufedb\343\ufedb\344\ufedb\345" + + "\ufedb\001\002\000\044\011\ufed1\013\ufed1\016\ufed1\017\ufed1" + + "\024\ufed1\155\ufed1\255\ufed1\334\240\335\233\336\235\337" + + "\242\340\236\341\ufed1\342\245\343\243\344\247\345\244" + + "\001\002\000\044\011\ufede\013\ufede\016\ufede\017\ufede\024" + + "\ufede\155\ufede\255\ufede\334\ufede\335\ufede\336\235\337\242" + + "\340\236\341\ufede\342\ufede\343\ufede\344\ufede\345\ufede\001" + + "\002\000\044\011\ufed0\013\ufed0\016\ufed0\017\ufed0\024\ufed0" + + "\155\ufed0\255\ufed0\334\240\335\233\336\235\337\242\340" + + "\236\341\ufed0\342\245\343\243\344\247\345\244\001\002" + + "\000\044\011\ufeda\013\ufeda\016\ufeda\017\ufeda\024\ufeda\155" + + "\ufeda\255\ufeda\334\ufeda\335\ufeda\336\ufeda\337\ufeda\340\ufeda" + + "\341\ufeda\342\ufeda\343\ufeda\344\ufeda\345\ufeda\001\002\000" + + "\044\011\ufedc\013\ufedc\016\ufedc\017\ufedc\024\ufedc\155\ufedc" + + "\255\ufedc\334\ufedc\335\ufedc\336\ufedc\337\ufedc\340\ufedc\341" + + "\ufedc\342\ufedc\343\ufedc\344\ufedc\345\ufedc\001\002\000\044" + + "\011\241\013\ufed7\016\ufed7\017\ufed7\024\ufed7\155\ufed7\255" + + "\ufed7\334\240\335\233\336\235\337\242\340\236\341\237" + + "\342\245\343\243\344\247\345\244\001\002\000\044\011" + + "\ufedd\013\ufedd\016\ufedd\017\ufedd\024\ufedd\155\ufedd\255\ufedd" + + "\334\ufedd\335\ufedd\336\235\337\242\340\236\341\ufedd\342" + + "\ufedd\343\ufedd\344\ufedd\345\ufedd\001\002\000\020\015\uff9d" + "\145\uff9d\164\uff9d\171\uff9d\215\uff9d\262\uff9d\270\uff9d\001" + "\002\000\036\011\241\013\267\155\234\255\246\334\240" + - "\335\233\336\236\337\242\340\235\341\237\342\244\343" + - "\243\344\247\345\245\001\002\000\044\011\ufed0\013\ufed0" + - "\016\ufed0\017\ufed0\024\ufed0\155\ufed0\255\ufed0\334\ufed0\335" + - "\ufed0\336\ufed0\337\ufed0\340\ufed0\341\ufed0\342\ufed0\343\ufed0" + - "\344\ufed0\345\ufed0\001\002\000\004\141\223\001\002\000" + - "\044\011\ufecc\013\ufecc\016\ufecc\017\ufecc\024\ufecc\155\ufecc" + - "\255\ufecc\334\ufecc\335\ufecc\336\ufecc\337\ufecc\340\ufecc\341" + - "\ufecc\342\ufecc\343\ufecc\344\ufecc\345\ufecc\001\002\000\044" + - "\011\ufeda\013\ufeda\016\ufeda\017\ufeda\024\ufeda\155\ufeda\255" + - "\ufeda\334\ufeda\335\ufeda\336\ufeda\337\ufeda\340\ufeda\341\ufeda" + - "\342\ufeda\343\ufeda\344\ufeda\345\ufeda\001\002\000\006\015" + + "\335\233\336\235\337\242\340\236\341\237\342\245\343" + + "\243\344\247\345\244\001\002\000\044\011\ufecf\013\ufecf" + + "\016\ufecf\017\ufecf\024\ufecf\155\ufecf\255\ufecf\334\ufecf\335" + + "\ufecf\336\ufecf\337\ufecf\340\ufecf\341\ufecf\342\ufecf\343\ufecf" + + "\344\ufecf\345\ufecf\001\002\000\004\141\223\001\002\000" + + "\044\011\ufecb\013\ufecb\016\ufecb\017\ufecb\024\ufecb\155\ufecb" + + "\255\ufecb\334\ufecb\335\ufecb\336\ufecb\337\ufecb\340\ufecb\341" + + "\ufecb\342\ufecb\343\ufecb\344\ufecb\345\ufecb\001\002\000\044" + + "\011\ufed9\013\ufed9\016\ufed9\017\ufed9\024\ufed9\155\ufed9\255" + + "\ufed9\334\ufed9\335\ufed9\336\ufed9\337\ufed9\340\ufed9\341\ufed9" + + "\342\ufed9\343\ufed9\344\ufed9\345\ufed9\001\002\000\006\015" + "\276\164\275\001\002\000\004\015\317\001\002\000\004" + "\141\311\001\002\000\020\015\uff99\145\uff99\164\uff99\171" + "\uff99\215\uff99\262\uff99\270\uff99\001\002\000\010\015\uffe7" + "\164\275\265\uffe7\001\002\000\010\017\uffe3\023\302\202" + "\301\001\002\000\004\023\306\001\002\000\016\004\222" + - "\005\225\012\226\141\223\251\231\335\221\001\002\000" + + "\005\224\012\226\141\223\251\230\335\221\001\002\000" + "\004\017\304\001\002\000\012\015\uffe5\164\uffe5\265\uffe5" + "\301\uffe5\001\002\000\036\011\241\017\uffe2\155\234\255" + - "\246\334\240\335\233\336\236\337\242\340\235\341\237" + - "\342\244\343\243\344\247\345\245\001\002\000\016\004" + - "\222\005\225\012\226\141\223\251\231\335\221\001\002" + + "\246\334\240\335\233\336\235\337\242\340\236\341\237" + + "\342\245\343\243\344\247\345\244\001\002\000\016\004" + + "\222\005\224\012\226\141\223\251\230\335\221\001\002" + "\000\036\011\241\017\uffe1\155\234\255\246\334\240\335" + - "\233\336\236\337\242\340\235\341\237\342\244\343\243" + - "\344\247\345\245\001\002\000\006\015\uffe6\265\uffe6\001" + + "\233\336\235\337\242\340\236\341\237\342\245\343\243" + + "\344\247\345\244\001\002\000\006\015\uffe6\265\uffe6\001" + "\002\000\004\020\312\001\002\000\010\074\315\075\316" + "\141\313\001\002\000\010\017\ufff2\023\ufff2\202\ufff2\001" + "\002\000\010\017\uffe4\023\uffe4\202\uffe4\001\002\000\010" + @@ -365,14 +365,14 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\171\uff98\215\uff98\262\uff98\270\uff98\001\002\000\020\015" + "\uff89\145\uff89\164\uff89\171\uff89\215\uff89\262\uff89\270\uff89" + "\001\002\000\014\015\342\212\351\216\322\307\354\316" + - "\363\001\002\000\004\145\u02a3\001\002\000\004\022\u0281" + + "\362\001\002\000\004\145\u02a4\001\002\000\004\022\u0282" + "\001\002\000\014\015\uff7e\212\uff7e\216\uff7e\307\uff7e\316" + "\uff7e\001\002\000\014\015\uff79\212\uff79\216\uff79\307\uff79" + - "\316\uff79\001\002\000\006\017\u0278\022\u0279\001\002\000" + + "\316\uff79\001\002\000\006\017\u0279\022\u027a\001\002\000" + "\014\015\uff81\212\uff81\216\uff81\307\uff81\316\uff81\001\002" + - "\000\004\022\u0250\001\002\000\006\017\u0247\022\u0248\001" + + "\000\004\022\u0251\001\002\000\006\017\u0248\022\u0249\001" + "\002\000\014\015\uff85\212\uff85\216\uff85\307\uff85\316\uff85" + - "\001\002\000\006\206\u01d4\313\u01d6\001\002\000\014\015" + + "\001\002\000\006\206\u01d5\313\u01d7\001\002\000\014\015" + "\uff7a\212\uff7a\216\uff7a\307\uff7a\316\uff7a\001\002\000\014" + "\015\uff82\212\uff82\216\uff82\307\uff82\316\uff82\001\002\000" + "\014\015\uff83\212\uff83\216\uff83\307\uff83\316\uff83\001\002" + @@ -383,7 +383,7 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\212\uff78\216\uff78\307\uff78\316\uff78\001\002\000\004\015" + "\u01b8\001\002\000\006\017\u01af\022\u01b0\001\002\000\004" + "\022\u01a9\001\002\000\006\017\u01a3\022\u01a4\001\002\000" + - "\014\015\uff87\212\351\216\322\307\354\316\363\001\002" + + "\014\015\uff87\212\351\216\322\307\354\316\362\001\002" + "\000\004\145\u019e\001\002\000\014\015\uff7c\212\uff7c\216" + "\uff7c\307\uff7c\316\uff7c\001\002\000\014\015\uff7f\212\uff7f" + "\216\uff7f\307\uff7f\316\uff7f\001\002\000\004\141\u0192\001" + @@ -391,133 +391,133 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\001\002\000\014\015\uff80\212\uff80\216\uff80\307\uff80\316" + "\uff80\001\002\000\006\017\u0189\022\u018a\001\002\000\004" + "\022\u0183\001\002\000\006\017\374\022\375\001\002\000" + - "\014\015\uff7d\212\uff7d\216\uff7d\307\uff7d\316\uff7d\001\002" + - "\000\004\020\364\001\002\000\004\115\365\001\002\000" + + "\004\020\364\001\002\000\014\015\uff7d\212\uff7d\216\uff7d" + + "\307\uff7d\316\uff7d\001\002\000\004\115\365\001\002\000" + "\004\221\366\001\002\000\004\141\367\001\002\000\010" + - "\206\uff07\230\370\313\uff07\001\002\000\004\036\371\001" + + "\206\uff06\230\370\313\uff06\001\002\000\004\036\371\001" + "\002\000\004\011\372\001\002\000\004\004\373\001\002" + - "\000\006\206\uff06\313\uff06\001\002\000\014\015\uff4e\212" + + "\000\006\206\uff05\313\uff05\001\002\000\014\015\uff4e\212" + "\uff4e\216\uff4e\307\uff4e\316\uff4e\001\002\000\004\124\376" + "\001\002\000\004\012\377\001\002\000\006\013\u0102\034" + "\u0100\001\002\000\004\022\u0106\001\002\000\004\013\u0104" + "\001\002\000\004\017\u0103\001\002\000\014\015\uff4f\212" + "\uff4f\216\uff4f\307\uff4f\316\uff4f\001\002\000\004\017\u0105" + "\001\002\000\014\015\uff50\212\uff50\216\uff50\307\uff50\316" + - "\uff50\001\002\000\022\065\uff47\066\uff47\067\uff47\070\uff47" + - "\125\uff47\126\uff47\127\uff47\230\uff47\001\002\000\006\013" + - "\uff4a\016\uff4a\001\002\000\022\065\u011a\066\u010e\067\u010d" + - "\070\u0111\125\u0119\126\u0116\127\u010b\230\u010f\001\002\000" + - "\010\013\uff42\016\uff42\210\uff42\001\002\000\012\036\u0125" + + "\uff50\001\002\000\022\065\uff44\066\uff44\067\uff44\070\uff44" + + "\125\uff44\126\uff44\127\uff44\230\uff44\001\002\000\006\013" + + "\uff49\016\uff49\001\002\000\022\065\u011a\066\u010e\067\u010d" + + "\070\u0111\125\u0119\126\u0117\127\u010b\230\u010f\001\002\000" + + "\010\013\uff41\016\uff41\210\uff41\001\002\000\012\036\u0125" + "\037\u0129\040\u0120\041\u0127\001\002\000\004\012\u0180\001" + "\002\000\012\036\u0125\037\u0129\040\u0120\041\u0127\001\002" + - "\000\004\012\u017d\001\002\000\010\013\uff3e\016\uff3e\210" + - "\uff3e\001\002\000\016\004\222\005\225\012\226\141\223" + - "\251\231\335\221\001\002\000\012\036\u0125\037\u0129\040" + + "\000\004\012\u017d\001\002\000\010\013\uff3d\016\uff3d\210" + + "\uff3d\001\002\000\016\004\222\005\224\012\226\141\223" + + "\251\230\335\221\001\002\000\012\036\u0125\037\u0129\040" + "\u0120\041\u0127\001\002\000\004\012\u0172\001\002\000\010" + - "\013\uff41\016\uff41\210\uff41\001\002\000\012\036\u0125\037" + + "\013\uff40\016\uff40\210\uff40\001\002\000\012\036\u0125\037" + "\u0129\040\u0120\041\u0127\001\002\000\012\036\u0125\037\u0129" + "\040\u0120\041\u0127\001\002\000\006\013\uff45\016\uff45\001" + - "\002\000\004\012\u016d\001\002\000\010\013\uff40\016\uff40" + - "\210\uff40\001\002\000\010\013\uff44\016\uff44\210\uff44\001" + + "\002\000\010\013\uff3f\016\uff3f\210\uff3f\001\002\000\004" + + "\012\u016d\001\002\000\010\013\uff43\016\uff43\210\uff43\001" + "\002\000\004\012\u016c\001\002\000\004\012\u016b\001\002" + - "\000\010\013\uff3f\016\uff3f\210\uff3f\001\002\000\010\013" + - "\uff43\016\uff43\210\uff43\001\002\000\012\036\u0125\037\u0129" + - "\040\u0120\041\u0127\001\002\000\006\013\uff2e\016\uff2e\001" + - "\002\000\006\013\uff2b\016\uff2b\001\002\000\004\022\u016a" + - "\001\002\000\006\013\uff2f\016\uff2f\001\002\000\004\013" + - "\u0169\001\002\000\006\013\uff31\016\u0167\001\002\000\010" + + "\000\010\013\uff3e\016\uff3e\210\uff3e\001\002\000\010\013" + + "\uff42\016\uff42\210\uff42\001\002\000\012\036\u0125\037\u0129" + + "\040\u0120\041\u0127\001\002\000\006\013\uff2d\016\uff2d\001" + + "\002\000\006\013\uff2a\016\uff2a\001\002\000\004\022\u016a" + + "\001\002\000\006\013\uff2e\016\uff2e\001\002\000\004\013" + + "\u0169\001\002\000\006\013\uff30\016\u0167\001\002\000\010" + "\130\u0140\131\u013f\141\u0141\001\002\000\004\022\u013d\001" + - "\002\000\006\013\uff2c\016\uff2c\001\002\000\004\022\u0137" + - "\001\002\000\006\013\uff29\016\uff29\001\002\000\004\022" + - "\uff26\001\002\000\006\013\uff2a\016\uff2a\001\002\000\004" + - "\022\u012d\001\002\000\006\013\uff2d\016\uff2d\001\002\000" + - "\020\004\222\005\225\012\226\073\u012f\141\223\251\231" + - "\335\221\001\002\000\006\013\uff27\016\uff27\001\002\000" + - "\004\012\u0132\001\002\000\006\013\uff24\016\uff24\001\002" + - "\000\040\011\241\013\uff25\016\uff25\155\234\255\246\334" + - "\240\335\233\336\236\337\242\340\235\341\237\342\244" + - "\343\243\344\247\345\245\001\002\000\016\004\222\005" + - "\225\012\226\141\223\251\231\335\221\001\002\000\036" + + "\002\000\006\013\uff2b\016\uff2b\001\002\000\004\022\u0137" + + "\001\002\000\006\013\uff28\016\uff28\001\002\000\004\022" + + "\uff25\001\002\000\006\013\uff29\016\uff29\001\002\000\004" + + "\022\u012d\001\002\000\006\013\uff2c\016\uff2c\001\002\000" + + "\020\004\222\005\224\012\226\073\u012f\141\223\251\230" + + "\335\221\001\002\000\006\013\uff26\016\uff26\001\002\000" + + "\004\012\u0132\001\002\000\006\013\uff23\016\uff23\001\002" + + "\000\040\011\241\013\uff24\016\uff24\155\234\255\246\334" + + "\240\335\233\336\235\337\242\340\236\341\237\342\245" + + "\343\243\344\247\345\244\001\002\000\016\004\222\005" + + "\224\012\226\141\223\251\230\335\221\001\002\000\036" + "\011\241\016\u0134\155\234\255\246\334\240\335\233\336" + - "\236\337\242\340\235\341\237\342\244\343\243\344\247" + - "\345\245\001\002\000\016\004\222\005\225\012\226\141" + - "\223\251\231\335\221\001\002\000\036\011\241\013\u0136" + - "\155\234\255\246\334\240\335\233\336\236\337\242\340" + - "\235\341\237\342\244\343\243\344\247\345\245\001\002" + - "\000\006\013\uff23\016\uff23\001\002\000\004\141\u0138\001" + - "\002\000\010\013\uff1c\016\uff1c\021\u0139\001\002\000\010" + - "\134\u013a\135\u013c\136\u013b\001\002\000\006\013\uff1b\016" + - "\uff1b\001\002\000\006\013\uff19\016\uff19\001\002\000\006" + - "\013\uff1a\016\uff1a\001\002\000\004\004\u013e\001\002\000" + - "\006\013\uff28\016\uff28\001\002\000\004\012\u0165\001\002" + - "\000\004\012\u0161\001\002\000\010\012\u0142\013\uff20\016" + - "\uff20\001\002\000\020\004\222\005\225\012\226\013\u0149" + - "\141\u0145\251\231\335\221\001\002\000\020\004\222\005" + - "\225\012\226\013\u0157\141\u0153\251\231\335\221\001\002" + - "\000\006\013\uff18\016\uff18\001\002\000\046\011\ufecd\012" + - "\u014f\013\ufecd\016\ufecd\017\ufecd\021\270\155\ufecd\255\ufecd" + - "\334\ufecd\335\ufecd\336\ufecd\337\ufecd\340\ufecd\341\ufecd\342" + - "\ufecd\343\ufecd\344\ufecd\345\ufecd\001\002\000\042\011\ufee0" + - "\013\ufee3\016\ufee3\017\ufee3\155\ufee0\255\ufee0\334\ufee0\335" + - "\ufee0\336\ufee0\337\ufee0\340\ufee0\341\ufee0\342\ufee0\343\ufee0" + - "\344\ufee0\345\ufee0\001\002\000\006\013\u014d\016\u014c\001" + + "\235\337\242\340\236\341\237\342\245\343\243\344\247" + + "\345\244\001\002\000\016\004\222\005\224\012\226\141" + + "\223\251\230\335\221\001\002\000\036\011\241\013\u0136" + + "\155\234\255\246\334\240\335\233\336\235\337\242\340" + + "\236\341\237\342\245\343\243\344\247\345\244\001\002" + + "\000\006\013\uff22\016\uff22\001\002\000\004\141\u0138\001" + + "\002\000\010\013\uff1b\016\uff1b\021\u0139\001\002\000\010" + + "\134\u013a\135\u013c\136\u013b\001\002\000\006\013\uff1a\016" + + "\uff1a\001\002\000\006\013\uff18\016\uff18\001\002\000\006" + + "\013\uff19\016\uff19\001\002\000\004\004\u013e\001\002\000" + + "\006\013\uff27\016\uff27\001\002\000\004\012\u0165\001\002" + + "\000\004\012\u0161\001\002\000\010\012\u0142\013\uff1f\016" + + "\uff1f\001\002\000\020\004\222\005\224\012\226\013\u0149" + + "\141\u0145\251\230\335\221\001\002\000\006\013\uff17\016" + + "\uff17\001\002\000\020\004\222\005\224\012\226\013\u0156" + + "\141\u0151\251\230\335\221\001\002\000\046\011\ufecc\012" + + "\u014f\013\ufecc\016\ufecc\017\ufecc\021\270\155\ufecc\255\ufecc" + + "\334\ufecc\335\ufecc\336\ufecc\337\ufecc\340\ufecc\341\ufecc\342" + + "\ufecc\343\ufecc\344\ufecc\345\ufecc\001\002\000\042\011\ufedf" + + "\013\ufee2\016\ufee2\017\ufee2\155\ufedf\255\ufedf\334\ufedf\335" + + "\ufedf\336\ufedf\337\ufedf\340\ufedf\341\ufedf\342\ufedf\343\ufedf" + + "\344\ufedf\345\ufedf\001\002\000\006\013\u014d\016\u014c\001" + "\002\000\034\011\241\155\234\255\246\334\240\335\233" + - "\336\236\337\242\340\235\341\237\342\244\343\243\344" + - "\247\345\245\001\002\000\006\013\uff21\016\uff21\001\002" + - "\000\042\011\ufee1\013\ufee4\016\ufee4\017\ufee4\155\ufee1\255" + - "\ufee1\334\ufee1\335\ufee1\336\ufee1\337\ufee1\340\ufee1\341\ufee1" + - "\342\ufee1\343\ufee1\344\ufee1\345\ufee1\001\002\000\010\013" + - "\ufee5\016\ufee5\017\ufee5\001\002\000\016\004\222\005\225" + - "\012\226\141\u0145\251\231\335\221\001\002\000\006\013" + - "\uff22\016\uff22\001\002\000\006\013\uff17\016\uff17\001\002" + - "\000\020\004\ufec9\005\ufec9\012\ufec9\013\ufec9\141\ufec9\251" + - "\ufec9\335\ufec9\001\002\000\016\004\222\005\225\012\226" + - "\141\u0153\251\231\335\221\001\002\000\004\013\u015e\001" + - "\002\000\006\013\ufec8\016\u015c\001\002\000\044\011\ufecd" + - "\012\u015a\013\ufecd\016\ufecd\021\270\155\ufecd\255\ufecd\334" + - "\ufecd\335\ufecd\336\ufecd\337\ufecd\340\ufecd\341\ufecd\342\ufecd" + - "\343\ufecd\344\ufecd\345\ufecd\001\002\000\040\011\ufee0\013" + - "\ufec4\016\ufec4\155\ufee0\255\ufee0\334\ufee0\335\ufee0\336\ufee0" + - "\337\ufee0\340\ufee0\341\ufee0\342\ufee0\343\ufee0\344\ufee0\345" + - "\ufee0\001\002\000\004\013\u0159\001\002\000\040\011\ufee1" + - "\013\ufec5\016\ufec5\155\ufee1\255\ufee1\334\ufee1\335\ufee1\336" + - "\ufee1\337\ufee1\340\ufee1\341\ufee1\342\ufee1\343\ufee1\344\ufee1" + - "\345\ufee1\001\002\000\010\013\ufecb\016\ufecb\017\ufecb\001" + - "\002\000\006\013\ufec3\016\ufec3\001\002\000\010\013\ufeca" + - "\016\ufeca\017\ufeca\001\002\000\020\004\ufec9\005\ufec9\012" + - "\ufec9\013\ufec0\141\ufec9\251\ufec9\335\ufec9\001\002\000\016" + - "\004\222\005\225\012\226\141\u0153\251\231\335\221\001" + - "\002\000\016\004\ufec6\005\ufec6\012\ufec6\141\ufec6\251\ufec6" + - "\335\ufec6\001\002\000\004\013\ufec7\001\002\000\006\013" + - "\ufec2\016\ufec2\001\002\000\004\013\u0160\001\002\000\006" + - "\013\ufec1\016\ufec1\001\002\000\016\004\222\005\225\012" + - "\226\141\223\251\231\335\221\001\002\000\036\011\241" + - "\013\ufee2\155\234\255\246\334\240\335\233\336\236\337" + - "\242\340\235\341\237\342\244\343\243\344\247\345\245" + - "\001\002\000\004\013\u0164\001\002\000\006\013\uff1f\016" + - "\uff1f\001\002\000\004\013\u0166\001\002\000\006\013\uff1e" + - "\016\uff1e\001\002\000\012\036\u0125\037\u0129\040\u0120\041" + - "\u0127\001\002\000\004\013\uff30\001\002\000\010\013\uff35" + - "\016\uff35\210\uff35\001\002\000\010\130\uff1d\131\uff1d\141" + - "\uff1d\001\002\000\012\036\uff3c\037\uff3c\040\uff3c\041\uff3c" + - "\001\002\000\012\036\uff36\037\uff36\040\uff36\041\uff36\001" + - "\002\000\012\036\uff34\037\uff34\040\uff34\041\uff34\001\002" + - "\000\004\013\u016f\001\002\000\010\013\uff33\016\uff33\210" + - "\uff33\001\002\000\004\013\u0171\001\002\000\010\013\uff39" + - "\016\uff39\210\uff39\001\002\000\012\036\uff38\037\uff38\040" + - "\uff38\041\uff38\001\002\000\004\013\u0174\001\002\000\010" + - "\013\uff3d\016\uff3d\210\uff3d\001\002\000\036\011\241\024" + - "\u0176\155\234\255\246\334\240\335\233\336\236\337\242" + - "\340\235\341\237\342\244\343\243\344\247\345\245\001" + + "\336\235\337\242\340\236\341\237\342\245\343\243\344" + + "\247\345\244\001\002\000\006\013\uff20\016\uff20\001\002" + + "\000\042\011\ufee0\013\ufee3\016\ufee3\017\ufee3\155\ufee0\255" + + "\ufee0\334\ufee0\335\ufee0\336\ufee0\337\ufee0\340\ufee0\341\ufee0" + + "\342\ufee0\343\ufee0\344\ufee0\345\ufee0\001\002\000\010\013" + + "\ufee4\016\ufee4\017\ufee4\001\002\000\016\004\222\005\224" + + "\012\226\141\u0145\251\230\335\221\001\002\000\006\013" + + "\uff21\016\uff21\001\002\000\006\013\uff16\016\uff16\001\002" + + "\000\020\004\ufec8\005\ufec8\012\ufec8\013\ufec8\141\ufec8\251" + + "\ufec8\335\ufec8\001\002\000\016\004\222\005\224\012\226" + + "\141\u0151\251\230\335\221\001\002\000\044\011\ufecc\012" + + "\u015e\013\ufecc\016\ufecc\021\270\155\ufecc\255\ufecc\334\ufecc" + + "\335\ufecc\336\ufecc\337\ufecc\340\ufecc\341\ufecc\342\ufecc\343" + + "\ufecc\344\ufecc\345\ufecc\001\002\000\004\013\u015d\001\002" + + "\000\006\013\ufec7\016\u015b\001\002\000\040\011\ufedf\013" + + "\ufec3\016\ufec3\155\ufedf\255\ufedf\334\ufedf\335\ufedf\336\ufedf" + + "\337\ufedf\340\ufedf\341\ufedf\342\ufedf\343\ufedf\344\ufedf\345" + + "\ufedf\001\002\000\004\013\u0159\001\002\000\010\013\ufeca" + + "\016\ufeca\017\ufeca\001\002\000\040\011\ufee0\013\ufec4\016" + + "\ufec4\155\ufee0\255\ufee0\334\ufee0\335\ufee0\336\ufee0\337\ufee0" + + "\340\ufee0\341\ufee0\342\ufee0\343\ufee0\344\ufee0\345\ufee0\001" + + "\002\000\006\013\ufec2\016\ufec2\001\002\000\010\013\ufec9" + + "\016\ufec9\017\ufec9\001\002\000\016\004\222\005\224\012" + + "\226\141\u0151\251\230\335\221\001\002\000\016\004\ufec5" + + "\005\ufec5\012\ufec5\141\ufec5\251\ufec5\335\ufec5\001\002\000" + + "\004\013\ufec6\001\002\000\006\013\ufec1\016\ufec1\001\002" + + "\000\020\004\ufec8\005\ufec8\012\ufec8\013\ufebf\141\ufec8\251" + + "\ufec8\335\ufec8\001\002\000\004\013\u0160\001\002\000\006" + + "\013\ufec0\016\ufec0\001\002\000\016\004\222\005\224\012" + + "\226\141\223\251\230\335\221\001\002\000\036\011\241" + + "\013\ufee1\155\234\255\246\334\240\335\233\336\235\337" + + "\242\340\236\341\237\342\245\343\243\344\247\345\244" + + "\001\002\000\004\013\u0164\001\002\000\006\013\uff1e\016" + + "\uff1e\001\002\000\004\013\u0166\001\002\000\006\013\uff1d" + + "\016\uff1d\001\002\000\012\036\u0125\037\u0129\040\u0120\041" + + "\u0127\001\002\000\004\013\uff2f\001\002\000\010\013\uff34" + + "\016\uff34\210\uff34\001\002\000\010\130\uff1c\131\uff1c\141" + + "\uff1c\001\002\000\012\036\uff3b\037\uff3b\040\uff3b\041\uff3b" + + "\001\002\000\012\036\uff35\037\uff35\040\uff35\041\uff35\001" + + "\002\000\012\036\uff33\037\uff33\040\uff33\041\uff33\001\002" + + "\000\004\013\u016f\001\002\000\010\013\uff32\016\uff32\210" + + "\uff32\001\002\000\004\013\u0171\001\002\000\010\013\uff38" + + "\016\uff38\210\uff38\001\002\000\012\036\uff37\037\uff37\040" + + "\uff37\041\uff37\001\002\000\004\013\u0174\001\002\000\010" + + "\013\uff3c\016\uff3c\210\uff3c\001\002\000\036\011\241\024" + + "\u0176\155\234\255\246\334\240\335\233\336\235\337\242" + + "\340\236\341\237\342\245\343\243\344\247\345\244\001" + "\002\000\020\065\u011a\066\u010e\067\u010d\070\u0111\125\u0119" + - "\126\u0116\127\u010b\001\002\000\004\210\u0178\001\002\000" + + "\126\u0117\127\u010b\001\002\000\004\210\u0178\001\002\000" + "\004\064\u0179\001\002\000\004\012\u017a\001\002\000\004" + "\004\u017b\001\002\000\004\013\u017c\001\002\000\006\013" + - "\uff46\016\uff46\001\002\000\012\036\uff3a\037\uff3a\040\uff3a" + - "\041\uff3a\001\002\000\004\013\u017f\001\002\000\010\013" + - "\uff3b\016\uff3b\210\uff3b\001\002\000\012\036\uff32\037\uff32" + - "\040\uff32\041\uff32\001\002\000\004\013\u0182\001\002\000" + - "\010\013\uff37\016\uff37\210\uff37\001\002\000\004\113\u0184" + + "\uff46\016\uff46\001\002\000\012\036\uff39\037\uff39\040\uff39" + + "\041\uff39\001\002\000\004\013\u017f\001\002\000\010\013" + + "\uff3a\016\uff3a\210\uff3a\001\002\000\012\036\uff31\037\uff31" + + "\040\uff31\041\uff31\001\002\000\004\013\u0182\001\002\000" + + "\010\013\uff36\016\uff36\210\uff36\001\002\000\004\113\u0184" + "\001\002\000\004\012\u0185\001\002\000\004\034\u0100\001" + "\002\000\004\013\u0187\001\002\000\004\017\u0188\001\002" + "\000\014\015\uff5c\212\uff5c\216\uff5c\307\uff5c\316\uff5c\001" + @@ -561,233 +561,234 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\216\uff58\307\uff58\316\uff58\001\002\000\014\015\uff73\212" + "\uff73\216\uff73\307\uff73\316\uff73\001\002\000\004\104\u01c4" + "\001\002\000\004\012\u01c5\001\002\000\006\013\u01c8\033" + - "\u01c7\001\002\000\004\013\u01d2\001\002\000\004\022\u01ca" + + "\u01c7\001\002\000\004\013\u01d3\001\002\000\004\022\u01ca" + "\001\002\000\004\017\u01c9\001\002\000\014\015\uff72\212" + "\uff72\216\uff72\307\uff72\316\uff72\001\002\000\024\012\u01cb" + - "\065\uff47\066\uff47\067\uff47\070\uff47\125\uff47\126\uff47\127" + - "\uff47\230\uff47\001\002\000\022\065\uff47\066\uff47\067\uff47" + - "\070\uff47\125\uff47\126\uff47\127\uff47\230\uff47\001\002\000" + - "\004\013\uff4b\001\002\000\004\013\u01d1\001\002\000\006" + - "\013\uff49\016\u01cf\001\002\000\022\065\uff47\066\uff47\067" + - "\uff47\070\uff47\125\uff47\126\uff47\127\uff47\230\uff47\001\002" + - "\000\004\013\uff48\001\002\000\004\013\uff4c\001\002\000" + - "\004\017\u01d3\001\002\000\014\015\uff71\212\uff71\216\uff71" + - "\307\uff71\316\uff71\001\002\000\004\145\u0243\001\002\000" + - "\004\014\u021f\001\002\000\004\141\u021a\001\002\000\004" + - "\014\u01fb\001\002\000\004\313\u01d9\001\002\000\004\141" + - "\u01da\001\002\000\006\014\u01dc\017\u01db\001\002\000\014" + - "\015\uff0a\212\uff0a\216\uff0a\307\uff0a\316\uff0a\001\002\000" + - "\004\164\u01de\001\002\000\004\017\u01f9\001\002\000\012" + - "\007\u01e7\137\u01e4\140\u01e5\141\u01e6\001\002\000\004\015" + - "\u01e3\001\002\000\004\017\ufeec\001\002\000\004\017\ufeeb" + - "\001\002\000\004\017\ufeed\001\002\000\014\015\uff08\212" + - "\uff08\216\uff08\307\uff08\316\uff08\001\002\000\004\020\u01f5" + - "\001\002\000\004\020\u01f0\001\002\000\004\020\u01ec\001" + - "\002\000\004\020\u01e8\001\002\000\004\076\u01e9\001\002" + - "\000\004\022\u01ea\001\002\000\004\006\u01eb\001\002\000" + - "\004\017\ufee7\001\002\000\004\076\u01ed\001\002\000\004" + - "\022\u01ee\001\002\000\004\006\u01ef\001\002\000\004\017" + - "\ufee6\001\002\000\004\077\u01f1\001\002\000\004\022\u01f2" + - "\001\002\000\006\004\u01f4\010\u01f3\001\002\000\004\017" + - "\ufee9\001\002\000\004\017\ufee8\001\002\000\004\076\u01f6" + - "\001\002\000\004\022\u01f7\001\002\000\004\006\u01f8\001" + - "\002\000\004\017\ufeea\001\002\000\006\015\ufeef\164\u01de" + - "\001\002\000\004\015\ufeee\001\002\000\006\015\u01fd\221" + - "\u01fe\001\002\000\004\015\u0219\001\002\000\004\313\uff05" + - "\001\002\000\004\045\u01ff\001\002\000\004\017\u0200\001" + - "\002\000\004\313\u0201\001\002\000\010\046\u0203\145\u0206" + - "\160\u0207\001\002\000\004\015\ufefe\001\002\000\004\017" + - "\u0218\001\002\000\004\313\u0214\001\002\000\004\141\u020d" + - "\001\002\000\004\022\u0208\001\002\000\004\141\ufef8\001" + - "\002\000\004\141\u0209\001\002\000\004\012\u014f\001\002" + - "\000\004\017\u020b\001\002\000\004\313\ufefa\001\002\000" + - "\006\021\u0212\023\ufef9\001\002\000\012\013\uff12\016\uff12" + - "\021\uff12\023\uff12\001\002\000\004\023\u020f\001\002\000" + - "\016\004\222\005\225\012\226\141\u0145\251\231\335\221" + - "\001\002\000\004\017\u0211\001\002\000\004\313\ufefb\001" + - "\002\000\004\141\u0213\001\002\000\012\013\uff11\016\uff11" + - "\021\uff11\023\uff11\001\002\000\010\046\u0216\145\u0206\160" + - "\u0207\001\002\000\004\015\ufefc\001\002\000\004\017\u0217" + - "\001\002\000\004\015\ufefd\001\002\000\004\015\ufeff\001" + - "\002\000\004\313\uff04\001\002\000\006\014\u021c\017\u021b" + - "\001\002\000\014\015\uff0b\212\uff0b\216\uff0b\307\uff0b\316" + - "\uff0b\001\002\000\004\164\u01de\001\002\000\004\015\u021e" + - "\001\002\000\014\015\uff09\212\uff09\216\uff09\307\uff09\316" + - "\uff09\001\002\000\010\015\u0223\221\u0224\241\u0220\001\002" + - "\000\004\071\u023b\001\002\000\004\221\u0224\001\002\000" + - "\004\241\u0220\001\002\000\004\313\uff03\001\002\000\004" + - "\045\u0227\001\002\000\004\015\u0226\001\002\000\004\313" + - "\uff02\001\002\000\004\017\u0228\001\002\000\004\313\u0229" + - "\001\002\000\006\046\u0237\160\u0207\001\002\000\004\313" + - "\u022c\001\002\000\006\015\ufef3\241\ufef3\001\002\000\006" + - "\046\u022e\160\u0207\001\002\000\006\015\ufef1\241\ufef1\001" + - "\002\000\004\017\u0236\001\002\000\004\141\u020d\001\002" + - "\000\006\021\u0212\023\u0231\001\002\000\004\071\u0232\001" + - "\002\000\004\021\u0233\001\002\000\004\141\u0234\001\002" + - "\000\004\017\u0235\001\002\000\004\313\ufef0\001\002\000" + - "\006\015\ufef2\241\ufef2\001\002\000\004\017\u0238\001\002" + - "\000\006\015\ufef4\241\ufef4\001\002\000\004\015\ufef6\001" + - "\002\000\004\015\ufef7\001\002\000\004\020\u023c\001\002" + - "\000\004\141\u023d\001\002\000\004\022\u023e\001\002\000" + - "\004\040\u023f\001\002\000\004\156\u0240\001\002\000\004" + - "\141\u0241\001\002\000\004\017\u0242\001\002\000\006\015" + - "\ufef5\221\ufef5\001\002\000\004\020\u0244\001\002\000\006" + - "\117\u0245\120\u0246\001\002\000\004\014\uff00\001\002\000" + - "\004\014\uff01\001\002\000\014\015\uff68\212\uff68\216\uff68" + - "\307\uff68\316\uff68\001\002\000\004\110\u0249\001\002\000" + - "\004\012\u024a\001\002\000\006\013\u024c\034\u0100\001\002" + - "\000\004\013\u024e\001\002\000\004\017\u024d\001\002\000" + - "\014\015\uff67\212\uff67\216\uff67\307\uff67\316\uff67\001\002" + - "\000\004\017\u024f\001\002\000\014\015\uff66\212\uff66\216" + - "\uff66\307\uff66\316\uff66\001\002\000\004\111\u0251\001\002" + - "\000\004\012\u0252\001\002\000\006\034\u0100\035\u0253\001" + - "\002\000\004\022\u0260\001\002\000\004\016\u025c\001\002" + - "\000\006\013\u0257\016\u0256\001\002\000\004\034\u0100\001" + - "\002\000\004\017\u0258\001\002\000\014\015\uff62\212\uff62" + - "\216\uff62\307\uff62\316\uff62\001\002\000\004\013\u025a\001" + - "\002\000\004\017\u025b\001\002\000\014\015\uff64\212\uff64" + - "\216\uff64\307\uff64\316\uff64\001\002\000\004\035\u0253\001" + - "\002\000\004\013\u025e\001\002\000\004\017\u025f\001\002" + - "\000\014\015\uff63\212\uff63\216\uff63\307\uff63\316\uff63\001" + - "\002\000\004\072\u0261\001\002\000\004\012\u0262\001\002" + - "\000\006\042\u0263\043\u0266\001\002\000\004\022\u0270\001" + - "\002\000\004\016\u026d\001\002\000\004\022\u026b\001\002" + - "\000\004\022\uff13\001\002\000\004\016\u0268\001\002\000" + - "\004\042\u0263\001\002\000\004\013\u026a\001\002\000\006" + - "\013\uff16\016\uff16\001\002\000\004\141\u020d\001\002\000" + - "\010\013\uff14\016\uff14\021\u0212\001\002\000\004\043\u0266" + - "\001\002\000\004\013\u026f\001\002\000\006\013\uff15\016" + - "\uff15\001\002\000\004\073\u0271\001\002\000\004\012\u0273" + - "\001\002\000\006\013\uff10\016\uff10\001\002\000\016\004" + - "\222\005\225\012\226\141\223\251\231\335\221\001\002" + - "\000\036\011\241\016\u0275\155\234\255\246\334\240\335" + - "\233\336\236\337\242\340\235\341\237\342\244\343\243" + - "\344\247\345\245\001\002\000\016\004\222\005\225\012" + - "\226\141\223\251\231\335\221\001\002\000\036\011\241" + - "\013\u0277\155\234\255\246\334\240\335\233\336\236\337" + - "\242\340\235\341\237\342\244\343\243\344\247\345\245" + - "\001\002\000\006\013\uff0f\016\uff0f\001\002\000\014\015" + - "\uff77\212\uff77\216\uff77\307\uff77\316\uff77\001\002\000\004" + - "\106\u027a\001\002\000\004\012\u027b\001\002\000\006\013" + - "\u027d\034\u0100\001\002\000\004\013\u027f\001\002\000\004" + - "\017\u027e\001\002\000\014\015\uff76\212\uff76\216\uff76\307" + - "\uff76\316\uff76\001\002\000\004\017\u0280\001\002\000\014" + - "\015\uff75\212\uff75\216\uff75\307\uff75\316\uff75\001\002\000" + - "\004\112\u0282\001\002\000\004\012\u0283\001\002\000\006" + - "\034\u0100\035\u0284\001\002\000\004\022\u0291\001\002\000" + - "\006\013\u028c\016\u028b\001\002\000\004\016\u0287\001\002" + - "\000\004\035\u0284\001\002\000\004\013\u0289\001\002\000" + - "\004\017\u028a\001\002\000\014\015\uff5f\212\uff5f\216\uff5f" + - "\307\uff5f\316\uff5f\001\002\000\004\034\u0100\001\002\000" + - "\004\017\u028d\001\002\000\014\015\uff60\212\uff60\216\uff60" + - "\307\uff60\316\uff60\001\002\000\004\013\u028f\001\002\000" + - "\004\017\u0290\001\002\000\014\015\uff5e\212\uff5e\216\uff5e" + - "\307\uff5e\316\uff5e\001\002\000\004\072\u0292\001\002\000" + - "\004\012\u0293\001\002\000\006\042\u0294\043\u0266\001\002" + - "\000\004\022\u029d\001\002\000\004\016\u029a\001\002\000" + - "\004\016\u0297\001\002\000\004\042\u0294\001\002\000\004" + - "\013\u0299\001\002\000\006\013\uff0e\016\uff0e\001\002\000" + - "\004\043\u0266\001\002\000\004\013\u029c\001\002\000\006" + - "\013\uff0d\016\uff0d\001\002\000\004\141\u029e\001\002\000" + - "\004\021\u029f\001\002\000\004\044\u02a0\001\002\000\004" + - "\012\u02a1\001\002\000\004\013\u02a2\001\002\000\006\013" + - "\uff0c\016\uff0c\001\002\000\004\141\u02a4\001\002\000\004" + - "\020\u02a5\001\002\000\004\105\u02a6\001\002\000\006\017" + - "\uff6d\022\uff6d\001\002\000\004\020\u02a8\001\002\000\004" + - "\102\u02a9\001\002\000\004\014\uff97\001\002\000\024\015" + - "\uffab\145\uffab\164\uffab\166\uffab\171\uffab\215\uffab\232\uffab" + - "\262\uffab\270\uffab\001\002\000\024\015\uffaa\145\uffaa\164" + - "\uffaa\166\uffaa\171\uffaa\215\uffaa\232\uffaa\262\uffaa\270\uffaa" + - "\001\002\000\010\015\u02af\164\275\301\u02ae\001\002\000" + - "\004\015\u02b6\001\002\000\004\020\u02b3\001\002\000\020" + - "\015\uff96\145\uff96\164\uff96\171\uff96\215\uff96\262\uff96\270" + - "\uff96\001\002\000\010\015\uff93\164\275\301\u02ae\001\002" + - "\000\010\015\uff91\164\uff91\301\uff91\001\002\000\004\015" + - "\uff92\001\002\000\010\074\315\075\316\141\313\001\002" + - "\000\004\017\u02b5\001\002\000\010\015\uff90\164\uff90\301" + - "\uff90\001\002\000\020\015\uff95\145\uff95\164\uff95\171\uff95" + - "\215\uff95\262\uff95\270\uff95\001\002\000\004\020\u02b8\001" + - "\002\000\004\103\u02b9\001\002\000\004\014\uff94\001\002" + - "\000\004\023\u02bf\001\002\000\016\004\222\005\225\012" + - "\226\141\223\251\231\335\221\001\002\000\020\015\uffa2" + - "\145\uffa2\164\uffa2\171\uffa2\215\uffa2\262\uffa2\270\uffa2\001" + - "\002\000\036\011\241\017\u02be\155\234\255\246\334\240" + - "\335\233\336\236\337\242\340\235\341\237\342\244\343" + - "\243\344\247\345\245\001\002\000\020\015\uffa1\145\uffa1" + - "\164\uffa1\171\uffa1\215\uffa1\262\uffa1\270\uffa1\001\002\000" + - "\016\004\222\005\225\012\226\141\223\251\231\335\221" + - "\001\002\000\036\011\241\017\u02c1\155\234\255\246\334" + - "\240\335\233\336\236\337\242\340\235\341\237\342\244" + - "\343\243\344\247\345\245\001\002\000\020\015\uffa0\145" + - "\uffa0\164\uffa0\171\uffa0\215\uffa0\262\uffa0\270\uffa0\001\002" + - "\000\004\020\u02c3\001\002\000\010\074\315\075\316\141" + - "\313\001\002\000\010\017\uff9f\023\uff9f\202\uff9f\001\002" + - "\000\004\141\u02c6\001\002\000\004\020\u02c7\001\002\000" + - "\010\074\315\075\316\141\313\001\002\000\006\017\uff9c" + - "\023\uff9c\001\002\000\004\121\u02ca\001\002\000\004\020" + - "\u02cb\001\002\000\004\116\u02cc\001\002\000\006\014\uff88" + - "\017\uff88\001\002\000\006\062\u02cf\063\u02ce\001\002\000" + - "\004\165\u02dc\001\002\000\004\165\u02d0\001\002\000\004" + - "\141\u02d1\001\002\000\006\021\u02d2\022\u02d3\001\002\000" + - "\004\141\u02d8\001\002\000\004\141\u02d4\001\002\000\004" + - "\021\u02d5\001\002\000\004\141\u02d6\001\002\000\004\017" + - "\u02d7\001\002\000\014\015\uffc2\164\uffc2\166\uffc2\232\uffc2" + - "\262\uffc2\001\002\000\004\022\u02d9\001\002\000\004\141" + - "\u02da\001\002\000\004\017\u02db\001\002\000\014\015\uffc3" + - "\164\uffc3\166\uffc3\232\uffc3\262\uffc3\001\002\000\004\141" + - "\u02dd\001\002\000\006\021\u02de\022\u02df\001\002\000\004" + - "\141\u02e4\001\002\000\004\141\u02e0\001\002\000\004\021" + - "\u02e1\001\002\000\004\141\u02e2\001\002\000\004\017\u02e3" + - "\001\002\000\014\015\uffc0\164\uffc0\166\uffc0\232\uffc0\262" + - "\uffc0\001\002\000\004\022\u02e5\001\002\000\004\141\u02e6" + - "\001\002\000\004\017\u02e7\001\002\000\014\015\uffc1\164" + - "\uffc1\166\uffc1\232\uffc1\262\uffc1\001\002\000\006\015\u02ea" + - "\164\275\001\002\000\004\015\u02eb\001\002\000\014\015" + - "\uffe9\164\uffe9\166\uffe9\232\uffe9\262\uffe9\001\002\000\014" + - "\015\uffea\164\uffea\166\uffea\232\uffea\262\uffea\001\002\000" + - "\004\265\u02ef\001\002\000\014\015\uffbd\164\uffbd\166\uffbd" + - "\232\uffbd\262\uffbd\001\002\000\006\015\u02fb\164\275\001" + - "\002\000\004\262\u02f0\001\002\000\004\041\u02f1\001\002" + - "\000\006\020\u02f3\022\u02f2\001\002\000\004\141\u02f8\001" + - "\002\000\004\055\u02f4\001\002\000\004\022\u02f5\001\002" + - "\000\004\141\u02f6\001\002\000\004\017\u02f7\001\002\000" + - "\006\015\uffb8\164\uffb8\001\002\000\004\017\u02f9\001\002" + - "\000\006\015\uffb7\164\uffb7\001\002\000\004\015\u02fc\001" + - "\002\000\014\015\uffbb\164\uffbb\166\uffbb\232\uffbb\262\uffbb" + - "\001\002\000\014\015\uffba\164\uffba\166\uffba\232\uffba\262" + - "\uffba\001\002\000\004\015\u02fe\001\002\000\014\015\uffb9" + - "\164\uffb9\166\uffb9\232\uffb9\262\uffb9\001\002\000\014\015" + - "\uffb6\164\uffb6\166\uffb6\232\uffb6\262\uffb6\001\002\000\006" + - "\015\u0303\164\u0301\001\002\000\004\141\u0307\001\002\000" + - "\014\015\uffb4\164\uffb4\166\uffb4\232\uffb4\262\uffb4\001\002" + - "\000\014\015\uffb5\164\uffb5\166\uffb5\232\uffb5\262\uffb5\001" + - "\002\000\006\015\u0306\164\u0301\001\002\000\014\015\uffb0" + - "\164\uffb0\166\uffb0\232\uffb0\262\uffb0\001\002\000\014\015" + - "\uffb1\164\uffb1\166\uffb1\232\uffb1\262\uffb1\001\002\000\004" + - "\271\u0308\001\002\000\004\141\u0309\001\002\000\004\017" + - "\u030a\001\002\000\006\015\uffaf\164\uffaf\001\002\000\006" + - "\013\uffd3\016\uffd3\001\002\000\004\022\u0323\001\002\000" + - "\004\022\u0321\001\002\000\004\013\u031f\001\002\000\006" + - "\013\uffd4\016\uffd4\001\002\000\006\013\uffd1\016\uffd1\001" + - "\002\000\006\013\uffd7\016\u031d\001\002\000\006\013\uffd2" + - "\016\uffd2\001\002\000\004\022\u031b\001\002\000\004\022" + - "\u0319\001\002\000\004\022\u0317\001\002\000\006\013\uffd5" + - "\016\uffd5\001\002\000\004\004\u0318\001\002\000\006\013" + - "\uffcd\016\uffcd\001\002\000\004\141\u031a\001\002\000\006" + - "\013\uffd0\016\uffd0\001\002\000\004\005\u031c\001\002\000" + - "\006\013\uffcc\016\uffcc\001\002\000\014\025\u0313\026\u0315" + - "\027\u030d\031\u0314\032\u030c\001\002\000\004\013\uffd6\001" + - "\002\000\004\017\u0320\001\002\000\014\015\uffdd\164\uffdd" + - "\166\uffdd\232\uffdd\262\uffdd\001\002\000\004\005\u0322\001" + - "\002\000\006\013\uffce\016\uffce\001\002\000\004\141\u0324" + - "\001\002\000\006\013\uffcf\016\uffcf\001\002\000\004\015" + - "\ufffd\001\002\000\004\013\u0327\001\002\000\004\017\u0328" + - "\001\002\000\014\015\uffd9\164\uffd9\166\uffd9\232\uffd9\262" + - "\uffd9\001\002\000\004\141\u032a\001\002\000\006\305\136" + - "\333\140\001\002\000\004\100\u032c\001\002\000\004\014" + - "\uffe8\001\002\000\004\013\u032e\001\002\000\004\017\u032f" + - "\001\002\000\014\015\uffdb\164\uffdb\166\uffdb\232\uffdb\262" + - "\uffdb\001\002\000\004\002\000\001\002" }); + "\065\uff44\066\uff44\067\uff44\070\uff44\125\uff44\126\uff44\127" + + "\uff44\230\uff44\001\002\000\024\013\u01cf\065\uff44\066\uff44" + + "\067\uff44\070\uff44\125\uff44\126\uff44\127\uff44\230\uff44\001" + + "\002\000\004\013\uff4a\001\002\000\004\013\u01d2\001\002" + + "\000\006\013\uff48\016\u01d0\001\002\000\004\013\uff4c\001" + + "\002\000\022\065\uff44\066\uff44\067\uff44\070\uff44\125\uff44" + + "\126\uff44\127\uff44\230\uff44\001\002\000\004\013\uff47\001" + + "\002\000\004\013\uff4b\001\002\000\004\017\u01d4\001\002" + + "\000\014\015\uff71\212\uff71\216\uff71\307\uff71\316\uff71\001" + + "\002\000\004\145\u0244\001\002\000\004\014\u0220\001\002" + + "\000\004\141\u021b\001\002\000\004\014\u01fc\001\002\000" + + "\004\313\u01da\001\002\000\004\141\u01db\001\002\000\006" + + "\014\u01dd\017\u01dc\001\002\000\014\015\uff09\212\uff09\216" + + "\uff09\307\uff09\316\uff09\001\002\000\004\164\u01df\001\002" + + "\000\004\017\u01fa\001\002\000\012\007\u01e8\137\u01e5\140" + + "\u01e6\141\u01e7\001\002\000\004\015\u01e4\001\002\000\004" + + "\017\ufeea\001\002\000\004\017\ufeeb\001\002\000\004\017" + + "\ufeec\001\002\000\014\015\uff07\212\uff07\216\uff07\307\uff07" + + "\316\uff07\001\002\000\004\020\u01f6\001\002\000\004\020" + + "\u01f1\001\002\000\004\020\u01ed\001\002\000\004\020\u01e9" + + "\001\002\000\004\076\u01ea\001\002\000\004\022\u01eb\001" + + "\002\000\004\006\u01ec\001\002\000\004\017\ufee6\001\002" + + "\000\004\076\u01ee\001\002\000\004\022\u01ef\001\002\000" + + "\004\006\u01f0\001\002\000\004\017\ufee5\001\002\000\004" + + "\077\u01f2\001\002\000\004\022\u01f3\001\002\000\006\004" + + "\u01f5\010\u01f4\001\002\000\004\017\ufee8\001\002\000\004" + + "\017\ufee7\001\002\000\004\076\u01f7\001\002\000\004\022" + + "\u01f8\001\002\000\004\006\u01f9\001\002\000\004\017\ufee9" + + "\001\002\000\006\015\ufeee\164\u01df\001\002\000\004\015" + + "\ufeed\001\002\000\006\015\u01fe\221\u01ff\001\002\000\004" + + "\015\u021a\001\002\000\004\313\uff04\001\002\000\004\045" + + "\u0200\001\002\000\004\017\u0201\001\002\000\004\313\u0202" + + "\001\002\000\010\046\u0204\145\u0207\160\u0208\001\002\000" + + "\004\015\ufefd\001\002\000\004\017\u0219\001\002\000\004" + + "\313\u0215\001\002\000\004\141\u020e\001\002\000\004\022" + + "\u0209\001\002\000\004\141\ufef8\001\002\000\004\141\u020a" + + "\001\002\000\004\012\u014f\001\002\000\004\017\u020c\001" + + "\002\000\004\313\ufef9\001\002\000\006\021\u0213\023\ufef7" + + "\001\002\000\012\013\uff13\016\uff13\021\uff13\023\uff13\001" + + "\002\000\004\023\u0210\001\002\000\016\004\222\005\224" + + "\012\226\141\u0145\251\230\335\221\001\002\000\004\017" + + "\u0212\001\002\000\004\313\ufefa\001\002\000\004\141\u0214" + + "\001\002\000\012\013\uff12\016\uff12\021\uff12\023\uff12\001" + + "\002\000\010\046\u0217\145\u0207\160\u0208\001\002\000\004" + + "\015\ufefb\001\002\000\004\017\u0218\001\002\000\004\015" + + "\ufefc\001\002\000\004\015\ufefe\001\002\000\004\313\uff03" + + "\001\002\000\006\014\u021d\017\u021c\001\002\000\014\015" + + "\uff0a\212\uff0a\216\uff0a\307\uff0a\316\uff0a\001\002\000\004" + + "\164\u01df\001\002\000\004\015\u021f\001\002\000\014\015" + + "\uff08\212\uff08\216\uff08\307\uff08\316\uff08\001\002\000\010" + + "\015\u0224\221\u0226\241\u0222\001\002\000\004\221\u0226\001" + + "\002\000\004\071\u023b\001\002\000\004\241\u0222\001\002" + + "\000\004\313\uff02\001\002\000\004\015\u0239\001\002\000" + + "\004\045\u0227\001\002\000\004\017\u0228\001\002\000\004" + + "\313\u0229\001\002\000\006\046\u0237\160\u0208\001\002\000" + + "\004\313\u022c\001\002\000\006\015\ufef2\241\ufef2\001\002" + + "\000\006\046\u022e\160\u0208\001\002\000\006\015\ufef0\241" + + "\ufef0\001\002\000\004\017\u0236\001\002\000\004\141\u020e" + + "\001\002\000\006\021\u0213\023\u0231\001\002\000\004\071" + + "\u0232\001\002\000\004\021\u0233\001\002\000\004\141\u0234" + + "\001\002\000\004\017\u0235\001\002\000\004\313\ufeef\001" + + "\002\000\006\015\ufef1\241\ufef1\001\002\000\004\017\u0238" + + "\001\002\000\006\015\ufef3\241\ufef3\001\002\000\004\313" + + "\uff01\001\002\000\004\015\ufef5\001\002\000\004\020\u023c" + + "\001\002\000\004\141\u023d\001\002\000\004\022\u023e\001" + + "\002\000\004\040\u023f\001\002\000\004\156\u0240\001\002" + + "\000\004\141\u0241\001\002\000\004\017\u0242\001\002\000" + + "\006\015\ufef4\221\ufef4\001\002\000\004\015\ufef6\001\002" + + "\000\004\020\u0245\001\002\000\006\117\u0246\120\u0247\001" + + "\002\000\004\014\ufeff\001\002\000\004\014\uff00\001\002" + + "\000\014\015\uff68\212\uff68\216\uff68\307\uff68\316\uff68\001" + + "\002\000\004\110\u024a\001\002\000\004\012\u024b\001\002" + + "\000\006\013\u024d\034\u0100\001\002\000\004\013\u024f\001" + + "\002\000\004\017\u024e\001\002\000\014\015\uff67\212\uff67" + + "\216\uff67\307\uff67\316\uff67\001\002\000\004\017\u0250\001" + + "\002\000\014\015\uff66\212\uff66\216\uff66\307\uff66\316\uff66" + + "\001\002\000\004\111\u0252\001\002\000\004\012\u0253\001" + + "\002\000\006\034\u0100\035\u0254\001\002\000\004\022\u0261" + + "\001\002\000\004\016\u025d\001\002\000\006\013\u0258\016" + + "\u0257\001\002\000\004\034\u0100\001\002\000\004\017\u0259" + + "\001\002\000\014\015\uff62\212\uff62\216\uff62\307\uff62\316" + + "\uff62\001\002\000\004\013\u025b\001\002\000\004\017\u025c" + + "\001\002\000\014\015\uff64\212\uff64\216\uff64\307\uff64\316" + + "\uff64\001\002\000\004\035\u0254\001\002\000\004\013\u025f" + + "\001\002\000\004\017\u0260\001\002\000\014\015\uff63\212" + + "\uff63\216\uff63\307\uff63\316\uff63\001\002\000\004\072\u0262" + + "\001\002\000\004\012\u0263\001\002\000\006\042\u0264\043" + + "\u0266\001\002\000\004\022\u0271\001\002\000\004\016\u026e" + + "\001\002\000\004\022\uff14\001\002\000\004\016\u026b\001" + + "\002\000\004\022\u0269\001\002\000\004\141\u020e\001\002" + + "\000\010\013\uff15\016\uff15\021\u0213\001\002\000\004\042" + + "\u0264\001\002\000\004\013\u026d\001\002\000\006\013\uff11" + + "\016\uff11\001\002\000\004\043\u0266\001\002\000\004\013" + + "\u0270\001\002\000\006\013\uff10\016\uff10\001\002\000\004" + + "\073\u0272\001\002\000\004\012\u0274\001\002\000\006\013" + + "\uff0f\016\uff0f\001\002\000\016\004\222\005\224\012\226" + + "\141\223\251\230\335\221\001\002\000\036\011\241\016" + + "\u0276\155\234\255\246\334\240\335\233\336\235\337\242" + + "\340\236\341\237\342\245\343\243\344\247\345\244\001" + + "\002\000\016\004\222\005\224\012\226\141\223\251\230" + + "\335\221\001\002\000\036\011\241\013\u0278\155\234\255" + + "\246\334\240\335\233\336\235\337\242\340\236\341\237" + + "\342\245\343\243\344\247\345\244\001\002\000\006\013" + + "\uff0e\016\uff0e\001\002\000\014\015\uff77\212\uff77\216\uff77" + + "\307\uff77\316\uff77\001\002\000\004\106\u027b\001\002\000" + + "\004\012\u027c\001\002\000\006\013\u027e\034\u0100\001\002" + + "\000\004\013\u0280\001\002\000\004\017\u027f\001\002\000" + + "\014\015\uff76\212\uff76\216\uff76\307\uff76\316\uff76\001\002" + + "\000\004\017\u0281\001\002\000\014\015\uff75\212\uff75\216" + + "\uff75\307\uff75\316\uff75\001\002\000\004\112\u0283\001\002" + + "\000\004\012\u0284\001\002\000\006\034\u0100\035\u0285\001" + + "\002\000\004\022\u0292\001\002\000\006\013\u028d\016\u028c" + + "\001\002\000\004\016\u0288\001\002\000\004\035\u0285\001" + + "\002\000\004\013\u028a\001\002\000\004\017\u028b\001\002" + + "\000\014\015\uff5f\212\uff5f\216\uff5f\307\uff5f\316\uff5f\001" + + "\002\000\004\034\u0100\001\002\000\004\017\u028e\001\002" + + "\000\014\015\uff60\212\uff60\216\uff60\307\uff60\316\uff60\001" + + "\002\000\004\013\u0290\001\002\000\004\017\u0291\001\002" + + "\000\014\015\uff5e\212\uff5e\216\uff5e\307\uff5e\316\uff5e\001" + + "\002\000\004\072\u0293\001\002\000\004\012\u0294\001\002" + + "\000\006\042\u0295\043\u0266\001\002\000\004\022\u029e\001" + + "\002\000\004\016\u029b\001\002\000\004\016\u0298\001\002" + + "\000\004\043\u0266\001\002\000\004\013\u029a\001\002\000" + + "\006\013\uff0c\016\uff0c\001\002\000\004\042\u0295\001\002" + + "\000\004\013\u029d\001\002\000\006\013\uff0d\016\uff0d\001" + + "\002\000\004\141\u029f\001\002\000\004\021\u02a0\001\002" + + "\000\004\044\u02a1\001\002\000\004\012\u02a2\001\002\000" + + "\004\013\u02a3\001\002\000\006\013\uff0b\016\uff0b\001\002" + + "\000\004\141\u02a5\001\002\000\004\020\u02a6\001\002\000" + + "\004\105\u02a7\001\002\000\006\017\uff6d\022\uff6d\001\002" + + "\000\004\020\u02a9\001\002\000\004\102\u02aa\001\002\000" + + "\004\014\uff97\001\002\000\024\015\uffab\145\uffab\164\uffab" + + "\166\uffab\171\uffab\215\uffab\232\uffab\262\uffab\270\uffab\001" + + "\002\000\024\015\uffaa\145\uffaa\164\uffaa\166\uffaa\171\uffaa" + + "\215\uffaa\232\uffaa\262\uffaa\270\uffaa\001\002\000\010\015" + + "\u02b0\164\275\301\u02af\001\002\000\004\015\u02b7\001\002" + + "\000\004\020\u02b4\001\002\000\020\015\uff96\145\uff96\164" + + "\uff96\171\uff96\215\uff96\262\uff96\270\uff96\001\002\000\010" + + "\015\uff93\164\275\301\u02af\001\002\000\010\015\uff91\164" + + "\uff91\301\uff91\001\002\000\004\015\uff92\001\002\000\010" + + "\074\315\075\316\141\313\001\002\000\004\017\u02b6\001" + + "\002\000\010\015\uff90\164\uff90\301\uff90\001\002\000\020" + + "\015\uff95\145\uff95\164\uff95\171\uff95\215\uff95\262\uff95\270" + + "\uff95\001\002\000\004\020\u02b9\001\002\000\004\103\u02ba" + + "\001\002\000\004\014\uff94\001\002\000\004\023\u02c0\001" + + "\002\000\016\004\222\005\224\012\226\141\223\251\230" + + "\335\221\001\002\000\020\015\uffa2\145\uffa2\164\uffa2\171" + + "\uffa2\215\uffa2\262\uffa2\270\uffa2\001\002\000\036\011\241" + + "\017\u02bf\155\234\255\246\334\240\335\233\336\235\337" + + "\242\340\236\341\237\342\245\343\243\344\247\345\244" + + "\001\002\000\020\015\uffa1\145\uffa1\164\uffa1\171\uffa1\215" + + "\uffa1\262\uffa1\270\uffa1\001\002\000\016\004\222\005\224" + + "\012\226\141\223\251\230\335\221\001\002\000\036\011" + + "\241\017\u02c2\155\234\255\246\334\240\335\233\336\235" + + "\337\242\340\236\341\237\342\245\343\243\344\247\345" + + "\244\001\002\000\020\015\uffa0\145\uffa0\164\uffa0\171\uffa0" + + "\215\uffa0\262\uffa0\270\uffa0\001\002\000\004\020\u02c4\001" + + "\002\000\010\074\315\075\316\141\313\001\002\000\010" + + "\017\uff9f\023\uff9f\202\uff9f\001\002\000\004\141\u02c7\001" + + "\002\000\004\020\u02c8\001\002\000\010\074\315\075\316" + + "\141\313\001\002\000\006\017\uff9c\023\uff9c\001\002\000" + + "\004\121\u02cb\001\002\000\004\020\u02cc\001\002\000\004" + + "\116\u02cd\001\002\000\006\014\uff88\017\uff88\001\002\000" + + "\006\062\u02d0\063\u02cf\001\002\000\004\165\u02dd\001\002" + + "\000\004\165\u02d1\001\002\000\004\141\u02d2\001\002\000" + + "\006\021\u02d3\022\u02d4\001\002\000\004\141\u02d9\001\002" + + "\000\004\141\u02d5\001\002\000\004\021\u02d6\001\002\000" + + "\004\141\u02d7\001\002\000\004\017\u02d8\001\002\000\014" + + "\015\uffc2\164\uffc2\166\uffc2\232\uffc2\262\uffc2\001\002\000" + + "\004\022\u02da\001\002\000\004\141\u02db\001\002\000\004" + + "\017\u02dc\001\002\000\014\015\uffc3\164\uffc3\166\uffc3\232" + + "\uffc3\262\uffc3\001\002\000\004\141\u02de\001\002\000\006" + + "\021\u02df\022\u02e0\001\002\000\004\141\u02e5\001\002\000" + + "\004\141\u02e1\001\002\000\004\021\u02e2\001\002\000\004" + + "\141\u02e3\001\002\000\004\017\u02e4\001\002\000\014\015" + + "\uffc0\164\uffc0\166\uffc0\232\uffc0\262\uffc0\001\002\000\004" + + "\022\u02e6\001\002\000\004\141\u02e7\001\002\000\004\017" + + "\u02e8\001\002\000\014\015\uffc1\164\uffc1\166\uffc1\232\uffc1" + + "\262\uffc1\001\002\000\006\015\u02eb\164\275\001\002\000" + + "\004\015\u02ec\001\002\000\014\015\uffe9\164\uffe9\166\uffe9" + + "\232\uffe9\262\uffe9\001\002\000\014\015\uffea\164\uffea\166" + + "\uffea\232\uffea\262\uffea\001\002\000\004\265\u02f0\001\002" + + "\000\014\015\uffbd\164\uffbd\166\uffbd\232\uffbd\262\uffbd\001" + + "\002\000\006\015\u02fc\164\275\001\002\000\004\262\u02f1" + + "\001\002\000\004\041\u02f2\001\002\000\006\020\u02f4\022" + + "\u02f3\001\002\000\004\141\u02f9\001\002\000\004\055\u02f5" + + "\001\002\000\004\022\u02f6\001\002\000\004\141\u02f7\001" + + "\002\000\004\017\u02f8\001\002\000\006\015\uffb8\164\uffb8" + + "\001\002\000\004\017\u02fa\001\002\000\006\015\uffb7\164" + + "\uffb7\001\002\000\004\015\u02fd\001\002\000\014\015\uffbb" + + "\164\uffbb\166\uffbb\232\uffbb\262\uffbb\001\002\000\014\015" + + "\uffba\164\uffba\166\uffba\232\uffba\262\uffba\001\002\000\004" + + "\015\u02ff\001\002\000\014\015\uffb9\164\uffb9\166\uffb9\232" + + "\uffb9\262\uffb9\001\002\000\014\015\uffb6\164\uffb6\166\uffb6" + + "\232\uffb6\262\uffb6\001\002\000\006\015\u0304\164\u0302\001" + + "\002\000\004\141\u0308\001\002\000\014\015\uffb4\164\uffb4" + + "\166\uffb4\232\uffb4\262\uffb4\001\002\000\014\015\uffb5\164" + + "\uffb5\166\uffb5\232\uffb5\262\uffb5\001\002\000\006\015\u0307" + + "\164\u0302\001\002\000\014\015\uffb0\164\uffb0\166\uffb0\232" + + "\uffb0\262\uffb0\001\002\000\014\015\uffb1\164\uffb1\166\uffb1" + + "\232\uffb1\262\uffb1\001\002\000\004\271\u0309\001\002\000" + + "\004\141\u030a\001\002\000\004\017\u030b\001\002\000\006" + + "\015\uffaf\164\uffaf\001\002\000\006\013\uffd3\016\uffd3\001" + + "\002\000\004\022\u0324\001\002\000\004\022\u0322\001\002" + + "\000\004\013\u0320\001\002\000\006\013\uffd4\016\uffd4\001" + + "\002\000\006\013\uffd1\016\uffd1\001\002\000\006\013\uffd7" + + "\016\u031e\001\002\000\006\013\uffd2\016\uffd2\001\002\000" + + "\004\022\u031c\001\002\000\004\022\u031a\001\002\000\004" + + "\022\u0318\001\002\000\006\013\uffd5\016\uffd5\001\002\000" + + "\004\004\u0319\001\002\000\006\013\uffcd\016\uffcd\001\002" + + "\000\004\141\u031b\001\002\000\006\013\uffd0\016\uffd0\001" + + "\002\000\004\005\u031d\001\002\000\006\013\uffcc\016\uffcc" + + "\001\002\000\014\025\u0314\026\u0316\027\u030e\031\u0315\032" + + "\u030d\001\002\000\004\013\uffd6\001\002\000\004\017\u0321" + + "\001\002\000\014\015\uffdd\164\uffdd\166\uffdd\232\uffdd\262" + + "\uffdd\001\002\000\004\005\u0323\001\002\000\006\013\uffce" + + "\016\uffce\001\002\000\004\141\u0325\001\002\000\006\013" + + "\uffcf\016\uffcf\001\002\000\004\015\ufffd\001\002\000\004" + + "\013\u0328\001\002\000\004\017\u0329\001\002\000\014\015" + + "\uffd9\164\uffd9\166\uffd9\232\uffd9\262\uffd9\001\002\000\004" + + "\141\u032b\001\002\000\006\305\136\333\140\001\002\000" + + "\004\100\u032d\001\002\000\004\014\uffe8\001\002\000\004" + + "\013\u032f\001\002\000\004\017\u0330\001\002\000\014\015" + + "\uffdb\164\uffdb\166\uffdb\232\uffdb\262\uffdb\001\002\000\004" + + "\002\000\001\002" }); /** Access to parse-action table. */ @Override @@ -796,7 +797,7 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { /** <code>reduce_goto</code> table. */ protected static final short[][] _reduce_table = unpackFromStrings(new String[] { - "\000\u032e\000\004\004\003\001\001\000\002\001\001\000" + + "\000\u032f\000\004\004\003\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\066\005\041\006\021" + "\011\011\013\035\014\036\017\024\020\043\021\013\022" + "\012\032\031\033\016\034\020\035\044\036\023\037\022" + @@ -804,19 +805,19 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\030\053\034\054\032\055\042\056\040\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\020\023\u032c\024\u0310\025\u0315\026\u030e\027\u030a\030" + - "\u0311\031\u030f\001\001\000\002\001\001\000\020\023\u0325" + - "\024\u0310\025\u0315\026\u030e\027\u030a\030\u0311\031\u030f\001" + - "\001\000\066\005\u0324\006\021\011\011\013\035\014\036" + + "\000\020\023\u032d\024\u0311\025\u0316\026\u030f\027\u030b\030" + + "\u0312\031\u0310\001\001\000\002\001\001\000\020\023\u0326" + + "\024\u0311\025\u0316\026\u030f\027\u030b\030\u0312\031\u0310\001" + + "\001\000\066\005\u0325\006\021\011\011\013\035\014\036" + "\017\024\020\043\021\013\022\012\032\031\033\016\034" + "\020\035\044\036\023\037\022\040\026\041\010\042\015" + "\043\025\044\033\045\014\046\030\053\034\054\032\055" + "\042\056\040\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\020\023\u030d\024\u0310" + - "\025\u0315\026\u030e\027\u030a\030\u0311\031\u030f\001\001\000" + - "\002\001\001\000\002\001\001\000\014\015\u02eb\016\276" + - "\047\u02ec\050\u02ed\101\277\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\020\023\u030e\024\u0311" + + "\025\u0316\026\u030f\027\u030b\030\u0312\031\u0310\001\001\000" + + "\002\001\001\000\002\001\001\000\014\015\u02ec\016\276" + + "\047\u02ed\050\u02ee\101\277\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\044\055\176\056\040" + "\057\166\060\165\061\174\062\160\063\157\064\164\065" + "\167\066\151\071\170\072\156\073\154\076\173\077\163" + @@ -847,7 +848,7 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\044\055\176\056\040\057\u02aa\060\165\061\174" + + "\001\000\044\055\176\056\040\057\u02ab\060\165\061\174" + "\062\160\063\157\064\164\065\167\066\151\071\170\072" + "\156\073\154\076\173\077\163\100\175\171\172\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + @@ -858,21 +859,21 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\010\233\226" + - "\234\227\235\223\001\001\000\010\233\271\234\227\235" + - "\223\001\001\000\002\001\001\000\002\001\001\000\002" + - "\001\001\000\002\001\001\000\010\233\265\234\227\235" + - "\223\001\001\000\002\001\001\000\002\001\001\000\010" + - "\233\231\234\227\235\223\001\001\000\002\001\001\000" + - "\010\233\263\234\227\235\223\001\001\000\010\233\262" + - "\234\227\235\223\001\001\000\010\233\261\234\227\235" + - "\223\001\001\000\010\233\260\234\227\235\223\001\001" + - "\000\010\233\257\234\227\235\223\001\001\000\010\233" + - "\256\234\227\235\223\001\001\000\010\233\255\234\227" + - "\235\223\001\001\000\010\233\254\234\227\235\223\001" + - "\001\000\010\233\253\234\227\235\223\001\001\000\010" + - "\233\252\234\227\235\223\001\001\000\010\233\251\234" + - "\227\235\223\001\001\000\010\233\250\234\227\235\223" + - "\001\001\000\010\233\247\234\227\235\223\001\001\000" + + "\234\230\235\224\001\001\000\010\233\271\234\230\235" + + "\224\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\010\233\265\234\230\235" + + "\224\001\001\000\002\001\001\000\010\233\231\234\230" + + "\235\224\001\001\000\002\001\001\000\002\001\001\000" + + "\010\233\263\234\230\235\224\001\001\000\010\233\262" + + "\234\230\235\224\001\001\000\010\233\261\234\230\235" + + "\224\001\001\000\010\233\260\234\230\235\224\001\001" + + "\000\010\233\257\234\230\235\224\001\001\000\010\233" + + "\256\234\230\235\224\001\001\000\010\233\255\234\230" + + "\235\224\001\001\000\010\233\254\234\230\235\224\001" + + "\001\000\010\233\253\234\230\235\224\001\001\000\010" + + "\233\252\234\230\235\224\001\001\000\010\233\251\234" + + "\230\235\224\001\001\000\010\233\250\234\230\235\224" + + "\001\001\000\010\233\247\234\230\235\224\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + @@ -882,26 +883,26 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\010\015\273\016\276\101\277\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\010\015\307\016" + "\276\101\277\001\001\000\004\102\302\001\001\000\002" + - "\001\001\000\010\233\304\234\227\235\223\001\001\000" + + "\001\001\000\010\233\304\234\230\235\224\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\010" + - "\233\306\234\227\235\223\001\001\000\002\001\001\000" + + "\233\306\234\230\235\224\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\004\002\313\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\074" + "\074\343\075\347\103\331\104\326\105\335\106\334\107" + - "\355\110\352\111\323\112\361\113\351\114\336\115\333" + + "\355\110\352\111\323\112\362\113\351\114\336\115\333" + "\116\324\117\342\155\325\156\337\157\346\160\344\161" + "\330\162\327\163\322\164\357\165\345\166\340\167\356" + "\170\360\200\354\205\332\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\010\201\u01d7\214\u01d6\215\u01d4" + + "\001\000\002\001\001\000\010\201\u01d8\214\u01d7\215\u01d5" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\074" + "\074\u01a1\075\347\103\331\104\326\105\335\106\334\107" + - "\355\110\352\111\323\112\361\113\351\114\336\115\333" + + "\355\110\352\111\323\112\362\113\351\114\336\115\333" + "\116\324\117\342\155\325\156\337\157\346\160\344\161" + "\330\162\327\163\322\164\357\165\345\166\340\167\356" + "\170\360\200\354\205\332\001\001\000\002\001\001\000" + @@ -915,14 +916,14 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\006\123\u0106" + "\227\u0107\001\001\000\002\001\001\000\034\124\u0114\125" + - "\u0117\130\u011b\131\u0108\132\u0111\133\u0116\134\u011a\147\u010f" + + "\u0117\130\u011b\131\u0108\132\u0111\133\u0115\134\u011a\147\u010f" + "\150\u010b\151\u0112\152\u0109\153\u011c\154\u0113\001\001\000" + "\002\001\001\000\030\126\u0180\127\u0122\135\u0120\136\u011d" + "\142\u0125\143\u012b\144\u011e\145\u0129\146\u0127\172\u0123\226" + "\u012a\001\001\000\002\001\001\000\030\126\u017d\127\u0122" + "\135\u0120\136\u011d\142\u0125\143\u012b\144\u011e\145\u0129\146" + "\u0127\172\u0123\226\u012a\001\001\000\002\001\001\000\002" + - "\001\001\000\010\233\u0174\234\227\235\223\001\001\000" + + "\001\001\000\010\233\u0174\234\230\235\224\001\001\000" + "\030\126\u0172\127\u0122\135\u0120\136\u011d\142\u0125\143\u012b" + "\144\u011e\145\u0129\146\u0127\172\u0123\226\u012a\001\001\000" + "\002\001\001\000\002\001\001\000\030\126\u016f\127\u0122" + @@ -939,30 +940,30 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\014\137\u012d\141" + - "\u012f\233\u0130\234\227\235\223\001\001\000\002\001\001" + + "\u012f\233\u0130\234\230\235\224\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\010\233\u0132\234\227\235\223\001\001\000\002\001\001" + - "\000\010\233\u0134\234\227\235\223\001\001\000\002\001" + + "\010\233\u0132\234\230\235\224\001\001\000\002\001\001" + + "\000\010\233\u0134\234\230\235\224\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\020\204" + - "\u0146\230\u0143\232\u014a\233\u0147\234\u0149\235\u0145\236\u0142" + - "\001\001\000\022\233\u0147\234\u0155\235\u0153\236\u014f\237" + - "\u0151\241\u0157\242\u0150\243\u0154\001\001\000\002\001\001" + + "\u0146\230\u0142\232\u014a\233\u0147\234\u0149\235\u0145\236\u0143" + + "\001\001\000\002\001\001\000\022\233\u0147\234\u0156\235" + + "\u0153\236\u014f\237\u0152\241\u0157\242\u0151\243\u0154\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\016\230\u014d\232\u014a\233\u0147\234\u0149\235" + - "\u0145\236\u0142\001\001\000\002\001\001\000\002\001\001" + - "\000\002\001\001\000\022\233\u0147\234\u0155\235\u0153\236" + - "\u014f\237\u0151\241\u0157\242\u0150\243\u015e\001\001\000\002" + - "\001\001\000\004\240\u015a\001\001\000\002\001\001\000" + + "\u0145\236\u0143\001\001\000\002\001\001\000\002\001\001" + + "\000\002\001\001\000\022\233\u0147\234\u0156\235\u0153\236" + + "\u014f\237\u0152\241\u0157\242\u0151\243\u015e\001\001\000\002" + + "\001\001\000\002\001\001\000\004\240\u0159\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + - "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\022\233\u0147\234\u0155\235\u0153\236\u014f\237\u0151" + - "\241\u0157\242\u0150\243\u015c\001\001\000\002\001\001\000" + + "\001\001\000\002\001\001\000\002\001\001\000\022\233" + + "\u0147\234\u0156\235\u0153\236\u014f\237\u0152\241\u0157\242\u0151" + + "\243\u015b\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + - "\001\001\000\012\231\u0162\233\u0161\234\227\235\223\001" + + "\001\001\000\012\231\u0162\233\u0161\234\230\235\224\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\030\126\u0167\127" + "\u0122\135\u0120\136\u011d\142\u0125\143\u012b\144\u011e\145\u0129" + @@ -971,7 +972,7 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\034\124\u0176\125\u0117\130\u011b\131\u0108\132\u0111\133\u0116" + + "\034\124\u0176\125\u0117\130\u011b\131\u0108\132\u0111\133\u0115" + "\134\u011a\147\u010f\150\u010b\151\u0112\152\u0109\153\u011c\154" + "\u0113\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + @@ -1002,12 +1003,12 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\001\000\002\001\001\000\002\001\001\000\006\123\u01cb" + "\227\u0107\001\001\000\010\122\u01cc\123\u01cd\227\u0107\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\010\122\u01cf\123\u01cd\227\u0107\001\001\000\002\001" + + "\000\002\001\001\000\010\122\u01d0\123\u01cd\227\u0107\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + - "\001\001\000\002\001\001\000\014\206\u01de\222\u01dc\223" + - "\u01e1\224\u01df\225\u01e0\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\002\001\001\000\014\206" + + "\u01df\222\u01dd\223\u01e2\224\u01e1\225\u01e0\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + @@ -1016,25 +1017,25 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + - "\001\001\000\014\206\u01f9\222\u01dc\223\u01e1\224\u01df\225" + - "\u01e0\001\001\000\002\001\001\000\004\207\u01fb\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\004\202\u0201\001\001\000\006\203\u0203" + - "\211\u0204\001\001\000\002\001\001\000\002\001\001\000" + - "\004\202\u0214\001\001\000\006\003\u020d\213\u020b\001\001" + - "\000\002\001\001\000\002\001\001\000\006\232\u0209\236" + - "\u0142\001\001\000\002\001\001\000\002\001\001\000\002" + - "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\016\230\u020f\232\u014a\233\u0147\234\u0149\235\u0145" + - "\236\u0142\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\006\203\u0203\211\u0204" + + "\001\001\000\002\001\001\000\014\206\u01fa\222\u01dd\223" + + "\u01e2\224\u01e1\225\u01e0\001\001\000\002\001\001\000\004" + + "\207\u01fc\001\001\000\002\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\004\202\u0202\001\001" + + "\000\006\203\u0204\211\u0205\001\001\000\002\001\001\000" + + "\002\001\001\000\004\202\u0215\001\001\000\006\003\u020e" + + "\213\u020c\001\001\000\002\001\001\000\002\001\001\000" + + "\006\232\u020a\236\u0143\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + + "\001\000\002\001\001\000\016\230\u0210\232\u014a\233\u0147" + + "\234\u0149\235\u0145\236\u0143\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001\000\006" + + "\203\u0204\211\u0205\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\002\001\001\000\014\206\u021c\222\u01dc\223\u01e1\224" + - "\u01df\225\u01e0\001\001\000\002\001\001\000\002\001\001" + - "\000\010\210\u0224\216\u0220\217\u0221\001\001\000\002\001" + - "\001\000\004\217\u0239\001\001\000\004\216\u0238\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001\000" + + "\000\002\001\001\000\002\001\001\000\014\206\u021d\222" + + "\u01dd\223\u01e2\224\u01e1\225\u01e0\001\001\000\002\001\001" + + "\000\002\001\001\000\010\210\u0224\216\u0220\217\u0222\001" + + "\001\000\004\217\u0242\001\001\000\002\001\001\000\004" + + "\216\u0239\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\006\220\u022a\221\u0229" + "\001\001\000\004\211\u022e\001\001\000\006\220\u022c\221" + "\u0229\001\001\000\002\001\001\000\004\211\u022e\001\001" + @@ -1047,53 +1048,53 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\004\121\u024a\001\001\000\002\001\001\000\002" + + "\001\000\002\001\001\000\004\121\u024b\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\006\121\u0253" + - "\173\u0254\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\004\121\u0258\001\001\000\002\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\004\173\u025c\001\001\000\002\001\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\006\121\u0254\173\u0255\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\004\121\u0259\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\010\174\u0266\175\u0263\212\u0264\001\001" + + "\002\001\001\000\002\001\001\000\004\173\u025d\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\004\175\u0268\001\001" + - "\000\002\001\001\000\002\001\001\000\004\213\u026b\001" + - "\001\000\002\001\001\000\006\174\u026d\212\u0264\001\001" + - "\000\002\001\001\000\002\001\001\000\004\140\u0271\001" + - "\001\000\002\001\001\000\002\001\001\000\010\233\u0273" + - "\234\227\235\223\001\001\000\002\001\001\000\010\233" + - "\u0275\234\227\235\223\001\001\000\002\001\001\000\002" + + "\002\001\001\000\002\001\001\000\010\174\u0266\175\u0264" + + "\212\u0267\001\001\000\002\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001\000\004" + + "\213\u0269\001\001\000\002\001\001\000\004\175\u026b\001" + + "\001\000\002\001\001\000\002\001\001\000\006\174\u026e" + + "\212\u0267\001\001\000\002\001\001\000\002\001\001\000" + + "\004\140\u0272\001\001\000\002\001\001\000\002\001\001" + + "\000\010\233\u0274\234\230\235\224\001\001\000\002\001" + + "\001\000\010\233\u0276\234\230\235\224\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\004\121\u027b\001\001\000\002\001\001\000\002" + + "\001\000\002\001\001\000\004\121\u027c\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\006\121\u0285" + - "\176\u0284\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\004\176\u0287\001\001\000\002\001\001" + - "\000\002\001\001\000\002\001\001\000\004\121\u028d\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\006\121\u0286\176\u0285\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\004\176\u0288\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\010\174\u0295\177\u0294\212\u0264\001\001" + + "\004\121\u028e\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\004\177\u0297\001\001\000\002\001\001\000\002\001\001" + - "\000\006\174\u029a\212\u0264\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\010\174\u0295\177\u0296" + + "\212\u0267\001\001\000\002\001\001\000\002\001\001\000" + + "\002\001\001\000\006\174\u0298\212\u0267\001\001\000\002" + + "\001\001\000\002\001\001\000\004\177\u029b\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\002\001\001\000\012" + - "\016\u02b0\067\u02ac\070\u02af\101\277\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\012\016\u02b0" + - "\067\u02b1\070\u02af\101\277\001\001\000\002\001\001\000" + - "\002\001\001\000\004\002\u02b3\001\001\000\002\001\001" + + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\012\016\u02b1\067\u02ad\070\u02b0\101\277\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\012\016\u02b1\067\u02b2\070\u02b0\101\277\001\001\000" + + "\002\001\001\000\002\001\001\000\004\002\u02b4\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\010\233\u02bd\234\230\235\224\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\010" + - "\233\u02bc\234\227\235\223\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\010\233\u02bf\234\227" + - "\235\223\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\004\002\u02c3\001\001\000\002\001\001" + - "\000\002\001\001\000\002\001\001\000\004\002\u02c7\001" + - "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\233\u02c0\234\230\235\224\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\004\002\u02c4\001\001" + + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + + "\004\002\u02c8\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + @@ -1103,17 +1104,17 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\010\015\u02e8\016\276\101\277\001\001\000\002\001\001" + - "\000\002\001\001\000\002\001\001\000\004\050\u02fc\001" + - "\001\000\002\001\001\000\010\015\u02f9\016\276\101\277" + - "\001\001\000\002\001\001\000\002\001\001\000\002\001" + + "\002\001\001\000\010\015\u02e9\016\276\101\277\001\001" + + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + + "\004\050\u02fd\001\001\000\002\001\001\000\010\015\u02fa" + + "\016\276\101\277\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\006\051\u0301\052\u0303\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\006\051\u0304\052\u0303\001\001\000\002\001\001\000\002" + + "\001\000\002\001\001\000\002\001\001\000\006\051\u0302" + + "\052\u0304\001\001\000\002\001\001\000\002\001\001\000" + + "\002\001\001\000\006\051\u0305\052\u0304\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + @@ -1121,14 +1122,14 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\020\023\u031d\024\u0310\025\u0315\026\u030e\027\u030a\030\u0311" + - "\031\u030f\001\001\000\002\001\001\000\002\001\001\000" + + "\002\001\001\000\020\023\u031e\024\u0311\025\u0316\026\u030f" + + "\027\u030b\030\u0312\031\u0310\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\004\007\u032a\001\001\000\002\001\001\000\002\001" + + "\000\002\001\001\000\004\007\u032b\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\002\001\001" }); + "\000\002\001\001\000\002\001\001" }); /** Access to <code>reduce_goto</code> table. */ @Override @@ -1299,6 +1300,10 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { private ArrayList<HashMap<String,StxAttribute>> attributeHierarchy; /** methods associated to ancestor blocks, respects blockHierarchy order */ private ArrayList<HashMap<String,StxMethod>> methodHierarchy; + /** to detect multiple state machines in a single block */ + private Location stateMachine = null; + /** state machine flags associated to ancestor blocks, respects blockHierarchy order */ + private ArrayList<Location> machineHierarchy = new ArrayList<Location>(); // %%%%%%%%%%%%%%%%%%%% UPDATE PATH STATE VARIABLES @@ -1402,6 +1407,8 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { attributeMap = new HashMap<String,StxAttribute>(); methodHierarchy.add(methodMap); methodMap = new HashMap<String,StxMethod>(); + machineHierarchy.add(stateMachine); + stateMachine = null; } /** exit block: shorten path to current block (pop blockHierarchy, attributeHierarchy, methodHierarchy) */ @@ -1412,6 +1419,7 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { attributeHierarchy.remove(attributeHierarchy.size() -1); methodMap = methodHierarchy.get(methodHierarchy.size() -1); methodHierarchy.remove(methodHierarchy.size() -1); + stateMachine = machineHierarchy.remove(machineHierarchy.size() -1); } @@ -1522,7 +1530,16 @@ public class AvatarFromSysMLParser extends java_cup.runtime.lr_parser { } /** a multiusage Flag */ - boolean flag; + private boolean flag; + /** a block specific flag */ + private ArrayList<Boolean> blockFlags = new ArrayList<Boolean>(); + private void pushBlockFlag(Boolean f) { blockFlags.add(f); } + private boolean popBlockFlag() { + boolean res = blockFlags.get(blockFlags.size() -1); + blockFlags.remove(blockFlags.size() -1); + return res; + } + /** Cup generated class to encapsulate user supplied action code.*/ @@ -2047,7 +2064,7 @@ class CUP$AvatarFromSysMLParser$actions { Ident id = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5).<Ident>value(); getRelation(id.getAvatarName()); - if (! theRelation.declare() ) { + if (! theRelation.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Relation " + id.getAvatarName() + " is already declared", theRelation.getLeft()) ); flag = false; @@ -2532,9 +2549,13 @@ class CUP$AvatarFromSysMLParser$actions { Location mxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; Location mxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xright; Object m = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1).<Object>value(); + Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; + Location bxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; + Object b = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - if (messageChannelParam == null) + if (messageChannelParam == null) // missing channel parameter addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, mxleft, "In-message channel has not been set", null) ); + if (flag) theStructure.setRight(bxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("inMessageDecl",35, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -2552,12 +2573,14 @@ class CUP$AvatarFromSysMLParser$actions { Ident id = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3).<Ident>value(); getInMessage(id.getAvatarName()); - if (! theStructure.declare() ) { + if (! theStructure.declare() ) { //duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "In-message profile " + id.getAvatarName() + " is already declared", theStructure.getLeft()) ); + flag = false; } else { theStructure.setLeft(pxleft); messageChannelParam = null; + flag = true; } CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("inMessageDeclBegin",41, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -2568,12 +2591,7 @@ class CUP$AvatarFromSysMLParser$actions { case 70: // inMessageDeclBODY ::= messageChannel RBRAC { Object RESULT =null; - Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; - Location bxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; - Object b = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - - theStructure.setRight(bxright); - + CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("inMessageDeclBODY",37, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; @@ -2582,12 +2600,7 @@ class CUP$AvatarFromSysMLParser$actions { case 71: // inMessageDeclBODY ::= messageChannel fieldDecls RBRAC { Object RESULT =null; - Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; - Location bxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; - Object b = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - - theStructure.setRight(bxright); - + CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("inMessageDeclBODY",37, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; @@ -2596,12 +2609,7 @@ class CUP$AvatarFromSysMLParser$actions { case 72: // inMessageDeclBODY ::= fieldDecls messageChannel RBRAC { Object RESULT =null; - Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; - Location bxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; - Object b = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - - theStructure.setRight(bxright); - + CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("inMessageDeclBODY",37, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; @@ -2617,14 +2625,14 @@ class CUP$AvatarFromSysMLParser$actions { Location chxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xright; Ident ch = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1).<Ident>value(); - if (messageChannelParam != null) + if (messageChannelParam != null) // duplicate addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "in-message channel has already been set", messageChannelParam)); - else { + else { // message param is not set getChannel(ch.getAvatarName()); theChannel.setInProfile((StxInMessage)theStructure); ((StxInMessage)theStructure).setChannel(theChannel); - messageChannelParam = pxleft; + messageChannelParam = pxleft; // now it is } CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("messageChannel",38, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-7), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -2642,14 +2650,14 @@ class CUP$AvatarFromSysMLParser$actions { Location chxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xright; Ident ch = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1).<Ident>value(); - if (messageChannelParam != null) + if (messageChannelParam != null) // duplicate addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "in-message channel has already been set", messageChannelParam)); - else { + else { // message param is not set getChannel(ch.getAvatarName()); theChannel.setInProfile((StxInMessage)theStructure); ((StxInMessage)theStructure).setChannel(theChannel); - messageChannelParam = pxleft; + messageChannelParam = pxleft; // now it is } CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("messageChannel",38, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -2664,7 +2672,7 @@ class CUP$AvatarFromSysMLParser$actions { Location bxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object b = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theOutMessage.setRight(bxright); + if (flag) theOutMessage.setRight(bxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("outMessageDecl",36, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -2678,7 +2686,7 @@ class CUP$AvatarFromSysMLParser$actions { Location bxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object b = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theOutMessage.setRight(bxright); + if (flag) theOutMessage.setRight(bxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("outMessageDecl",36, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -2709,11 +2717,14 @@ class CUP$AvatarFromSysMLParser$actions { getInMessage(m.getAvatarName()); getOutMessage(id.getAvatarName(), (StxInMessage)theStructure); - if (! theOutMessage.declare() ) { + if (! theOutMessage.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Out-message profile " + id.getAvatarName() + " is already declared", theStructure.getLeft()) ); - } else + flag = false; + } else { theOutMessage.setLeft(pxleft); + flag = true; + } CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("outMessageDeclBegin",42, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-6), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -2734,8 +2745,14 @@ class CUP$AvatarFromSysMLParser$actions { Ident m = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2).<Ident>value(); getInMessage(m.getAvatarName()); - getOutMessage(id.getAvatarName(), (StxInMessage)theStructure); - theOutMessage.setLeft(pxleft); + if (! theOutMessage.declare() ) { // duplicate + addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Out-message profile " + id.getAvatarName() + + " is already declared", theStructure.getLeft()) ); + flag = false; + } else { + theOutMessage.setLeft(pxleft); + flag = true; + } CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("outMessageDeclBegin",42, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-6), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -2749,7 +2766,7 @@ class CUP$AvatarFromSysMLParser$actions { Location bxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object b = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theOutMessage.setRight(bxright); + if (flag) theOutMessage.setRight(bxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("outMessageDeclBODY",39, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -2779,7 +2796,10 @@ class CUP$AvatarFromSysMLParser$actions { Ident i = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1).<Ident>value(); StxField ofield = new StxField(axleft, axright, o.getAvatarName(), ""); - theOutMessage.addFieldLink(ofield, i.getAvatarName()); + // maps output field to its dual input field + if (! theOutMessage.addFieldLink(ofield, i.getAvatarName())) + addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Field " + o.getAvatarName() + + " is already declared") ); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("redefineField",40, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -2789,7 +2809,10 @@ class CUP$AvatarFromSysMLParser$actions { case 83: // blockDecl ::= blockDeclBegin RBRAC { Object RESULT =null; - popBlock(); + Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; + Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; + Object e = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); + if (popBlockFlag()) theBlock.setRight(exright); popBlock(); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("blockDecl",43, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; @@ -2798,7 +2821,10 @@ class CUP$AvatarFromSysMLParser$actions { case 84: // blockDecl ::= blockDeclBegin blockDeclBODY { Object RESULT =null; - popBlock(); + Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; + Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; + Object e = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); + if (popBlockFlag()) theBlock.setRight(exright); popBlock(); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("blockDecl",43, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; @@ -2814,15 +2840,17 @@ class CUP$AvatarFromSysMLParser$actions { Location idxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xright; Ident id = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3).<Ident>value(); - StxBlock tmp = theBlock; - pushBlock(); - getBlock(id.getAvatarName()); - if (! theBlock.declare() ) { + StxBlock tmp = theBlock; // locally memorize father + pushBlock(); // globally memorize father state + getBlock(id.getAvatarName()); // set current block + if (! theBlock.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Block " + id.getAvatarName() + " is already declared", theBlock.getLeft()) ); + pushBlockFlag(false); } else { theBlock.setFather(tmp); theBlock.setLeft(pxleft); + pushBlockFlag(true); } CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("blockDeclBegin",44, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -2833,12 +2861,7 @@ class CUP$AvatarFromSysMLParser$actions { case 86: // blockDeclBODY ::= blockItem RBRAC { Object RESULT =null; - Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; - Location bxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; - Object b = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - - theBlock.setRight(bxright); - + CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("blockDeclBODY",45, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; @@ -2923,7 +2946,7 @@ class CUP$AvatarFromSysMLParser$actions { Location qxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theAttribute.setRight(qxright); + if (flag) theAttribute.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("attributeDecl",47, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -2941,7 +2964,7 @@ class CUP$AvatarFromSysMLParser$actions { Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); theAttribute.setInit(e); - theAttribute.setRight(qxright); + if (flag) theAttribute.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("attributeDecl",47, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -2959,7 +2982,7 @@ class CUP$AvatarFromSysMLParser$actions { Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); theAttribute.setInit(e); - theAttribute.setRight(qxright); + if (flag) theAttribute.setRight(qxright); theAttribute.setDefaultValue(true); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("attributeDecl",47, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -2981,9 +3004,10 @@ class CUP$AvatarFromSysMLParser$actions { String tp = CUP$AvatarFromSysMLParser$stack.peek().<String>value(); getAttribute(id.getAvatarName(), tp); - if (! theAttribute.declare() ) { + if (! theAttribute.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Attribute " + id.getAvatarName() + " is already declared (or there is an attribute with same name)", theAttribute.getLeft()) ); + flag = false; } else { StxElement e = theBlock.addAttribute(theAttribute); if (e != null) @@ -2997,6 +3021,7 @@ class CUP$AvatarFromSysMLParser$actions { addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Attribute " + id.getAvatarName() + " cannot be added: name already used for signal", e.getLeft())); else ; + flag = true; theAttribute.setLeft(axleft); } @@ -3012,7 +3037,7 @@ class CUP$AvatarFromSysMLParser$actions { Location qxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theAttribute.setRight(qxright); + if (flag) theAttribute.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("constantDecl",48, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -3030,7 +3055,7 @@ class CUP$AvatarFromSysMLParser$actions { Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); theAttribute.setInit(e); - theAttribute.setRight(qxright); + if (flag) theAttribute.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("constantDecl",48, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -3054,6 +3079,7 @@ class CUP$AvatarFromSysMLParser$actions { if (! theAttribute.declare() ) { addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, rxleft, "Constant " + id.getAvatarName() + " is already declared (or there is an attribute with same name)", theAttribute.getLeft()) ); + flag = false; } else { StxElement e = theBlock.addConstant(theAttribute); if (e != null) @@ -3067,6 +3093,7 @@ class CUP$AvatarFromSysMLParser$actions { addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, rxleft, "Constant " + id.getAvatarName() + " cannot be added: name already used for signal", e.getLeft())); else ; + flag = true; theAttribute.setLeft(rxleft); } @@ -3100,7 +3127,7 @@ class CUP$AvatarFromSysMLParser$actions { Location bxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object b = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theStructure.setRight(bxright); + if (flag) theStructure.setRight(bxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("voidMethodDecl",51, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -3114,7 +3141,7 @@ class CUP$AvatarFromSysMLParser$actions { Location bxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object b = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theStructure.setRight(bxright); + if (flag) theStructure.setRight(bxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("voidMethodDecl",51, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -3132,9 +3159,10 @@ class CUP$AvatarFromSysMLParser$actions { Ident id = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2).<Ident>value(); getMethod(id.getAvatarName()); - if (! theStructure.declare() ) { + if (! theStructure.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Method " + id.getAvatarName() + " is already declared", theStructure.getLeft()) ); + flag = false; } else { StxElement e = theBlock.addMethod((StxMethod)theStructure); if (e != null) @@ -3148,6 +3176,7 @@ class CUP$AvatarFromSysMLParser$actions { addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Method " + id.getAvatarName() + " cannot be added: name already used for signal", e.getLeft())); else ; + flag = true; theStructure.setLeft(axleft); } @@ -3163,7 +3192,7 @@ class CUP$AvatarFromSysMLParser$actions { Location bxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object b = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theStructure.setRight(bxright); + if (flag) theStructure.setRight(bxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("calcMethodDecl",52, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -3177,7 +3206,7 @@ class CUP$AvatarFromSysMLParser$actions { Location bxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object b = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theStructure.setRight(bxright); + if (flag) theStructure.setRight(bxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("calcMethodDecl",52, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -3198,6 +3227,7 @@ class CUP$AvatarFromSysMLParser$actions { if (! theStructure.declare() ) { addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, cxleft, "Method " + id.getAvatarName() + " is already declared", theStructure.getLeft()) ); + flag = false; } else { StxElement e = theBlock.addMethod((StxMethod)theStructure); if (e != null) @@ -3211,6 +3241,7 @@ class CUP$AvatarFromSysMLParser$actions { addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, cxleft, "Method " + id.getAvatarName() + " cannot be added: name already used for signal", e.getLeft())); else ; + flag = true; theStructure.setLeft(cxleft); } @@ -3274,7 +3305,7 @@ class CUP$AvatarFromSysMLParser$actions { Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); getSignal(theBlock.getName(),id.getAvatarName()); - if (! theSignal.declare() ) { + if (! theSignal.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Signal " + id.getAvatarName() + " is already declared", theSignal.getLeft()) ); } else { @@ -3313,7 +3344,7 @@ class CUP$AvatarFromSysMLParser$actions { Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); getSignal(theBlock.getName(),id.getAvatarName()); - if (! theSignal.declare() ) { + if (! theSignal.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Signal " + id.getAvatarName() + " is already declared", theSignal.getLeft()) ); } else { @@ -3353,7 +3384,7 @@ class CUP$AvatarFromSysMLParser$actions { StxTimer t = new StxTimer(id.getAvatarName(), pxleft, qxright); StxElement e = theBlock.addTimer(t); - if (e != null) + if (e != null) // conflict with existing item e if (e instanceof StxTimer && !e.declare()) addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Timer " + id.getAvatarName() + " is already declared", e.getLeft())); @@ -3389,7 +3420,7 @@ class CUP$AvatarFromSysMLParser$actions { StxTimer t = new StxTimer(id.getAvatarName(), pxleft, qxright); StxElement e = theBlock.addTimer(t); - if (e != null) + if (e != null) // conflict with existing item e if (e instanceof StxTimer && !e.declare()) addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Timer " + id.getAvatarName() + " is already declared", e.getLeft())); @@ -3414,7 +3445,7 @@ class CUP$AvatarFromSysMLParser$actions { { Object RESULT =null; - theBlock.setStates(stateMap.values().toArray(new StxState[0])); + theBlock.setStates(stateMap.values().toArray(new StxState[0])); // all collected information is put in block states stateMap = null; CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("stateMachine",57, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -3426,7 +3457,7 @@ class CUP$AvatarFromSysMLParser$actions { { Object RESULT =null; - theBlock.setStates(stateMap.values().toArray(new StxState[0])); + theBlock.setStates(stateMap.values().toArray(new StxState[0])); // all collected information is put in block states stateMap = null; CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("stateMachine",57, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -3438,7 +3469,7 @@ class CUP$AvatarFromSysMLParser$actions { { Object RESULT =null; - theBlock.setStates(stateMap.values().toArray(new StxState[0])); + theBlock.setStates(stateMap.values().toArray(new StxState[0])); // all collected information is put in block states stateMap = null; CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("stateMachine",57, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -3449,7 +3480,16 @@ class CUP$AvatarFromSysMLParser$actions { case 121: // stateMachineBegin ::= EXHIBIT STATE STATEMACHINE COLON AVSTATEMACHINE_T { Object RESULT =null; + Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; + Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xright; + Object e = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4).<Object>value(); + if (stateMachine != null) + addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, exleft, + "State Machine is already declared", stateMachine) ); + else + stateMachine = exleft; + stateMap = new HashMap<String, StxState>(); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("stateMachineBegin",119, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -3612,7 +3652,7 @@ class CUP$AvatarFromSysMLParser$actions { Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("startState",66, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -3630,7 +3670,7 @@ class CUP$AvatarFromSysMLParser$actions { Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("startState",66, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -3644,7 +3684,7 @@ class CUP$AvatarFromSysMLParser$actions { Location qxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("startState",66, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-6), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -3662,14 +3702,16 @@ class CUP$AvatarFromSysMLParser$actions { Ident id = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2).<Ident>value(); getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXSTARTSTATE); theState.setLeft(zxright); requestIndex = 0; + flag = true; } CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("startStateBegin",107, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -3688,7 +3730,7 @@ class CUP$AvatarFromSysMLParser$actions { Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("standardState",67, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -3706,7 +3748,7 @@ class CUP$AvatarFromSysMLParser$actions { Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("standardState",67, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -3720,7 +3762,7 @@ class CUP$AvatarFromSysMLParser$actions { Location qxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("standardState",67, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-6), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -3738,15 +3780,17 @@ class CUP$AvatarFromSysMLParser$actions { Ident id = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2).<Ident>value(); getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXSTANDARDSTATE); theState.setName(id.getAvatarName()); theState.setLeft(zxright); requestIndex = 0; + flag = true; } CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("standardStateBegin",108, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -3761,7 +3805,7 @@ class CUP$AvatarFromSysMLParser$actions { Location qxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("stopState",68, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -3775,7 +3819,7 @@ class CUP$AvatarFromSysMLParser$actions { Location qxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("stopState",68, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -3793,13 +3837,15 @@ class CUP$AvatarFromSysMLParser$actions { Ident id = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2).<Ident>value(); getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXSTOPSTATE); theState.setLeft(zxright); + flag = true; } CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("stopStateBegin",109, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -3818,7 +3864,7 @@ class CUP$AvatarFromSysMLParser$actions { Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("sendState",69, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -3832,7 +3878,7 @@ class CUP$AvatarFromSysMLParser$actions { Location qxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("sendState",69, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -3846,7 +3892,7 @@ class CUP$AvatarFromSysMLParser$actions { Location qxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("sendState",69, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-6), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -3864,14 +3910,16 @@ class CUP$AvatarFromSysMLParser$actions { Ident id = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2).<Ident>value(); getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXSENDSTATE); theState.setLeft(zxright); requestIndex = 0; + flag = true; } CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("sendStateBegin",110, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -3890,7 +3938,7 @@ class CUP$AvatarFromSysMLParser$actions { Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("receiveState",70, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -3908,7 +3956,7 @@ class CUP$AvatarFromSysMLParser$actions { Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("receiveState",70, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -3922,7 +3970,7 @@ class CUP$AvatarFromSysMLParser$actions { Location qxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("receiveState",70, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-6), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -3940,14 +3988,16 @@ class CUP$AvatarFromSysMLParser$actions { Ident id = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2).<Ident>value(); getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXRECEIVESTATE); theState.setLeft(zxright); requestIndex = 0; + flag = true; } CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("receiveStateBegin",111, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -3962,7 +4012,7 @@ class CUP$AvatarFromSysMLParser$actions { Location qxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("randomState",71, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-8), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -3976,7 +4026,7 @@ class CUP$AvatarFromSysMLParser$actions { Location qxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("randomState",71, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-8), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -3994,7 +4044,7 @@ class CUP$AvatarFromSysMLParser$actions { Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("randomState",71, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-6), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -4012,14 +4062,16 @@ class CUP$AvatarFromSysMLParser$actions { Ident id = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2).<Ident>value(); getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXRANDOMSTATE); theState.setLeft(zxright); requestIndex = 0; + flag = true; } CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("randomStateBegin",112, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -4038,7 +4090,7 @@ class CUP$AvatarFromSysMLParser$actions { Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("countState",72, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-6), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -4052,7 +4104,7 @@ class CUP$AvatarFromSysMLParser$actions { Location qxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("countState",72, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-8), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -4066,7 +4118,7 @@ class CUP$AvatarFromSysMLParser$actions { Location qxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("countState",72, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-8), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -4084,14 +4136,16 @@ class CUP$AvatarFromSysMLParser$actions { Ident id = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2).<Ident>value(); getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXCOUNTSTATE); theState.setLeft(zxright); requestIndex = 0; + flag = true; } CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("countStateBegin",113, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -4106,7 +4160,7 @@ class CUP$AvatarFromSysMLParser$actions { Location qxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("presendState",73, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-6), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -4124,14 +4178,16 @@ class CUP$AvatarFromSysMLParser$actions { Ident id = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2).<Ident>value(); getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXPRESENDSTATE); theState.setLeft(zxright); requestIndex = 0; + flag = true; } CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("presendStateBegin",114, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -4146,7 +4202,7 @@ class CUP$AvatarFromSysMLParser$actions { Location qxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("prereceiveState",74, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-6), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -4164,14 +4220,16 @@ class CUP$AvatarFromSysMLParser$actions { Ident id = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2).<Ident>value(); getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXPRERECEIVESTATE); theState.setLeft(zxright); requestIndex = 0; + flag = true; } CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("prereceiveStateBegin",115, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -4186,7 +4244,7 @@ class CUP$AvatarFromSysMLParser$actions { Location qxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("setTimerState",75, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-6), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -4204,7 +4262,7 @@ class CUP$AvatarFromSysMLParser$actions { Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("setTimerState",75, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -4222,7 +4280,7 @@ class CUP$AvatarFromSysMLParser$actions { Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("setTimerState",75, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -4240,14 +4298,16 @@ class CUP$AvatarFromSysMLParser$actions { Ident id = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2).<Ident>value(); getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXSETTIMERSTATE); theState.setLeft(zxright); requestIndex = 0; + flag = true; } CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("setTimerStateBegin",116, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -4262,7 +4322,7 @@ class CUP$AvatarFromSysMLParser$actions { Location qxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("resetTimerState",76, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-6), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -4280,7 +4340,7 @@ class CUP$AvatarFromSysMLParser$actions { Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("resetTimerState",76, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -4298,7 +4358,7 @@ class CUP$AvatarFromSysMLParser$actions { Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("resetTimerState",76, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -4316,14 +4376,16 @@ class CUP$AvatarFromSysMLParser$actions { Ident id = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2).<Ident>value(); getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXRESETTIMERSTATE); theState.setLeft(zxright); requestIndex = 0; + flag = true; } CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("resetTimerStateBegin",117, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -4338,7 +4400,7 @@ class CUP$AvatarFromSysMLParser$actions { Location qxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("expireTimerState",77, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-6), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -4356,7 +4418,7 @@ class CUP$AvatarFromSysMLParser$actions { Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("expireTimerState",77, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -4374,7 +4436,7 @@ class CUP$AvatarFromSysMLParser$actions { Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("expireTimerState",77, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } @@ -4392,14 +4454,16 @@ class CUP$AvatarFromSysMLParser$actions { Ident id = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2).<Ident>value(); getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXEXPIRETIMERSTATE); theState.setLeft(zxright); requestIndex = 0; + flag = true; } CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("expireTimerStateBegin",118, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -4407,69 +4471,56 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 181: // poolParam ::= POOL_F EQUAL LPAR requestList RPAR + case 181: // poolParam ::= POOL_F EQUAL LPAR RPAR { Object RESULT =null; - CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("poolParam",78, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); + CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("poolParam",78, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 182: // poolParam ::= POOL_F EQUAL request + case 182: // poolParam ::= POOL_F EQUAL LPAR requestList RPAR { Object RESULT =null; - CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("poolParam",78, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); + CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("poolParam",78, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 183: // requestParam ::= REQUEST_F EQUAL request + case 183: // poolParam ::= POOL_F EQUAL request { Object RESULT =null; - CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("requestParam",79, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); + CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("poolParam",78, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 184: // requestList ::= request + case 184: // requestParam ::= REQUEST_F EQUAL request { Object RESULT =null; - CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("requestList",80, CUP$AvatarFromSysMLParser$stack.peek(), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); + CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("requestParam",79, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 185: // requestList ::= request COMMA requestList + case 185: // requestList ::= request { Object RESULT =null; - CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("requestList",80, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); + CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("requestList",80, CUP$AvatarFromSysMLParser$stack.peek(), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 186: // dummy ::= + case 186: // requestList ::= request COMMA requestList { Object RESULT =null; - - getTransition(requestIndex); - if (theTransition.isRequested()) { - addError( new AvatarFromSysMLError( - AvatarFromSysMLError.LOWERROR, - lexer.getLocation(), - "Transition " + (requestIndex + 1) + " is already requested", - theTransition.getRleft()) ); - okRequest = false; - } else { - theTransition.setRequested(true); - okRequest = true; - } - CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("dummy",149, CUP$AvatarFromSysMLParser$stack.peek(), RESULT); + CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("requestList",80, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; @@ -4526,7 +4577,29 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 189: // simpleRequest ::= trivialRequest + case 189: // dummy ::= + { + Object RESULT =null; + + getTransition(requestIndex); + if (theTransition.isRequested()) { // duplicate + addError( new AvatarFromSysMLError( + AvatarFromSysMLError.LOWERROR, + lexer.getLocation(), + "Transition " + (requestIndex + 1) + " is already requested", + theTransition.getRleft()) ); + okRequest = false; // request is a duplikate (skip handling) + } else { + theTransition.setRequested(true); + okRequest = true; // request is not a duplicate + } + + CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("dummy",149, CUP$AvatarFromSysMLParser$stack.peek(), RESULT); + } + return CUP$AvatarFromSysMLParser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 190: // simpleRequest ::= trivialRequest { Object RESULT =null; @@ -4535,7 +4608,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 190: // simpleRequest ::= sendRequest + case 191: // simpleRequest ::= sendRequest { Object RESULT =null; @@ -4544,7 +4617,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 191: // simpleRequest ::= receiveRequest + case 192: // simpleRequest ::= receiveRequest { Object RESULT =null; @@ -4553,7 +4626,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 192: // simpleRequest ::= setTimerRequest + case 193: // simpleRequest ::= setTimerRequest { Object RESULT =null; @@ -4562,7 +4635,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 193: // simpleRequest ::= resetTimerRequest + case 194: // simpleRequest ::= resetTimerRequest { Object RESULT =null; @@ -4571,7 +4644,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 194: // simpleRequest ::= expireTimerRequest + case 195: // simpleRequest ::= expireTimerRequest { Object RESULT =null; @@ -4580,7 +4653,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 195: // trivialRequest ::= IMMEDIATEREQUEST_U + case 196: // trivialRequest ::= IMMEDIATEREQUEST_U { Object RESULT =null; Location ixleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -4599,7 +4672,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 196: // trivialRequest ::= trivialRequestBegin requestArgs RPAR + case 197: // trivialRequest ::= trivialRequestBegin requestArgs RPAR { Object RESULT =null; @@ -4608,7 +4681,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 197: // trivialRequestBegin ::= TRIVIALREQUEST_T LPAR + case 198: // trivialRequestBegin ::= TRIVIALREQUEST_T LPAR { Object RESULT =null; @@ -4621,7 +4694,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 198: // sendRequest ::= sendRequestBegin requestArgs RPAR + case 199: // sendRequest ::= sendRequestBegin requestArgs RPAR { Object RESULT =null; @@ -4630,7 +4703,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 199: // sendRequestBegin ::= SENDREQUEST_T LPAR + case 200: // sendRequestBegin ::= SENDREQUEST_T LPAR { Object RESULT =null; @@ -4643,7 +4716,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 200: // receiveRequest ::= receiveRequestBegin requestArgs RPAR + case 201: // receiveRequest ::= receiveRequestBegin requestArgs RPAR { Object RESULT =null; @@ -4652,7 +4725,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 201: // receiveRequestBegin ::= RECEIVEREQUEST_T LPAR + case 202: // receiveRequestBegin ::= RECEIVEREQUEST_T LPAR { Object RESULT =null; @@ -4665,7 +4738,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 202: // setTimerRequest ::= setTimerRequestBegin requestArgs RPAR + case 203: // setTimerRequest ::= setTimerRequestBegin requestArgs RPAR { Object RESULT =null; @@ -4674,7 +4747,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 203: // setTimerRequestBegin ::= SETTIMERREQUEST_T LPAR + case 204: // setTimerRequestBegin ::= SETTIMERREQUEST_T LPAR { Object RESULT =null; @@ -4687,7 +4760,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 204: // resetTimerRequest ::= resetTimerRequestBegin requestArgs RPAR + case 205: // resetTimerRequest ::= resetTimerRequestBegin requestArgs RPAR { Object RESULT =null; @@ -4696,7 +4769,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 205: // resetTimerRequestBegin ::= RESETTIMERREQUEST_T LPAR + case 206: // resetTimerRequestBegin ::= RESETTIMERREQUEST_T LPAR { Object RESULT =null; @@ -4709,7 +4782,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 206: // expireTimerRequest ::= expireTimerRequestBegin requestArgs RPAR + case 207: // expireTimerRequest ::= expireTimerRequestBegin requestArgs RPAR { Object RESULT =null; @@ -4718,7 +4791,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 207: // expireTimerRequestBegin ::= EXPIRETIMERREQUEST_T LPAR + case 208: // expireTimerRequestBegin ::= EXPIRETIMERREQUEST_T LPAR { Object RESULT =null; @@ -4731,7 +4804,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 208: // requestArgs ::= requestArg + case 209: // requestArgs ::= requestArg { Object RESULT =null; @@ -4740,7 +4813,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 209: // requestArgs ::= requestArg COMMA requestArgs + case 210: // requestArgs ::= requestArg COMMA requestArgs { Object RESULT =null; @@ -4749,7 +4822,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 210: // requestArg ::= indexParam + case 211: // requestArg ::= indexParam { Object RESULT =null; @@ -4758,7 +4831,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 211: // requestArg ::= delayParam + case 212: // requestArg ::= delayParam { Object RESULT =null; @@ -4767,7 +4840,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 212: // requestArg ::= channelParam + case 213: // requestArg ::= channelParam { Object RESULT =null; @@ -4776,7 +4849,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 213: // requestArg ::= payloadParam + case 214: // requestArg ::= payloadParam { Object RESULT =null; @@ -4785,7 +4858,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 214: // requestArg ::= settimerParam + case 215: // requestArg ::= settimerParam { Object RESULT =null; @@ -4794,7 +4867,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 215: // requestArg ::= resettimerParam + case 216: // requestArg ::= resettimerParam { Object RESULT =null; @@ -4803,7 +4876,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 216: // requestArg ::= expiretimerParam + case 217: // requestArg ::= expiretimerParam { Object RESULT =null; @@ -4812,7 +4885,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 217: // indexParam ::= INDEX_F EQUAL INT + case 218: // indexParam ::= INDEX_F EQUAL INT { Object RESULT =null; Location fxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -4834,7 +4907,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 218: // delayParam ::= delayKeyword EQUAL delayExpr + case 219: // delayParam ::= delayKeyword EQUAL delayExpr { Object RESULT =null; @@ -4843,7 +4916,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 219: // delayKeyword ::= DELAY_F + case 220: // delayKeyword ::= DELAY_F { Object RESULT =null; Location dxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -4864,7 +4937,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 220: // delayExpr ::= iexpr + case 221: // delayExpr ::= iexpr { Object RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -4876,7 +4949,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 221: // delayExpr ::= delayRandomExpr + case 222: // delayExpr ::= delayRandomExpr { Object RESULT =null; @@ -4885,7 +4958,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 222: // delayRandomExpr ::= BOUNDRANDOM_U LPAR iexpr COMMA iexpr RPAR + case 223: // delayRandomExpr ::= BOUNDRANDOM_U LPAR iexpr COMMA iexpr RPAR { Object RESULT =null; Location ixleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; @@ -4905,14 +4978,14 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 223: // payloadParam ::= payloadParamBegin IDENT LPAR termList RPAR + case 224: // payloadParam ::= payloadParamBegin IDENT LPAR termList RPAR { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; Location bxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xright; Object b = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4).<Object>value(); - - if (argOK) { + // termlist fills argList + if (argOK) { // not duplicate if (theTransition.getType() != AvatarFromSysMLSyntax.STXSENDTRANSITION) addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, bxleft, "such payload is only relevant for send transitions", null)); @@ -4925,14 +4998,14 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 224: // payloadParam ::= payloadParamBegin IDENT LPAR RPAR + case 225: // payloadParam ::= payloadParamBegin IDENT LPAR RPAR { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; Location bxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xright; Object b = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3).<Object>value(); - if (argOK) { + if (argOK) { // not duplicate if (theTransition.getType() != AvatarFromSysMLSyntax.STXSENDTRANSITION) addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, bxleft, "such payload is only relevant for send transitions", null)); @@ -4945,14 +5018,14 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 225: // payloadParam ::= payloadParamBegin IDENT + case 226: // payloadParam ::= payloadParamBegin IDENT { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; Location bxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xright; Object b = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1).<Object>value(); - if (argOK) { + if (argOK) { // not duplicate if (theTransition.getType() != AvatarFromSysMLSyntax.STXSENDTRANSITION) addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, bxleft, "such payload is only relevant for send transitions", null)); @@ -4965,7 +5038,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 226: // payloadParam ::= payloadParamBegin TIMERSETMSG_T LPAR stxExpr RPAR + case 227: // payloadParam ::= payloadParamBegin TIMERSETMSG_T LPAR stxExpr RPAR { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -4975,7 +5048,7 @@ class CUP$AvatarFromSysMLParser$actions { Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xright; StxExpr e = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1).<StxExpr>value(); - if (argOK) { + if (argOK) { // not duplicate if (theTransition.getType() != AvatarFromSysMLSyntax.STXSETTIMERTRANSITION) addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, bxleft, "such payload is only relevant for set-timer transitions", null)); @@ -4989,14 +5062,14 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 227: // payloadParam ::= payloadParamBegin TIMERRESETMSG_T LPAR RPAR + case 228: // payloadParam ::= payloadParamBegin TIMERRESETMSG_T LPAR RPAR { Object RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; Location bxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xright; Object b = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3).<Object>value(); - if (argOK) { + if (argOK) { // not duplicate if (theTransition.getType() != AvatarFromSysMLSyntax.STXRESETTIMERTRANSITION) addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, bxleft, "such payload is only relevant for reset-timer transitions", null)); @@ -5009,7 +5082,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 228: // payloadParamBegin ::= PAYLOAD_F EQUAL + case 229: // payloadParamBegin ::= PAYLOAD_F EQUAL { Object RESULT =null; Location pxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; @@ -5031,7 +5104,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 229: // channelParam ::= CHANNEL_F EQUAL IDENT + case 230: // channelParam ::= CHANNEL_F EQUAL IDENT { Object RESULT =null; Location cxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -5060,7 +5133,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 230: // settimerParam ::= CHANNEL_F EQUAL IDENT POINT SET_TM + case 231: // settimerParam ::= CHANNEL_F EQUAL IDENT POINT SET_TM { Object RESULT =null; Location cxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -5085,7 +5158,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 231: // resettimerParam ::= CHANNEL_F EQUAL IDENT POINT RESET_TM + case 232: // resettimerParam ::= CHANNEL_F EQUAL IDENT POINT RESET_TM { Object RESULT =null; Location cxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -5110,7 +5183,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 232: // expiretimerParam ::= CHANNEL_F EQUAL IDENT POINT EXPIRE_TM + case 233: // expiretimerParam ::= CHANNEL_F EQUAL IDENT POINT EXPIRE_TM { Object RESULT =null; Location cxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -5135,7 +5208,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 233: // termList ::= stxRvalue + case 234: // termList ::= stxRvalue { Object RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -5147,7 +5220,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 234: // termList ::= termList COMMA stxRvalue + case 235: // termList ::= termList COMMA stxRvalue { Object RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -5159,25 +5232,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 235: // randomAction ::= STATEACTION_F EQUAL ASSIGNMENT_T LPAR targetParam COMMA randomParam RPAR - { - Object RESULT =null; - - CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("randomAction",121, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-7), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); - } - return CUP$AvatarFromSysMLParser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 236: // randomAction ::= STATEACTION_F EQUAL ASSIGNMENT_T LPAR randomParam COMMA targetParam RPAR - { - Object RESULT =null; - - CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("randomAction",121, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-7), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); - } - return CUP$AvatarFromSysMLParser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 237: // targetParam ::= target EQUAL fullIdent + case 236: // targetParam ::= target EQUAL fullIdent { Object RESULT =null; @@ -5188,7 +5243,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 238: // target ::= TARGET_F + case 237: // target ::= TARGET_F { Object RESULT =null; @@ -5199,35 +5254,49 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 239: // fullIdent ::= IDENT + case 238: // fullIdent ::= IDENT { Object RESULT =null; Location idxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; Location idxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Ident id = CUP$AvatarFromSysMLParser$stack.peek().<Ident>value(); - - stringAcc.append(id.getAvatarName()); - + stringAcc.append(id.getAvatarName()); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("fullIdent",137, CUP$AvatarFromSysMLParser$stack.peek(), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 240: // fullIdent ::= fullIdent POINT IDENT + case 239: // fullIdent ::= fullIdent POINT IDENT { Object RESULT =null; Location idxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; Location idxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Ident id = CUP$AvatarFromSysMLParser$stack.peek().<Ident>value(); - - stringAcc.append("." + id.getAvatarName()); - + stringAcc.append("." + id.getAvatarName()); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("fullIdent",137, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 241: // randomParam ::= VALUE_F EQUAL actionRandomExpr + case 240: // randomAction ::= STATEACTION_F EQUAL ASSIGNMENT_T LPAR targetParam COMMA randomParam RPAR + { + Object RESULT =null; + + CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("randomAction",121, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-7), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); + } + return CUP$AvatarFromSysMLParser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 241: // randomAction ::= STATEACTION_F EQUAL ASSIGNMENT_T LPAR randomParam COMMA targetParam RPAR + { + Object RESULT =null; + + CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("randomAction",121, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-7), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); + } + return CUP$AvatarFromSysMLParser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 242: // randomParam ::= VALUE_F EQUAL actionRandomExpr { Object RESULT =null; @@ -5236,7 +5305,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 242: // actionRandomExpr ::= BOUNDRANDOM_U LPAR iexpr COMMA iexpr RPAR + case 243: // actionRandomExpr ::= BOUNDRANDOM_U LPAR iexpr COMMA iexpr RPAR { Object RESULT =null; Location ixleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; @@ -5254,7 +5323,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 243: // countAction ::= STATEACTION_F EQUAL ASSIGNMENT_T LPAR targetParam COMMA countParam RPAR + case 244: // countAction ::= STATEACTION_F EQUAL ASSIGNMENT_T LPAR targetParam COMMA countParam RPAR { Object RESULT =null; @@ -5263,7 +5332,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 244: // countAction ::= STATEACTION_F EQUAL ASSIGNMENT_T LPAR countParam COMMA targetParam RPAR + case 245: // countAction ::= STATEACTION_F EQUAL ASSIGNMENT_T LPAR countParam COMMA targetParam RPAR { Object RESULT =null; @@ -5272,7 +5341,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 245: // countParam ::= VALUE_F EQUAL IDENT POINT AMOUNT_U LPAR RPAR + case 246: // countParam ::= VALUE_F EQUAL IDENT POINT AMOUNT_U LPAR RPAR { Object RESULT =null; Location idxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -5287,7 +5356,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 246: // transition ::= transitionBegin THEN IDENT SEMICOLON + case 247: // transition ::= transitionBegin THEN IDENT SEMICOLON { Object RESULT =null; Location txleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; @@ -5300,17 +5369,19 @@ class CUP$AvatarFromSysMLParser$actions { Location qxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - getState(id.getAvatarName()); - theTransition.setTarget(theState); - theTransition.setLeft(txleft); - theTransition.setRight(qxright); + if (flag) { + getState(id.getAvatarName()); + theTransition.setTarget(theState); + theTransition.setLeft(txleft); + theTransition.setRight(qxright); + } CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("transition",126, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 247: // transition ::= transitionBegin doActions THEN IDENT SEMICOLON + case 248: // transition ::= transitionBegin doActions THEN IDENT SEMICOLON { Object RESULT =null; Location txleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -5323,17 +5394,19 @@ class CUP$AvatarFromSysMLParser$actions { Location qxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - getState(id.getAvatarName()); - theTransition.setTarget(theState); - theTransition.setLeft(txleft); - theTransition.setRight(qxright); + if (flag) { + getState(id.getAvatarName()); + theTransition.setTarget(theState); + theTransition.setLeft(txleft); + theTransition.setRight(qxright); + } CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("transition",126, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 248: // transition ::= transitionBegin THEN IDENT LBRAC transitionLabels RBRAC + case 249: // transition ::= transitionBegin THEN IDENT LBRAC transitionLabels RBRAC { Object RESULT =null; Location txleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5)).xleft; @@ -5346,19 +5419,21 @@ class CUP$AvatarFromSysMLParser$actions { Location qxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - getState(id.getAvatarName()); - theTransition.setTarget(theState); - theTransition.setDelayExtra(delayExtraMap); + if (flag) { + getState(id.getAvatarName()); + theTransition.setTarget(theState); + theTransition.setDelayExtra(delayExtraMap); + theTransition.setLeft(txleft); + theTransition.setRight(qxright); + } delayExtraMap = null; - theTransition.setLeft(txleft); - theTransition.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("transition",126, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 249: // transition ::= transitionBegin doActions THEN IDENT LBRAC transitionLabels RBRAC + case 250: // transition ::= transitionBegin doActions THEN IDENT LBRAC transitionLabels RBRAC { Object RESULT =null; Location txleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-6)).xleft; @@ -5371,19 +5446,21 @@ class CUP$AvatarFromSysMLParser$actions { Location qxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; Object q = CUP$AvatarFromSysMLParser$stack.peek().<Object>value(); - getState(id.getAvatarName()); - theTransition.setTarget(theState); - theTransition.setDelayExtra(delayExtraMap); + if (flag) { + getState(id.getAvatarName()); + theTransition.setTarget(theState); + theTransition.setDelayExtra(delayExtraMap); + theTransition.setLeft(txleft); + theTransition.setRight(qxright); + } delayExtraMap = null; - theTransition.setLeft(txleft); - theTransition.setRight(qxright); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("transition",126, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-6), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 250: // transitionBegin ::= TRANSITION COLON AVTRANSITION_T FIRST IDENT + case 251: // transitionBegin ::= TRANSITION COLON AVTRANSITION_T FIRST IDENT { Object RESULT =null; Location txleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -5395,9 +5472,12 @@ class CUP$AvatarFromSysMLParser$actions { getState(st.getAvatarName()); getTransition(0); - if (!theTransition.declare()) + if (!theTransition.declare()) { addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, txleft, "transition with same index has already been declared", null)); + flag = false; + } + else flag = true; clearTransitionLbls(); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("transitionBegin",131, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -5405,7 +5485,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 251: // transitionBegin ::= TRANSITION COLON AVTRANSITION_T FIRST IDENT IF INDEX_F EQ INT + case 252: // transitionBegin ::= TRANSITION COLON AVTRANSITION_T FIRST IDENT IF INDEX_F EQ INT { Object RESULT =null; Location txleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-8)).xleft; @@ -5420,9 +5500,12 @@ class CUP$AvatarFromSysMLParser$actions { getState(st.getAvatarName()); getTransition(i-1); - if (!theTransition.declare()) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, txleft, + if (!theTransition.declare()) { + addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, txleft, "transition with same index has already been declared", null)); + flag = true; + } + else flag = true; clearTransitionLbls(); CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("transitionBegin",131, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-8), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -5430,7 +5513,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 252: // doActions ::= transitionActionBegin LBRAC RBRAC + case 253: // doActions ::= transitionActionBegin LBRAC RBRAC { Object RESULT =null; @@ -5439,11 +5522,11 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 253: // doActions ::= transitionActionBegin LBRAC transitionAction RBRAC + case 254: // doActions ::= transitionActionBegin LBRAC transitionAction RBRAC { Object RESULT =null; - theTransition.setActions(actionList); + if (flag) theTransition.setActions(actionList); actionList = null; CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("doActions",127, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -5451,7 +5534,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 254: // doActions ::= receiveActionBegin LBRAC RBRAC + case 255: // doActions ::= receiveActionBegin LBRAC RBRAC { Object RESULT =null; @@ -5460,11 +5543,11 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 255: // doActions ::= receiveActionBegin LBRAC receiveAction RBRAC + case 256: // doActions ::= receiveActionBegin LBRAC receiveAction RBRAC { Object RESULT =null; - theTransition.setReceivePayload(receiveMap); + if (flag) theTransition.setReceivePayload(receiveMap); receiveMap = null; CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("doActions",127, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); @@ -5472,7 +5555,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 256: // transitionActionBegin ::= DO ACTION COLON TRANSITIONACTION_T + case 257: // transitionActionBegin ::= DO ACTION COLON TRANSITIONACTION_T { Object RESULT =null; @@ -5483,7 +5566,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 257: // receiveActionBegin ::= DO ACTION COLON RECEIVEACTION_T + case 258: // receiveActionBegin ::= DO ACTION COLON RECEIVEACTION_T { Object RESULT =null; @@ -5494,7 +5577,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 258: // transitionAction ::= FIRST START_U SEMICOLON THEN DONE_U SEMICOLON + case 259: // transitionAction ::= FIRST START_U SEMICOLON THEN DONE_U SEMICOLON { Object RESULT =null; @@ -5503,7 +5586,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 259: // transitionAction ::= FIRST START_U SEMICOLON actionSeq + case 260: // transitionAction ::= FIRST START_U SEMICOLON actionSeq { Object RESULT =null; @@ -5512,7 +5595,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 260: // actionSeq ::= THEN act THEN DONE_U SEMICOLON + case 261: // actionSeq ::= THEN act THEN DONE_U SEMICOLON { Object RESULT =null; @@ -5521,7 +5604,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 261: // actionSeq ::= THEN act actionSeq + case 262: // actionSeq ::= THEN act actionSeq { Object RESULT =null; @@ -5530,7 +5613,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 262: // act ::= assign fulllIdent GETS stxRvalue SEMICOLON + case 263: // act ::= assign fulllIdent GETS stxRvalue SEMICOLON { Object RESULT =null; Location axleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -5553,7 +5636,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 263: // act ::= ACTION EQUAL stxCall SEMICOLON + case 264: // act ::= ACTION EQUAL stxCall SEMICOLON { Object RESULT =null; Location axleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-3)).xleft; @@ -5573,30 +5656,30 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 264: // fulllIdent ::= fullIdent + case 265: // assign ::= ASSIGN { - String RESULT =null; + Object RESULT =null; - RESULT = stringAcc.toString(); - stringAcc.setLength(0); + stringAcc = new StringBuffer(); - CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("fulllIdent",1, CUP$AvatarFromSysMLParser$stack.peek(), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); + CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("assign",135, CUP$AvatarFromSysMLParser$stack.peek(), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 265: // assign ::= ASSIGN + case 266: // fulllIdent ::= fullIdent { - Object RESULT =null; + String RESULT =null; - stringAcc = new StringBuffer(); + RESULT = stringAcc.toString(); + stringAcc.setLength(0); - CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("assign",135, CUP$AvatarFromSysMLParser$stack.peek(), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); + CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("fulllIdent",1, CUP$AvatarFromSysMLParser$stack.peek(), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 266: // receiveAction ::= messageLine receiveAssigns + case 267: // receiveAction ::= messageLine receiveAssigns { Object RESULT =null; @@ -5605,7 +5688,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 267: // receiveAction ::= receiveAssigns messageLine + case 268: // receiveAction ::= receiveAssigns messageLine { Object RESULT =null; @@ -5614,7 +5697,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 268: // messageLine ::= ITEM MSG_U COLON IDENT EQUAL PAYLOAD_F AS IDENT SEMICOLON + case 269: // messageLine ::= ITEM MSG_U COLON IDENT EQUAL PAYLOAD_F AS IDENT SEMICOLON { Object RESULT =null; @@ -5623,7 +5706,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 269: // receiveAssigns ::= FIRST START_U SEMICOLON THEN DONE_U SEMICOLON + case 270: // receiveAssigns ::= FIRST START_U SEMICOLON THEN DONE_U SEMICOLON { Object RESULT =null; @@ -5632,7 +5715,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 270: // receiveAssigns ::= FIRST START_U SEMICOLON receiveAssignSeq + case 271: // receiveAssigns ::= FIRST START_U SEMICOLON receiveAssignSeq { Object RESULT =null; @@ -5641,7 +5724,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 271: // receiveAssignSeq ::= receiveAssign THEN DONE_U SEMICOLON + case 272: // receiveAssignSeq ::= receiveAssign THEN DONE_U SEMICOLON { Object RESULT =null; @@ -5650,7 +5733,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 272: // receiveAssignSeq ::= receiveAssign receiveAssignSeq + case 273: // receiveAssignSeq ::= receiveAssign receiveAssignSeq { Object RESULT =null; @@ -5659,7 +5742,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 273: // receiveAssign ::= THEN assign fullIdent GETS MSG_U POINT IDENT SEMICOLON + case 274: // receiveAssign ::= THEN assign fullIdent GETS MSG_U POINT IDENT SEMICOLON { Object RESULT =null; Location txleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-7)).xleft; @@ -5680,7 +5763,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 274: // transitionLabels ::= transitionLabel SEMICOLON + case 275: // transitionLabels ::= transitionLabel SEMICOLON { Object RESULT =null; @@ -5689,7 +5772,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 275: // transitionLabels ::= transitionLabel SEMICOLON transitionLabels + case 276: // transitionLabels ::= transitionLabel SEMICOLON transitionLabels { Object RESULT =null; @@ -5698,7 +5781,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 276: // transitionLabel ::= distributionLabel + case 277: // transitionLabel ::= distributionLabel { Object RESULT =null; @@ -5707,7 +5790,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 277: // transitionLabel ::= weightLabel + case 278: // transitionLabel ::= weightLabel { Object RESULT =null; @@ -5716,7 +5799,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 278: // transitionLabel ::= extraLabel + case 279: // transitionLabel ::= extraLabel { Object RESULT =null; @@ -5725,7 +5808,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 279: // distributionLabel ::= ATTRIBUTE DISTRIBUTION_A COLON STRING_T EQUAL STRING + case 280: // distributionLabel ::= ATTRIBUTE DISTRIBUTION_A COLON STRING_T EQUAL STRING { Object RESULT =null; Location axleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5)).xleft; @@ -5748,7 +5831,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 280: // weightLabel ::= ATTRIBUTE WEIGHT_A COLON REAL_T EQUAL REAL + case 281: // weightLabel ::= ATTRIBUTE WEIGHT_A COLON REAL_T EQUAL REAL { Object RESULT =null; Location axleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5)).xleft; @@ -5771,7 +5854,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 281: // weightLabel ::= ATTRIBUTE WEIGHT_A COLON REAL_T EQUAL INT + case 282: // weightLabel ::= ATTRIBUTE WEIGHT_A COLON REAL_T EQUAL INT { Object RESULT =null; Location axleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-5)).xleft; @@ -5794,7 +5877,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 282: // extraLabel ::= ATTRIBUTE ANYNAME COLON STRING_T EQUAL STRING + case 283: // extraLabel ::= ATTRIBUTE ANYNAME COLON STRING_T EQUAL STRING { Object RESULT =null; Location nxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -5813,7 +5896,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 283: // extraLabel ::= ATTRIBUTE IDENT COLON STRING_T EQUAL STRING + case 284: // extraLabel ::= ATTRIBUTE IDENT COLON STRING_T EQUAL STRING { Object RESULT =null; Location nxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-4)).xleft; @@ -5832,31 +5915,31 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 284: // stxRvalue ::= stxCall + case 285: // stxRvalue ::= stxCall { StxTerm RESULT =null; Location cxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; Location cxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; StxCall c = CUP$AvatarFromSysMLParser$stack.peek().<StxCall>value(); - RESULT = c; + RESULT = c; // FUNCTION CALL CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("stxRvalue",150, CUP$AvatarFromSysMLParser$stack.peek(), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 285: // stxRvalue ::= expr + case 286: // stxRvalue ::= expr { StxTerm RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; String e = CUP$AvatarFromSysMLParser$stack.peek().<String>value(); - RESULT = new StxExpr(e); + RESULT = new StxExpr(e); // INT/BOOL EXPRESSION CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("stxRvalue",150, CUP$AvatarFromSysMLParser$stack.peek(), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 286: // stxRvalue ::= complexIdent + case 287: // stxRvalue ::= complexIdent { StxTerm RESULT =null; Location ixleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -5868,19 +5951,19 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 287: // stxExpr ::= iexpr + case 288: // stxExpr ::= iexpr { StxExpr RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; Location exright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; String e = CUP$AvatarFromSysMLParser$stack.peek().<String>value(); - RESULT = new StxExpr(e); + RESULT = new StxExpr(e); // INT/BOOL EXPRESSION CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("stxExpr",151, CUP$AvatarFromSysMLParser$stack.peek(), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); } return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 288: // iexpr ::= expr + case 289: // iexpr ::= expr { String RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -5892,7 +5975,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 289: // iexpr ::= complexIdent + case 290: // iexpr ::= complexIdent { String RESULT =null; Location ixleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -5904,7 +5987,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 290: // expr ::= iexpr PLUS iexpr + case 291: // expr ::= iexpr PLUS iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -5919,7 +6002,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 291: // expr ::= iexpr MINUS iexpr + case 292: // expr ::= iexpr MINUS iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -5934,7 +6017,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 292: // expr ::= iexpr MULT iexpr + case 293: // expr ::= iexpr MULT iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -5949,7 +6032,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 293: // expr ::= iexpr DIV iexpr + case 294: // expr ::= iexpr DIV iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -5964,7 +6047,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 294: // expr ::= iexpr MOD iexpr + case 295: // expr ::= iexpr MOD iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -5979,7 +6062,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 295: // expr ::= MINUS iexpr + case 296: // expr ::= MINUS iexpr { String RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -5991,7 +6074,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 296: // expr ::= iexpr OR iexpr + case 297: // expr ::= iexpr OR iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -6006,7 +6089,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 297: // expr ::= iexpr AND iexpr + case 298: // expr ::= iexpr AND iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -6021,7 +6104,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 298: // expr ::= NOT iexpr + case 299: // expr ::= NOT iexpr { String RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -6032,21 +6115,6 @@ class CUP$AvatarFromSysMLParser$actions { } return CUP$AvatarFromSysMLParser$result; - /*. . . . . . . . . . . . . . . . . . . .*/ - case 299: // expr ::= iexpr LT iexpr - { - String RESULT =null; - Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; - Location lxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xright; - String l = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2).<String>value(); - Location rxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; - Location rxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; - String r = CUP$AvatarFromSysMLParser$stack.peek().<String>value(); - RESULT = l + " < " + r; - CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("expr",154, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); - } - return CUP$AvatarFromSysMLParser$result; - /* . . . . . .*/ default: throw new Exception( @@ -6069,7 +6137,22 @@ class CUP$AvatarFromSysMLParser$actions { switch (CUP$AvatarFromSysMLParser$act_num) { /*. . . . . . . . . . . . . . . . . . . .*/ - case 300: // expr ::= iexpr GT iexpr + case 300: // expr ::= iexpr LT iexpr + { + String RESULT =null; + Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; + Location lxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xright; + String l = CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2).<String>value(); + Location rxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; + Location rxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xright; + String r = CUP$AvatarFromSysMLParser$stack.peek().<String>value(); + RESULT = l + " < " + r; + CUP$AvatarFromSysMLParser$result = parser.getSymbolFactory().newSymbol("expr",154, CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2), CUP$AvatarFromSysMLParser$stack.peek(), RESULT); + } + return CUP$AvatarFromSysMLParser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 301: // expr ::= iexpr GT iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -6084,7 +6167,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 301: // expr ::= iexpr LEQ iexpr + case 302: // expr ::= iexpr LEQ iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -6099,7 +6182,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 302: // expr ::= iexpr GEQ iexpr + case 303: // expr ::= iexpr GEQ iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -6114,7 +6197,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 303: // expr ::= iexpr EQ iexpr + case 304: // expr ::= iexpr EQ iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -6129,7 +6212,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 304: // expr ::= iexpr DIF iexpr + case 305: // expr ::= iexpr DIF iexpr { String RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -6144,7 +6227,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 305: // expr ::= LPAR iexpr RPAR + case 306: // expr ::= LPAR iexpr RPAR { String RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; @@ -6156,7 +6239,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 306: // expr ::= INT + case 307: // expr ::= INT { String RESULT =null; Location ixleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -6168,7 +6251,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 307: // expr ::= BOOL + case 308: // expr ::= BOOL { String RESULT =null; Location bxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -6180,7 +6263,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 308: // complexIdent ::= IDENT + case 309: // complexIdent ::= IDENT { String RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -6192,7 +6275,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 309: // complexIdent ::= IDENT POINT complexIdent + case 310: // complexIdent ::= IDENT POINT complexIdent { String RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-2)).xleft; @@ -6207,7 +6290,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 310: // stxCall ::= stxCallBegin RPAR + case 311: // stxCall ::= stxCallBegin RPAR { StxCall RESULT =null; @@ -6219,7 +6302,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 311: // stxCall ::= stxCallBegin stxCallParams RPAR + case 312: // stxCall ::= stxCallBegin stxCallParams RPAR { StxCall RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; @@ -6234,7 +6317,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 312: // stxCallBegin ::= IDENT LPAR + case 313: // stxCallBegin ::= IDENT LPAR { Object RESULT =null; Location ixleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; @@ -6249,7 +6332,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 313: // stxCallParams ::= stxCallParam + case 314: // stxCallParams ::= stxCallParam { Object RESULT =null; @@ -6258,7 +6341,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 314: // stxCallParams ::= stxCallParam comma stxCallParams + case 315: // stxCallParams ::= stxCallParam comma stxCallParams { Object RESULT =null; @@ -6267,7 +6350,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 315: // comma ::= COMMA + case 316: // comma ::= COMMA { Object RESULT =null; stringAcc.append(", "); @@ -6276,7 +6359,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 316: // stxCallParam ::= expr + case 317: // stxCallParam ::= expr { Object RESULT =null; Location exleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -6288,7 +6371,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 317: // stxCallParam ::= complexIdent + case 318: // stxCallParam ::= complexIdent { Object RESULT =null; Location ixleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.peek()).xleft; @@ -6304,7 +6387,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 318: // stxCallParam ::= call + case 319: // stxCallParam ::= call { Object RESULT =null; @@ -6313,7 +6396,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 319: // call ::= callBegin RPAR + case 320: // call ::= callBegin RPAR { Object RESULT =null; stringAcc.append(")"); @@ -6322,7 +6405,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 320: // call ::= stxCallBegin stxCallParams RPAR + case 321: // call ::= stxCallBegin stxCallParams RPAR { Object RESULT =null; Location lxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; @@ -6334,7 +6417,7 @@ class CUP$AvatarFromSysMLParser$actions { return CUP$AvatarFromSysMLParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 321: // callBegin ::= IDENT LPAR + case 322: // callBegin ::= IDENT LPAR { Object RESULT =null; Location ixleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$AvatarFromSysMLParser$stack.elementAt(CUP$AvatarFromSysMLParser$top-1)).xleft; diff --git a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup index 9d2e2507fa..72e0e7af45 100644 --- a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup +++ b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup @@ -169,6 +169,10 @@ parser code {: private ArrayList<HashMap<String,StxAttribute>> attributeHierarchy; /** methods associated to ancestor blocks, respects blockHierarchy order */ private ArrayList<HashMap<String,StxMethod>> methodHierarchy; + /** to detect multiple state machines in a single block */ + private Location stateMachine = null; + /** state machine flags associated to ancestor blocks, respects blockHierarchy order */ + private ArrayList<Location> machineHierarchy = new ArrayList<Location>(); // %%%%%%%%%%%%%%%%%%%% UPDATE PATH STATE VARIABLES @@ -272,6 +276,8 @@ parser code {: attributeMap = new HashMap<String,StxAttribute>(); methodHierarchy.add(methodMap); methodMap = new HashMap<String,StxMethod>(); + machineHierarchy.add(stateMachine); + stateMachine = null; } /** exit block: shorten path to current block (pop blockHierarchy, attributeHierarchy, methodHierarchy) */ @@ -282,6 +288,7 @@ parser code {: attributeHierarchy.remove(attributeHierarchy.size() -1); methodMap = methodHierarchy.get(methodHierarchy.size() -1); methodHierarchy.remove(methodHierarchy.size() -1); + stateMachine = machineHierarchy.remove(machineHierarchy.size() -1); } @@ -392,7 +399,16 @@ parser code {: } /** a multiusage Flag */ - boolean flag; + private boolean flag; + /** a block specific flag */ + private ArrayList<Boolean> blockFlags = new ArrayList<Boolean>(); + private void pushBlockFlag(Boolean f) { blockFlags.add(f); } + private boolean popBlockFlag() { + boolean res = blockFlags.get(blockFlags.size() -1); + blockFlags.remove(blockFlags.size() -1); + return res; + } + :} /* Terminals (tokens returned by the scanner). */ @@ -557,7 +573,7 @@ datatypeDeclHEADER ::= ATTRIBUTE:a DEF IDENT:id specializes AVDATATYPE_T {: :}; // FIELD LIST $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ -// used for DataTypes, Methods and inMessages (in-signal profiles) +// used for DataTypes, Methods and inMessages (in-signal profiles) fieldDecls ::= fieldDecl | fieldDecl fieldDecls ; @@ -631,7 +647,7 @@ bfRelDecl ::= bfRelDeclBegin relParams RPAR SEMICOLON:x {: bfRelDeclBegin ::= PART:p IDENT:id COLON BFIFOREL_T EQUAL BFIFOREL_T LPAR {: getRelation(id.getAvatarName()); - if (! theRelation.declare() ) { + if (! theRelation.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Relation " + id.getAvatarName() + " is already declared", theRelation.getLeft()) ); flag = false; @@ -818,61 +834,64 @@ outSignalBinding ::= messageDecl ::= inMessageDecl | outMessageDecl ; -inMessageDecl ::= inMessageDeclBegin:m inMessageDeclBODY {: - if (messageChannelParam == null) + +// IN MESSAGE ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +inMessageDecl ::= inMessageDeclBegin:m inMessageDeclBODY:b {: + if (messageChannelParam == null) // missing channel parameter addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, mxleft, "In-message channel has not been set", null) ); + if (flag) theStructure.setRight(bxright); :}; inMessageDeclBegin ::= PART:p DEF IDENT:id specializes INMESSAGE_T LBRAC {: getInMessage(id.getAvatarName()); - if (! theStructure.declare() ) { + if (! theStructure.declare() ) { //duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "In-message profile " + id.getAvatarName() + " is already declared", theStructure.getLeft()) ); + flag = false; } else { theStructure.setLeft(pxleft); messageChannelParam = null; + flag = true; } :}; inMessageDeclBODY ::= - messageChannel RBRAC:b {: - theStructure.setRight(bxright); - :} - | messageChannel fieldDecls RBRAC:b {: - theStructure.setRight(bxright); - :} - | fieldDecls messageChannel RBRAC:b {: - theStructure.setRight(bxright); - :} + messageChannel RBRAC + | messageChannel fieldDecls RBRAC + | fieldDecls messageChannel RBRAC ; messageChannel ::= PRIVATE:p PART CHANNEL_F COLON CHANNEL_T EQUAL IDENT:ch SEMICOLON {: - if (messageChannelParam != null) + if (messageChannelParam != null) // duplicate addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "in-message channel has already been set", messageChannelParam)); - else { + else { // message param is not set getChannel(ch.getAvatarName()); theChannel.setInProfile((StxInMessage)theStructure); ((StxInMessage)theStructure).setChannel(theChannel); - messageChannelParam = pxleft; + messageChannelParam = pxleft; // now it is } :} | PRIVATE:p PART CHANNEL_F EQUAL IDENT:ch SEMICOLON {: - if (messageChannelParam != null) + if (messageChannelParam != null) // duplicate addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "in-message channel has already been set", messageChannelParam)); - else { + else { // message param is not set getChannel(ch.getAvatarName()); theChannel.setInProfile((StxInMessage)theStructure); ((StxInMessage)theStructure).setChannel(theChannel); - messageChannelParam = pxleft; + messageChannelParam = pxleft; // now it is } :} ; + +// OUT MESSAGE ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + outMessageDecl ::= outMessageDeclBegin SEMICOLON:b {: - theOutMessage.setRight(bxright); + if (flag) theOutMessage.setRight(bxright); :} | outMessageDeclBegin LBRAC RBRAC:b {: - theOutMessage.setRight(bxright); + if (flag) theOutMessage.setRight(bxright); :} | outMessageDeclBegin LBRAC outMessageDeclBODY ; @@ -880,52 +899,64 @@ outMessageDeclBegin ::= PART:p DEF IDENT:id specializes OUTMESSAGE_T COMMA IDENT:m {: getInMessage(m.getAvatarName()); getOutMessage(id.getAvatarName(), (StxInMessage)theStructure); - if (! theOutMessage.declare() ) { + if (! theOutMessage.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Out-message profile " + id.getAvatarName() + " is already declared", theStructure.getLeft()) ); - } else + flag = false; + } else { theOutMessage.setLeft(pxleft); + flag = true; + } :} | PART:p DEF IDENT:id specializes IDENT:m COMMA OUTMESSAGE_T {: getInMessage(m.getAvatarName()); - getOutMessage(id.getAvatarName(), (StxInMessage)theStructure); - theOutMessage.setLeft(pxleft); + if (! theOutMessage.declare() ) { // duplicate + addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Out-message profile " + id.getAvatarName() + + " is already declared", theStructure.getLeft()) ); + flag = false; + } else { + theOutMessage.setLeft(pxleft); + flag = true; + } :} ; outMessageDeclBODY ::= redefineField RBRAC:b {: - theOutMessage.setRight(bxright); + if (flag) theOutMessage.setRight(bxright); :} | redefineField outMessageDeclBODY ; redefineField ::= ATTRIBUTE:a IDENT:o REDEFINES IDENT:i SEMICOLON {: StxField ofield = new StxField(axleft, axright, o.getAvatarName(), ""); - theOutMessage.addFieldLink(ofield, i.getAvatarName()); + // maps output field to its dual input field + if (! theOutMessage.addFieldLink(ofield, i.getAvatarName())) + addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Field " + o.getAvatarName() + + " is already declared") ); :}; // BLOCK DECLARATION $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ blockDecl ::= - blockDeclBegin RBRAC {: popBlock(); :} - | blockDeclBegin blockDeclBODY {: popBlock(); :} + blockDeclBegin RBRAC:e {: if (popBlockFlag()) theBlock.setRight(exright); popBlock(); :} + | blockDeclBegin blockDeclBODY:e {: if (popBlockFlag()) theBlock.setRight(exright); popBlock(); :} ; blockDeclBegin ::= PART:p IDENT:id COLON AVBLOCK_T LBRAC {: - StxBlock tmp = theBlock; - pushBlock(); - getBlock(id.getAvatarName()); - if (! theBlock.declare() ) { + StxBlock tmp = theBlock; // locally memorize father + pushBlock(); // globally memorize father state + getBlock(id.getAvatarName()); // set current block + if (! theBlock.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Block " + id.getAvatarName() + " is already declared", theBlock.getLeft()) ); + pushBlockFlag(false); } else { theBlock.setFather(tmp); theBlock.setLeft(pxleft); + pushBlockFlag(true); } :}; blockDeclBODY ::= - blockItem RBRAC:b {: - theBlock.setRight(bxright); - :} + blockItem RBRAC | blockItem blockDeclBODY ; blockItem ::= @@ -939,26 +970,28 @@ blockItem ::= ; // ATTRIBUTE DECLARATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + attributeDecl ::= attributeDeclHEADER SEMICOLON:q {: - theAttribute.setRight(qxright); + if (flag) theAttribute.setRight(qxright); :} | attributeDeclHEADER GETS iexpr:e SEMICOLON:q {: theAttribute.setInit(e); - theAttribute.setRight(qxright); + if (flag) theAttribute.setRight(qxright); :} | attributeDeclHEADER DEFAULT GETS iexpr:e SEMICOLON:q {: theAttribute.setInit(e); - theAttribute.setRight(qxright); + if (flag) theAttribute.setRight(qxright); theAttribute.setDefaultValue(true); :} ; attributeDeclHEADER ::= ATTRIBUTE:a IDENT:id COLON typeIdent:tp {: getAttribute(id.getAvatarName(), tp); - if (! theAttribute.declare() ) { + if (! theAttribute.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Attribute " + id.getAvatarName() + " is already declared (or there is an attribute with same name)", theAttribute.getLeft()) ); + flag = false; } else { StxElement e = theBlock.addAttribute(theAttribute); if (e != null) @@ -972,6 +1005,7 @@ attributeDeclHEADER ::= addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Attribute " + id.getAvatarName() + " cannot be added: name already used for signal", e.getLeft())); else ; + flag = true; theAttribute.setLeft(axleft); } :}; @@ -979,11 +1013,11 @@ attributeDeclHEADER ::= // CONSTANT DECLARATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% constantDecl ::= constantDeclHEADER SEMICOLON:q {: - theAttribute.setRight(qxright); + if (flag) theAttribute.setRight(qxright); :} | constantDeclHEADER GETS iexpr:e SEMICOLON:q {: theAttribute.setInit(e); - theAttribute.setRight(qxright); + if (flag) theAttribute.setRight(qxright); :} ; constantDeclHEADER ::= @@ -992,6 +1026,7 @@ constantDeclHEADER ::= if (! theAttribute.declare() ) { addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, rxleft, "Constant " + id.getAvatarName() + " is already declared (or there is an attribute with same name)", theAttribute.getLeft()) ); + flag = false; } else { StxElement e = theBlock.addConstant(theAttribute); if (e != null) @@ -1005,25 +1040,29 @@ constantDeclHEADER ::= addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, rxleft, "Constant " + id.getAvatarName() + " cannot be added: name already used for signal", e.getLeft())); else ; + flag = true; theAttribute.setLeft(rxleft); } :}; // METHOD DECLARATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + methodDecl ::= voidMethodDecl | calcMethodDecl; + voidMethodDecl ::= voidMethodDeclBegin LBRAC RBRAC:b {: - theStructure.setRight(bxright); + if (flag) theStructure.setRight(bxright); :} | voidMethodDeclBegin LBRAC fieldDecls RBRAC:b {: - theStructure.setRight(bxright); + if (flag) theStructure.setRight(bxright); :} ; voidMethodDeclBegin ::= ACTION:a IDENT:id COLON AVVOIDMETHOD_T {: getMethod(id.getAvatarName()); - if (! theStructure.declare() ) { + if (! theStructure.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Method " + id.getAvatarName() + " is already declared", theStructure.getLeft()) ); + flag = false; } else { StxElement e = theBlock.addMethod((StxMethod)theStructure); if (e != null) @@ -1037,15 +1076,17 @@ voidMethodDeclBegin ::= ACTION:a IDENT:id COLON AVVOIDMETHOD_T {: addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, axleft, "Method " + id.getAvatarName() + " cannot be added: name already used for signal", e.getLeft())); else ; + flag = true; theStructure.setLeft(axleft); } :}; + calcMethodDecl ::= calcMethodDeclBegin LBRAC RBRAC:b {: - theStructure.setRight(bxright); + if (flag) theStructure.setRight(bxright); :} | calcMethodDeclBegin LBRAC calcMethodItems RBRAC:b {: - theStructure.setRight(bxright); + if (flag) theStructure.setRight(bxright); :} ; calcMethodDeclBegin ::= CALC:c IDENT:id COLON AVCALCMETHOD_T {: @@ -1053,6 +1094,7 @@ calcMethodDeclBegin ::= CALC:c IDENT:id COLON AVCALCMETHOD_T {: if (! theStructure.declare() ) { addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, cxleft, "Method " + id.getAvatarName() + " is already declared", theStructure.getLeft()) ); + flag = false; } else { StxElement e = theBlock.addMethod((StxMethod)theStructure); if (e != null) @@ -1066,6 +1108,7 @@ calcMethodDeclBegin ::= CALC:c IDENT:id COLON AVCALCMETHOD_T {: addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, cxleft, "Method " + id.getAvatarName() + " cannot be added: name already used for signal", e.getLeft())); else ; + flag = true; theStructure.setLeft(cxleft); } :}; @@ -1081,10 +1124,11 @@ calcMethodItem ::= ; // SIGNAL DECLARATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + signalDecl ::= PART:p IDENT:id COLON FIFO_T SEMICOLON:q {: getSignal(theBlock.getName(),id.getAvatarName()); - if (! theSignal.declare() ) { + if (! theSignal.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Signal " + id.getAvatarName() + " is already declared", theSignal.getLeft()) ); } else { @@ -1106,7 +1150,7 @@ signalDecl ::= :} | PART:p IDENT:id COLON CHANNEL_T SEMICOLON:q {: getSignal(theBlock.getName(),id.getAvatarName()); - if (! theSignal.declare() ) { + if (! theSignal.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Signal " + id.getAvatarName() + " is already declared", theSignal.getLeft()) ); } else { @@ -1129,11 +1173,12 @@ signalDecl ::= ; // TIMER DECLARATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + timerDecl ::= PART:p IDENT:id COLON AVTIMER_T EQUAL AVTIMER_T LPAR RPAR SEMICOLON:q {: StxTimer t = new StxTimer(id.getAvatarName(), pxleft, qxright); StxElement e = theBlock.addTimer(t); - if (e != null) + if (e != null) // conflict with existing item e if (e instanceof StxTimer && !e.declare()) addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Timer " + id.getAvatarName() + " is already declared", e.getLeft())); @@ -1152,7 +1197,7 @@ timerDecl ::= | PART:p IDENT:id COLON AVTIMER_T SEMICOLON:q {: StxTimer t = new StxTimer(id.getAvatarName(), pxleft, qxright); StxElement e = theBlock.addTimer(t); - if (e != null) + if (e != null) // conflict with existing item e if (e instanceof StxTimer && !e.declare()) addError( new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, pxleft, "Timer " + id.getAvatarName() + " is already declared", e.getLeft())); @@ -1171,21 +1216,28 @@ timerDecl ::= ; // STATE MACHINE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + stateMachine ::= stateMachineBegin LBRAC stateMachineItems RBRAC {: - theBlock.setStates(stateMap.values().toArray(new StxState[0])); + theBlock.setStates(stateMap.values().toArray(new StxState[0])); // all collected information is put in block states stateMap = null; :} | stateMachineBegin LBRAC RBRAC {: - theBlock.setStates(stateMap.values().toArray(new StxState[0])); + theBlock.setStates(stateMap.values().toArray(new StxState[0])); // all collected information is put in block states stateMap = null; :} | stateMachineBegin SEMICOLON {: - theBlock.setStates(stateMap.values().toArray(new StxState[0])); + theBlock.setStates(stateMap.values().toArray(new StxState[0])); // all collected information is put in block states stateMap = null; :} ; -stateMachineBegin ::= EXHIBIT STATE STATEMACHINE COLON AVSTATEMACHINE_T {: +stateMachineBegin ::= EXHIBIT:e STATE STATEMACHINE COLON AVSTATEMACHINE_T {: + if (stateMachine != null) + addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, exleft, + "State Machine is already declared", stateMachine) ); + else + stateMachine = exleft; + stateMap = new HashMap<String, StxState>(); :}; stateMachineItems ::= @@ -1203,302 +1255,318 @@ state ::= standardState | stopState | startState | sendState | receiveState startState ::= startStateBegin:b SEMICOLON:q {: tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} | startStateBegin:b EQUAL AVSTARTSTATE_T LPAR RPAR SEMICOLON:q {: tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} | startStateBegin EQUAL AVSTARTSTATE_T LPAR requestParam RPAR SEMICOLON:q {: - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} ; startStateBegin ::= ENTRY:z ACTION IDENT:id COLON AVSTARTSTATE_T {: getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXSTARTSTATE); theState.setLeft(zxright); requestIndex = 0; + flag = true; } :}; standardState ::= standardStateBegin:b SEMICOLON:q {: tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} | standardStateBegin:b EQUAL AVSTANDARDSTATE_T LPAR RPAR SEMICOLON:q {: tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} | standardStateBegin EQUAL AVSTANDARDSTATE_T LPAR poolParam RPAR SEMICOLON:q {: - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} ; standardStateBegin ::= STATE:z IDENT:id COLON AVSTANDARDSTATE_T {: getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXSTANDARDSTATE); theState.setName(id.getAvatarName()); theState.setLeft(zxright); requestIndex = 0; + flag = true; } :}; stopState ::= stopStateBegin SEMICOLON:q {: - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} | stopStateBegin EQUAL AVSTOPSTATE_T LPAR RPAR SEMICOLON:q {: - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} ; stopStateBegin ::= EXIT:z ACTION IDENT:id COLON AVSTOPSTATE_T {: getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXSTOPSTATE); theState.setLeft(zxright); + flag = true; } :}; sendState ::= sendStateBegin:b SEMICOLON:q {: tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} | sendStateBegin EQUAL AVSENDSTATE_T LPAR RPAR SEMICOLON:q {: - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} | sendStateBegin EQUAL AVSENDSTATE_T LPAR requestParam RPAR SEMICOLON:q {: - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} ; sendStateBegin ::= STATE:z IDENT:id COLON AVSENDSTATE_T {: getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXSENDSTATE); theState.setLeft(zxright); requestIndex = 0; + flag = true; } :}; receiveState ::= receiveStateBegin:b SEMICOLON:q {: tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} | receiveStateBegin:b EQUAL AVRECEIVESTATE_T LPAR RPAR SEMICOLON:q {: tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} | receiveStateBegin EQUAL AVRECEIVESTATE_T LPAR requestParam RPAR SEMICOLON:q {: - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} ; receiveStateBegin ::= STATE:z IDENT:id COLON AVRECEIVESTATE_T {: getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXRECEIVESTATE); theState.setLeft(zxright); requestIndex = 0; + flag = true; } :}; randomState ::= randomStateBegin EQUAL AVRANDOMSTATE_T LPAR randomAction COMMA requestParam RPAR SEMICOLON:q {: - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} | randomStateBegin EQUAL AVRANDOMSTATE_T LPAR requestParam COMMA randomAction RPAR SEMICOLON:q {: - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} | randomStateBegin:b EQUAL AVRANDOMSTATE_T LPAR randomAction RPAR SEMICOLON:q {: tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} ; randomStateBegin ::= STATE:z IDENT:id COLON AVRANDOMSTATE_T {: getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXRANDOMSTATE); theState.setLeft(zxright); requestIndex = 0; + flag = true; } :}; countState ::= countStateBegin:b EQUAL AVCOUNTSTATE_T LPAR countAction RPAR SEMICOLON:q {: tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} | countStateBegin EQUAL AVCOUNTSTATE_T LPAR requestParam COMMA countAction RPAR SEMICOLON:q {: - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} | countStateBegin EQUAL AVCOUNTSTATE_T LPAR countAction COMMA requestParam RPAR SEMICOLON:q {: - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} ; countStateBegin ::= STATE:z IDENT:id COLON AVCOUNTSTATE_T {: getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXCOUNTSTATE); theState.setLeft(zxright); requestIndex = 0; + flag = true; } :}; presendState ::= presendStateBegin EQUAL AVPRESENDSTATE_T LPAR requestParam RPAR SEMICOLON:q {: - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} ; presendStateBegin ::= STATE:z IDENT:id COLON AVPRESENDSTATE_T {: getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXPRESENDSTATE); theState.setLeft(zxright); requestIndex = 0; + flag = true; } :}; prereceiveState ::= prereceiveStateBegin EQUAL AVPRERECEIVESTATE_T LPAR requestParam RPAR SEMICOLON:q {: - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} ; prereceiveStateBegin ::= STATE:z IDENT:id COLON AVPRERECEIVESTATE_T {: getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXPRERECEIVESTATE); theState.setLeft(zxright); requestIndex = 0; + flag = true; } :}; setTimerState ::= setTimerStateBegin EQUAL AVSETTIMERSTATE_T LPAR requestParam RPAR SEMICOLON:q {: - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} | setTimerStateBegin:b EQUAL AVSETTIMERSTATE_T LPAR RPAR SEMICOLON:q {: tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} | setTimerStateBegin:b SEMICOLON:q {: tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} ; setTimerStateBegin ::= STATE:z IDENT:id COLON AVSETTIMERSTATE_T {: getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXSETTIMERSTATE); theState.setLeft(zxright); requestIndex = 0; + flag = true; } :}; resetTimerState ::= resetTimerStateBegin EQUAL AVRESETTIMERSTATE_T LPAR requestParam RPAR SEMICOLON:q {: - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} | resetTimerStateBegin:b EQUAL AVRESETTIMERSTATE_T LPAR RPAR SEMICOLON:q {: tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} | resetTimerStateBegin:b SEMICOLON:q {: tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} ; resetTimerStateBegin ::= STATE:z IDENT:id COLON AVRESETTIMERSTATE_T {: getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXRESETTIMERSTATE); theState.setLeft(zxright); requestIndex = 0; + flag = true; } :}; expireTimerState ::= expireTimerStateBegin EQUAL AVEXPIRETIMERSTATE_T LPAR requestParam RPAR SEMICOLON:q {: - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} | expireTimerStateBegin:b EQUAL AVEXPIRETIMERSTATE_T LPAR RPAR SEMICOLON:q {: tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} | expireTimerStateBegin:b SEMICOLON:q {: tryTrivialRequest(bxleft, qxright); - theState.setRight(qxright); + if (flag) theState.setRight(qxright); :} ; expireTimerStateBegin ::= STATE:z IDENT:id COLON AVEXPIRETIMERSTATE_T {: getState(id.getAvatarName()); - if (! theState.declare() ) { + if (! theState.declare() ) { // duplicate addError( new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, zxleft, "State " + id.getAvatarName() + " is already declared", theState.getLeft()) ); requestIndex = 0; + flag = false; } else { theState.setType(AvatarFromSysMLSyntax.STXEXPIRETIMERSTATE); theState.setLeft(zxright); requestIndex = 0; + flag = true; } :}; // STATES PARAMETERS @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + // REQUESTS ++++++++++++++++++++++++++++++++++++ + +// REQUESTS POOLS ------------------------------ + poolParam ::= - POOL_F EQUAL LPAR requestList RPAR - | POOL_F EQUAL request + POOL_F EQUAL LPAR RPAR + | POOL_F EQUAL LPAR requestList RPAR + | POOL_F EQUAL request ; requestParam ::= REQUEST_F EQUAL request; requestList ::= request | request COMMA requestList; -dummy ::= {: - getTransition(requestIndex); - if (theTransition.isRequested()) { - addError( new AvatarFromSysMLError( - AvatarFromSysMLError.LOWERROR, - lexer.getLocation(), - "Transition " + (requestIndex + 1) + " is already requested", - theTransition.getRleft()) ); - okRequest = false; - } else { - theTransition.setRequested(true); - okRequest = true; - } -:}; + request ::= dummy IF:i iexpr:e QUEST simpleRequest:q ELSE NOKREQUEST_U LPAR INT:n RPAR:z {: if (n != requestIndex + 1) { @@ -1519,6 +1587,24 @@ request ::= requestIndex++; :} ; +dummy ::= {: + getTransition(requestIndex); + if (theTransition.isRequested()) { // duplicate + addError( new AvatarFromSysMLError( + AvatarFromSysMLError.LOWERROR, + lexer.getLocation(), + "Transition " + (requestIndex + 1) + " is already requested", + theTransition.getRleft()) ); + okRequest = false; // request is a duplikate (skip handling) + } else { + theTransition.setRequested(true); + okRequest = true; // request is not a duplicate + } +:}; + + +// SIMPLE REQUESTS ------------------------------------------- + simpleRequest ::= trivialRequest | sendRequest | receiveRequest | setTimerRequest | resetTimerRequest | expireTimerRequest; @@ -1569,9 +1655,12 @@ expireTimerRequestBegin ::= EXPIRETIMERREQUEST_T LPAR {: clearRequestArgs(); :}; +// SIMPLE REQUESTS PARAMETERS ------------------------------- + requestArgs ::= requestArg | requestArg COMMA requestArgs; requestArg ::= indexParam | delayParam | channelParam | payloadParam | settimerParam | resettimerParam | expiretimerParam; +// INDEX ......... indexParam ::= INDEX_F:f EQUAL INT:i {: if (indexArg != null) addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING,fxleft, "index parameter has already been set", indexArg)); @@ -1580,6 +1669,8 @@ indexParam ::= INDEX_F:f EQUAL INT:i {: null)); if (indexArg == null) indexArg = fxleft; :}; + +// DELAY ......... delayParam ::= delayKeyword EQUAL delayExpr; delayKeyword ::= DELAY_F:d {: if (delayArg != null) { @@ -1603,9 +1694,10 @@ delayRandomExpr ::= } :} ; +// PAYLOAD ......... payloadParam ::= - payloadParamBegin:b IDENT LPAR termList RPAR {: - if (argOK) { + payloadParamBegin:b IDENT LPAR termList RPAR {: // termlist fills argList + if (argOK) { // not duplicate if (theTransition.getType() != AvatarFromSysMLSyntax.STXSENDTRANSITION) addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, bxleft, "such payload is only relevant for send transitions", null)); @@ -1614,7 +1706,7 @@ payloadParam ::= argList = null; :} | payloadParamBegin:b IDENT LPAR RPAR {: - if (argOK) { + if (argOK) { // not duplicate if (theTransition.getType() != AvatarFromSysMLSyntax.STXSENDTRANSITION) addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, bxleft, "such payload is only relevant for send transitions", null)); @@ -1623,7 +1715,7 @@ payloadParam ::= argList = null; :} | payloadParamBegin:b IDENT {: - if (argOK) { + if (argOK) { // not duplicate if (theTransition.getType() != AvatarFromSysMLSyntax.STXSENDTRANSITION) addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, bxleft, "such payload is only relevant for send transitions", null)); @@ -1632,7 +1724,7 @@ payloadParam ::= argList = null; :} | payloadParamBegin:b TIMERSETMSG_T LPAR stxExpr:e RPAR {: - if (argOK) { + if (argOK) { // not duplicate if (theTransition.getType() != AvatarFromSysMLSyntax.STXSETTIMERTRANSITION) addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, bxleft, "such payload is only relevant for set-timer transitions", null)); @@ -1642,7 +1734,7 @@ payloadParam ::= argList = null; :} | payloadParamBegin:b TIMERRESETMSG_T LPAR RPAR {: - if (argOK) { + if (argOK) { // not duplicate if (theTransition.getType() != AvatarFromSysMLSyntax.STXRESETTIMERTRANSITION) addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, bxleft, "such payload is only relevant for reset-timer transitions", null)); @@ -1662,7 +1754,7 @@ payloadParamBegin ::= PAYLOAD_F:p EQUAL {: argList= new ArrayList<StxTerm>(); } :}; - +// CHANNEL ......... channelParam ::= CHANNEL_F:c EQUAL IDENT:id {: if (channelArg != null) addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, cxleft, "channel parameter has already been set", channelArg)); @@ -1678,7 +1770,7 @@ channelParam ::= CHANNEL_F:c EQUAL IDENT:id {: channelArg = cxleft; } :}; - +// SET TIMER TIMER PARAM ......... settimerParam ::= CHANNEL_F:c EQUAL IDENT:id POINT SET_TM {: if (settimerArg != null) addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, cxleft, "timer channel parameter has already been set", settimerArg)); @@ -1690,6 +1782,7 @@ settimerParam ::= CHANNEL_F:c EQUAL IDENT:id POINT SET_TM {: settimerArg = cxleft; } :}; +// RESET TIMER TIMER PARAM ......... resettimerParam ::= CHANNEL_F:c EQUAL IDENT:id POINT RESET_TM {: if (resettimerArg != null) addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, cxleft, "timer channel parameter has already been set", settimerArg)); @@ -1701,6 +1794,7 @@ resettimerParam ::= CHANNEL_F:c EQUAL IDENT:id POINT RESET_TM {: resettimerArg = cxleft; } :}; +// EXPIRE TIMER TIMER PARAM ......... expiretimerParam ::= CHANNEL_F:c EQUAL IDENT:id POINT EXPIRE_TM {: if (expiretimerArg != null) addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWWARNING, cxleft, "timer channel parameter has already been set", settimerArg)); @@ -1717,11 +1811,10 @@ termList ::= stxRvalue:e {: argList.add(e); :} | termList COMMA stxRvalue:e {: argList.add(e); :} ; + // STATE ACTIONS ++++++++++++++++++++++++++++++++++++ -randomAction ::= - STATEACTION_F EQUAL ASSIGNMENT_T LPAR targetParam COMMA randomParam RPAR - | STATEACTION_F EQUAL ASSIGNMENT_T LPAR randomParam COMMA targetParam RPAR -; + +// common: TARGET VARIABLE PARAMETER...... targetParam ::= target EQUAL fullIdent {: theState.setVariable(stringAcc.toString()); :}; @@ -1729,12 +1822,14 @@ target ::= TARGET_F {: stringAcc = new StringBuffer(); :}; fullIdent ::= - IDENT:id {: - stringAcc.append(id.getAvatarName()); - :} - | fullIdent POINT IDENT:id {: - stringAcc.append("." + id.getAvatarName()); - :} + IDENT:id {: stringAcc.append(id.getAvatarName()); :} + | fullIdent POINT IDENT:id {: stringAcc.append("." + id.getAvatarName()); :} +; + +// RANDOM ACTION.......... +randomAction ::= + STATEACTION_F EQUAL ASSIGNMENT_T LPAR targetParam COMMA randomParam RPAR + | STATEACTION_F EQUAL ASSIGNMENT_T LPAR randomParam COMMA targetParam RPAR ; randomParam ::= VALUE_F EQUAL actionRandomExpr; actionRandomExpr ::= @@ -1744,6 +1839,7 @@ actionRandomExpr ::= :} ; +// COUNT ACTION............ countAction ::= STATEACTION_F EQUAL ASSIGNMENT_T LPAR targetParam COMMA countParam RPAR | STATEACTION_F EQUAL ASSIGNMENT_T LPAR countParam COMMA targetParam RPAR @@ -1757,71 +1853,96 @@ countParam ::= VALUE_F EQUAL IDENT:id POINT AMOUNT_U LPAR RPAR {: transition ::= transitionBegin:t THEN IDENT:id SEMICOLON:q {: - getState(id.getAvatarName()); - theTransition.setTarget(theState); - theTransition.setLeft(txleft); - theTransition.setRight(qxright); + if (flag) { + getState(id.getAvatarName()); + theTransition.setTarget(theState); + theTransition.setLeft(txleft); + theTransition.setRight(qxright); + } :} | transitionBegin:t doActions THEN IDENT:id SEMICOLON:q {: - getState(id.getAvatarName()); - theTransition.setTarget(theState); - theTransition.setLeft(txleft); - theTransition.setRight(qxright); + if (flag) { + getState(id.getAvatarName()); + theTransition.setTarget(theState); + theTransition.setLeft(txleft); + theTransition.setRight(qxright); + } :} | transitionBegin:t THEN IDENT:id LBRAC transitionLabels RBRAC:q {: - getState(id.getAvatarName()); - theTransition.setTarget(theState); - theTransition.setDelayExtra(delayExtraMap); + if (flag) { + getState(id.getAvatarName()); + theTransition.setTarget(theState); + theTransition.setDelayExtra(delayExtraMap); + theTransition.setLeft(txleft); + theTransition.setRight(qxright); + } delayExtraMap = null; - theTransition.setLeft(txleft); - theTransition.setRight(qxright); :} | transitionBegin:t doActions THEN IDENT:id LBRAC transitionLabels RBRAC:q {: - getState(id.getAvatarName()); - theTransition.setTarget(theState); - theTransition.setDelayExtra(delayExtraMap); + if (flag) { + getState(id.getAvatarName()); + theTransition.setTarget(theState); + theTransition.setDelayExtra(delayExtraMap); + theTransition.setLeft(txleft); + theTransition.setRight(qxright); + } delayExtraMap = null; - theTransition.setLeft(txleft); - theTransition.setRight(qxright); :} ; transitionBegin ::= TRANSITION:t COLON AVTRANSITION_T FIRST IDENT:st {: getState(st.getAvatarName()); getTransition(0); - if (!theTransition.declare()) + if (!theTransition.declare()) { addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, txleft, "transition with same index has already been declared", null)); + flag = false; + } + else flag = true; clearTransitionLbls(); :} | TRANSITION:t COLON AVTRANSITION_T FIRST IDENT:st IF INDEX_F EQ INT:i {: getState(st.getAvatarName()); getTransition(i-1); - if (!theTransition.declare()) - addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, txleft, + if (!theTransition.declare()) { + addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, txleft, "transition with same index has already been declared", null)); + flag = true; + } + else flag = true; clearTransitionLbls(); :} ; + +// TRANSITION ACTIONS--------------------------------- + doActions ::= transitionActionBegin LBRAC RBRAC | transitionActionBegin LBRAC transitionAction RBRAC {: - theTransition.setActions(actionList); + if (flag) theTransition.setActions(actionList); actionList = null; :} | receiveActionBegin LBRAC RBRAC | receiveActionBegin LBRAC receiveAction RBRAC {: - theTransition.setReceivePayload(receiveMap); + if (flag) theTransition.setReceivePayload(receiveMap); receiveMap = null; :} ; + +// ORDINARY TRANSITION ACTION LIST .......................... + transitionActionBegin ::= DO ACTION COLON TRANSITIONACTION_T {: actionList = new ArrayList<StxAction>(); :}; + +// RECEIVE TRANSITION ACTION LIST .......................... + receiveActionBegin ::= DO ACTION COLON RECEIVEACTION_T {: receiveMap = new HashMap<String,String>(); :}; +// ORDINARY TRANSITION ACTION LIST .......................... + transitionAction ::= FIRST START_U SEMICOLON THEN DONE_U SEMICOLON | FIRST START_U SEMICOLON actionSeq @@ -1838,15 +1959,20 @@ act ::= actionList.add(new StxAction(axleft, qxright, c)); :} ; +assign ::= ASSIGN {: + stringAcc = new StringBuffer(); +:}; fulllIdent ::= fullIdent {: RESULT = stringAcc.toString(); stringAcc.setLength(0); :}; -assign ::= ASSIGN {: - stringAcc = new StringBuffer(); -:}; + +// RECEIVE TRANSITION ACTION LIST .......................... + receiveAction ::= messageLine receiveAssigns | receiveAssigns messageLine; + messageLine ::= ITEM MSG_U COLON IDENT EQUAL PAYLOAD_F AS IDENT SEMICOLON; + receiveAssigns ::= FIRST START_U SEMICOLON THEN DONE_U SEMICOLON | FIRST START_U SEMICOLON receiveAssignSeq @@ -1862,6 +1988,9 @@ receiveAssign ::= THEN:t assign fullIdent GETS MSG_U POINT IDENT:id SEMICOLON {: addError(new AvatarFromSysMLError(AvatarFromSysMLError.LOWERROR, txleft, "component " + id.getAvatarName() + " has already been assigned", null)); :}; + +// TRANSITION DISTRIBUTION LAWS --------------------------------- + transitionLabels ::= transitionLabel SEMICOLON | transitionLabel SEMICOLON transitionLabels; transitionLabel ::= distributionLabel | weightLabel | extraLabel; distributionLabel ::= ATTRIBUTE:a DISTRIBUTION_A COLON STRING_T EQUAL STRING:s {: @@ -1905,18 +2034,24 @@ extraLabel ::= delayExtraMap.put(n.getAvatarName(),s); :} ; + +// CLASSIFIED EXPRESSIONS +++++++++++++++++++++++++++++++++++++++ + stxRvalue ::= - stxCall:c {: RESULT = c; :} - | expr:e {: RESULT = new StxExpr(e); :} + stxCall:c {: RESULT = c; // FUNCTION CALL:} + | expr:e {: RESULT = new StxExpr(e); // INT/BOOL EXPRESSION :} | complexIdent:i {: RESULT = new StxId(i); :} ; -stxExpr ::= iexpr:e {: RESULT = new StxExpr(e); :} +stxExpr ::= iexpr:e {: RESULT = new StxExpr(e); // INT/BOOL EXPRESSION :} ; -iexpr ::= + +iexpr ::= // string int/bool expression or complex ident expr:e {: RESULT = e; :} | complexIdent:i {: RESULT = i; :} ; + +// INT/BOOL EXPRESSIONS --------------------------- expr ::= iexpr:l PLUS iexpr:r {: RESULT = l + " + " + r; :} | iexpr:l MINUS iexpr:r {: RESULT = l + " - " + r; :} @@ -1937,10 +2072,15 @@ expr ::= | INT:i {: RESULT = "" + i; :} | BOOL:b {: RESULT = ( b ? "true" : "false" ); :} ; + +// COMPLEX IDENT --------------------------- complexIdent ::= IDENT:e {: RESULT = e.getAvatarName(); :} | IDENT:e POINT complexIdent:i {: RESULT = e.getAvatarName() + "." + i; :} ; + + +// METHOD CALL --------------------------- stxCall ::= stxCallBegin RPAR {: theCall.addSegment(stringAcc.toString() + ")"); diff --git a/src/main/java/avatartranslator/tosysmlv2/static/AvatarCommunication.sysml b/src/main/java/avatartranslator/tosysmlv2/static/AvatarCommunication.sysml index e722fc1634..b39b8e1da4 100644 --- a/src/main/java/avatartranslator/tosysmlv2/static/AvatarCommunication.sysml +++ b/src/main/java/avatartranslator/tosysmlv2/static/AvatarCommunication.sysml @@ -79,7 +79,7 @@ package AvatarCommunication { private item fifo : '#Message'[0..*] ordered nonunique := null ; assert constraint { size(fifo) <= '@relation'.'@max_size' } - calc amount { return : Positive := size(fifo); } + calc '@amount' { return : Positive := size(fifo); } calc can_get { return : Boolean; notEmpty(fifo) } calc can_put { return : Boolean; size(fifo) < '@relation'.'@max_size' } diff --git a/src/main/java/avatartranslator/tosysmlv2/static/AvatarGeneral.sysml b/src/main/java/avatartranslator/tosysmlv2/static/AvatarGeneral.sysml index 353e724216..8d25e1bcb6 100644 --- a/src/main/java/avatartranslator/tosysmlv2/static/AvatarGeneral.sysml +++ b/src/main/java/avatartranslator/tosysmlv2/static/AvatarGeneral.sysml @@ -11,9 +11,9 @@ package AvatarGeneral { // Assignment ======================================= action def '#Assignment' { - inout target : Anything[0..*] nonunique; - in value : Anything[0..*] nonunique; - first start; then assign target:= value; then done; + inout '@target' : Anything[0..*] nonunique; + in '@value' : Anything[0..*] nonunique; + first start; then assign '@target':= '@value'; then done; } // SETS AND RANDOMS ============================================================= -- GitLab