Skip to content
Snippets Groups Projects
Commit 9b87e016 authored by Sophie Coudert's avatar Sophie Coudert
Browse files

modifying assignment translation (in progress)

parent a5af3f10
No related branches found
No related tags found
2 merge requests!508Avatar sys ml 04 2024,!507Avatar sys ml 04 2024
Source diff could not be displayed: it is too large. Options to address this: view the blob.
...@@ -9,7 +9,7 @@ package avatartranslator.tosysmlv2; ...@@ -9,7 +9,7 @@ package avatartranslator.tosysmlv2;
public class AvatarFromSysMLSymbols { public class AvatarFromSysMLSymbols {
/* terminals */ /* terminals */
public static final int AVDATATYPE_T = 63; public static final int AVDATATYPE_T = 63;
public static final int BLOCK1_F = 24; public static final int BLOCK1_F = 25;
public static final int BLOCK = 118; public static final int BLOCK = 118;
public static final int CONNECT = 124; public static final int CONNECT = 124;
public static final int EXIT = 141; public static final int EXIT = 141;
...@@ -18,8 +18,8 @@ public class AvatarFromSysMLSymbols { ...@@ -18,8 +18,8 @@ public class AvatarFromSysMLSymbols {
public static final int GT = 228; public static final int GT = 228;
public static final int MULT = 223; public static final int MULT = 223;
public static final int AVSTOPSTATE_T = 68; public static final int AVSTOPSTATE_T = 68;
public static final int LOSSY_F = 19; public static final int LOSSY_F = 20;
public static final int STATEACTION_F = 28; public static final int STATEACTION_F = 29;
public static final int GEQ = 230; public static final int GEQ = 230;
public static final int UNTIL = 207; public static final int UNTIL = 207;
public static final int INCLUDE = 155; public static final int INCLUDE = 155;
...@@ -35,7 +35,7 @@ public class AvatarFromSysMLSymbols { ...@@ -35,7 +35,7 @@ public class AvatarFromSysMLSymbols {
public static final int IMPLIES = 152; public static final int IMPLIES = 152;
public static final int AVEXPIRETIMERSTATE_T = 83; public static final int AVEXPIRETIMERSTATE_T = 83;
public static final int SNAPSHOT = 196; public static final int SNAPSHOT = 196;
public static final int PRIVATE_F = 21; public static final int PRIVATE_F = 22;
public static final int VIA = 213; public static final int VIA = 213;
public static final int RENDER = 187; public static final int RENDER = 187;
public static final int REAL_T = 62; public static final int REAL_T = 62;
...@@ -51,14 +51,13 @@ public class AvatarFromSysMLSymbols { ...@@ -51,14 +51,13 @@ public class AvatarFromSysMLSymbols {
public static final int VERIFICATION = 211; public static final int VERIFICATION = 211;
public static final int COMMENT = 122; public static final int COMMENT = 122;
public static final int EQ = 7; public static final int EQ = 7;
public static final int TARGET_F = 34;
public static final int MSG_U = 56; public static final int MSG_U = 56;
public static final int AVPRESENDSTATE_T = 74; public static final int AVPRESENDSTATE_T = 74;
public static final int SUCCESSION = 202; public static final int SUCCESSION = 202;
public static final int MOD = 225; public static final int MOD = 225;
public static final int DEPENDENCY = 131; public static final int DEPENDENCY = 131;
public static final int EXPOSE = 142; public static final int EXPOSE = 142;
public static final int GETS = 17; public static final int GETS = 18;
public static final int DIV = 224; public static final int DIV = 224;
public static final int AVPRERECEIVESTATE_T = 75; public static final int AVPRERECEIVESTATE_T = 75;
public static final int SETTIMERREQUEST_T = 84; public static final int SETTIMERREQUEST_T = 84;
...@@ -70,7 +69,7 @@ public class AvatarFromSysMLSymbols { ...@@ -70,7 +69,7 @@ public class AvatarFromSysMLSymbols {
public static final int SUBSETS = 201; public static final int SUBSETS = 201;
public static final int AFTER = 102; public static final int AFTER = 102;
public static final int NULL = 220; public static final int NULL = 220;
public static final int BLOCK_F = 23; public static final int BLOCK_F = 24;
public static final int STAKEHOLDER = 198; public static final int STAKEHOLDER = 198;
public static final int DIF = 226; public static final int DIF = 226;
public static final int PRIVATE = 180; public static final int PRIVATE = 180;
...@@ -88,7 +87,7 @@ public class AvatarFromSysMLSymbols { ...@@ -88,7 +87,7 @@ public class AvatarFromSysMLSymbols {
public static final int RECEIVEACTION_T = 78; public static final int RECEIVEACTION_T = 78;
public static final int ACTION = 100; public static final int ACTION = 100;
public static final int ELSE = 135; public static final int ELSE = 135;
public static final int EQUAL = 16; public static final int EQUAL = 17;
public static final int SEND = 194; public static final int SEND = 194;
public static final int WEIGHT_A = 95; public static final int WEIGHT_A = 95;
public static final int DERIVED = 132; public static final int DERIVED = 132;
...@@ -117,7 +116,7 @@ public class AvatarFromSysMLSymbols { ...@@ -117,7 +116,7 @@ public class AvatarFromSysMLSymbols {
public static final int STRING_T = 61; public static final int STRING_T = 61;
public static final int REP = 189; public static final int REP = 189;
public static final int AMOUNT_U = 35; public static final int AMOUNT_U = 35;
public static final int REQUEST_F = 27; public static final int REQUEST_F = 28;
public static final int CONNECTION = 125; public static final int CONNECTION = 125;
public static final int REF = 185; public static final int REF = 185;
public static final int IDENT = 96; public static final int IDENT = 96;
...@@ -125,10 +124,10 @@ public class AvatarFromSysMLSymbols { ...@@ -125,10 +124,10 @@ public class AvatarFromSysMLSymbols {
public static final int BOOL = 3; public static final int BOOL = 3;
public static final int ALIAS = 103; public static final int ALIAS = 103;
public static final int INTERFACE = 158; public static final int INTERFACE = 158;
public static final int PAYLOAD_F = 31; public static final int PAYLOAD_F = 32;
public static final int BLOCK2_F = 25; public static final int BLOCK2_F = 26;
public static final int LEQ = 229; public static final int LEQ = 229;
public static final int QUEST = 18; public static final int QUEST = 19;
public static final int TRANSITIONACTION_T = 79; public static final int TRANSITIONACTION_T = 79;
public static final int EVENT = 139; public static final int EVENT = 139;
public static final int AT = 114; public static final int AT = 114;
...@@ -142,14 +141,14 @@ public class AvatarFromSysMLSymbols { ...@@ -142,14 +141,14 @@ public class AvatarFromSysMLSymbols {
public static final int REFINES = 219; public static final int REFINES = 219;
public static final int START_U = 36; public static final int START_U = 36;
public static final int PLUS = 221; public static final int PLUS = 221;
public static final int INDEX_F = 29; public static final int INDEX_F = 30;
public static final int FIFO_T = 45; public static final int FIFO_T = 45;
public static final int RELATION_T = 38; public static final int RELATION_T = 38;
public static final int ALL = 104; public static final int ALL = 104;
public static final int AVTRANSITION_T = 76; public static final int AVTRANSITION_T = 76;
public static final int MERGE = 164; public static final int MERGE = 164;
public static final int RPAR = 9; public static final int RPAR = 9;
public static final int CHANNEL_F = 32; public static final int CHANNEL_F = 33;
public static final int SYNCREL_T = 39; public static final int SYNCREL_T = 39;
public static final int WHILE = 217; public static final int WHILE = 217;
public static final int REQUIRE = 190; public static final int REQUIRE = 190;
...@@ -157,7 +156,7 @@ public class AvatarFromSysMLSymbols { ...@@ -157,7 +156,7 @@ public class AvatarFromSysMLSymbols {
public static final int ALLOCATE = 105; public static final int ALLOCATE = 105;
public static final int XOR = 218; public static final int XOR = 218;
public static final int AVTIMER_T = 90; public static final int AVTIMER_T = 90;
public static final int RELATION_F = 22; public static final int RELATION_F = 23;
public static final int AVRECEIVESTATE_T = 71; public static final int AVRECEIVESTATE_T = 71;
public static final int ACCEPT = 99; public static final int ACCEPT = 99;
public static final int AVSTARTSTATE_T = 69; public static final int AVSTARTSTATE_T = 69;
...@@ -184,7 +183,7 @@ public class AvatarFromSysMLSymbols { ...@@ -184,7 +183,7 @@ public class AvatarFromSysMLSymbols {
public static final int LBRAC = 10; public static final int LBRAC = 10;
public static final int SUBJECT = 200; public static final int SUBJECT = 200;
public static final int TIMERRESETMSG_T = 88; public static final int TIMERRESETMSG_T = 88;
public static final int DELAY_F = 30; public static final int DELAY_F = 31;
public static final int ASSUME = 113; public static final int ASSUME = 113;
public static final int JOIN = 161; public static final int JOIN = 161;
public static final int VIEWPOINT = 215; public static final int VIEWPOINT = 215;
...@@ -199,9 +198,10 @@ public class AvatarFromSysMLSymbols { ...@@ -199,9 +198,10 @@ public class AvatarFromSysMLSymbols {
public static final int ABSTRACT = 98; public static final int ABSTRACT = 98;
public static final int STRING = 4; public static final int STRING = 4;
public static final int DECIDE = 127; public static final int DECIDE = 127;
public static final int VALUE_F = 33; public static final int VALUE_F = 34;
public static final int DOC = 134; public static final int DOC = 134;
public static final int ENTRY = 137; public static final int ENTRY = 137;
public static final int FOURPOINTS = 16;
public static final int ACTOR = 101; public static final int ACTOR = 101;
public static final int USE = 208; public static final int USE = 208;
public static final int FROM = 149; public static final int FROM = 149;
...@@ -218,7 +218,7 @@ public class AvatarFromSysMLSymbols { ...@@ -218,7 +218,7 @@ public class AvatarFromSysMLSymbols {
public static final int SENDREQUEST_T = 54; public static final int SENDREQUEST_T = 54;
public static final int RENDERING = 188; public static final int RENDERING = 188;
public static final int CONSTRAINT = 126; public static final int CONSTRAINT = 126;
public static final int POOL_F = 26; public static final int POOL_F = 27;
public static final int AVRANDOMSTATE_T = 72; public static final int AVRANDOMSTATE_T = 72;
public static final int SPECIALIZES = 197; public static final int SPECIALIZES = 197;
public static final int NONUNIQUE = 167; public static final int NONUNIQUE = 167;
...@@ -232,7 +232,7 @@ public class AvatarFromSysMLSymbols { ...@@ -232,7 +232,7 @@ public class AvatarFromSysMLSymbols {
public static final int COLON = 14; public static final int COLON = 14;
public static final int EXHIBIT = 140; public static final int EXHIBIT = 140;
public static final int PERFORM = 178; public static final int PERFORM = 178;
public static final int MAXSIZE_F = 20; public static final int MAXSIZE_F = 21;
public static final int ANYNAME = 5; public static final int ANYNAME = 5;
public static final int HASTYPE = 150; public static final int HASTYPE = 150;
public static final int RECEIVEREQUEST_T = 55; public static final int RECEIVEREQUEST_T = 55;
...@@ -257,6 +257,7 @@ public class AvatarFromSysMLSymbols { ...@@ -257,6 +257,7 @@ public class AvatarFromSysMLSymbols {
"SEMICOLON", "SEMICOLON",
"COLON", "COLON",
"POINT", "POINT",
"FOURPOINTS",
"EQUAL", "EQUAL",
"GETS", "GETS",
"QUEST", "QUEST",
...@@ -275,7 +276,6 @@ public class AvatarFromSysMLSymbols { ...@@ -275,7 +276,6 @@ public class AvatarFromSysMLSymbols {
"PAYLOAD_F", "PAYLOAD_F",
"CHANNEL_F", "CHANNEL_F",
"VALUE_F", "VALUE_F",
"TARGET_F",
"AMOUNT_U", "AMOUNT_U",
"START_U", "START_U",
"DONE_U", "DONE_U",
...@@ -476,167 +476,165 @@ public class AvatarFromSysMLSymbols { ...@@ -476,167 +476,165 @@ public class AvatarFromSysMLSymbols {
}; };
/* non terminals */ /* non terminals */
static final int receiveRequestBegin = 103; static final int receiveRequestBegin = 105;
static final int privateParam = 21; static final int privateParam = 23;
static final int startStateBegin = 107; static final int startStateBegin = 109;
static final int call = 159; static final int call = 157;
static final int receiveAssign = 143; static final int receiveAssign = 141;
static final int specializes = 5; static final int specializes = 7;
static final int calcMethodDeclBegin = 61; static final int calcMethodDeclBegin = 63;
static final int receiveStateBegin = 111; static final int receiveStateBegin = 113;
static final int messageChannel = 38; static final int messageChannel = 40;
static final int transitionActionBegin = 138; static final int transitionActionBegin = 136;
static final int block2Param = 20; static final int block2Param = 22;
static final int standardState = 67; static final int standardState = 69;
static final int stxCallParams = 161; static final int stxCallParams = 159;
static final int featureList = 3; static final int featureList = 5;
static final int presendState = 73; static final int presendState = 75;
static final int inSignalBinding = 32; static final int inSignalBinding = 34;
static final int blockAlias = 7; static final int blockAlias = 9;
static final int blockChain = 8; static final int blockChain = 10;
static final int receiveAction = 134; static final int receiveAction = 135;
static final int typeIdent = 0; static final int typeIdent = 0;
static final int actionRandomExpr = 94; static final int actionRandomExpr = 96;
static final int prereceiveStateBegin = 115; static final int prereceiveStateBegin = 117;
static final int relParam = 18; static final int relParam = 20;
static final int calcMethodDecl = 52; static final int calcMethodDecl = 54;
static final int bfChDecl = 30; static final int bfChDecl = 32;
static final int stopStateBegin = 109; static final int stopStateBegin = 111;
static final int signalBinding = 31; static final int signalBinding = 33;
static final int receiveAssignSeq = 142; static final int receiveAssignSeq = 140;
static final int stxCallParam = 157; static final int stxCallParam = 155;
static final int fieldDecl = 12; static final int fieldDecl = 14;
static final int setTimerState = 75; static final int setTimerState = 77;
static final int stateMachineItem = 59; static final int stateMachineItem = 61;
static final int trivialRequestBegin = 101; static final int trivialRequestBegin = 103;
static final int delayKeyword = 148; static final int delayKeyword = 146;
static final int weightLabel = 146; static final int weightLabel = 144;
static final int messageLine = 140; static final int messageLine = 138;
static final int randomParam = 123; static final int randomParam = 124;
static final int indexParam = 91; static final int indexParam = 93;
static final int fullIdent = 137; static final int fullIdent = 1;
static final int blockDecl = 43; static final int blockDecl = 45;
static final int outSignalBinding = 33; static final int outSignalBinding = 35;
static final int nbfRelDecl = 15; static final int nbfRelDecl = 17;
static final int syncRelDecl = 14; static final int syncRelDecl = 16;
static final int presendStateBegin = 114; static final int presendStateBegin = 116;
static final int countState = 72; static final int countState = 74;
static final int outMessageDecl = 36; static final int outMessageDecl = 38;
static final int act = 129; static final int act = 130;
static final int sendStateBegin = 110; static final int sendStateBegin = 112;
static final int attributeDecl = 47; static final int attributeDecl = 49;
static final int fieldDecls = 11; static final int fieldDecls = 13;
static final int maxsizeParam = 22; static final int maxsizeParam = 24;
static final int doActions = 127; static final int doActions = 128;
static final int voidMethodDeclBegin = 60; static final int voidMethodDeclBegin = 62;
static final int randomStateBegin = 112; static final int randomStateBegin = 114;
static final int lossyParam = 23; static final int lossyParam = 25;
static final int target = 136; static final int sendRequestBegin = 104;
static final int sendRequestBegin = 102; static final int fieldDeclBegin = 65;
static final int fieldDeclBegin = 63; static final int bfRelDecl = 18;
static final int bfRelDecl = 16; static final int requestParam = 81;
static final int requestParam = 79; static final int payloadParam = 98;
static final int payloadParam = 96; static final int startState = 68;
static final int startState = 66; static final int simpleRequest = 84;
static final int assign = 135; static final int messageDecl = 36;
static final int simpleRequest = 82; static final int datatypeDeclHEADER = 12;
static final int messageDecl = 34; static final int expr = 152;
static final int datatypeDeclHEADER = 10; static final int stopState = 70;
static final int expr = 154; static final int randomAction = 123;
static final int stopState = 68; static final int calcMethodItem = 56;
static final int randomAction = 121; static final int voidMethodDecl = 53;
static final int calcMethodItem = 54; static final int receiveState = 72;
static final int voidMethodDecl = 51; static final int feature = 6;
static final int receiveState = 70; static final int bfRelDeclBegin = 28;
static final int feature = 4; static final int poolParam = 80;
static final int bfRelDeclBegin = 26; static final int inMessageDeclBegin = 43;
static final int poolParam = 78; static final int sendRequest = 88;
static final int inMessageDeclBegin = 41; static final int nbfRelDeclBegin = 27;
static final int sendRequest = 86; static final int expireTimerRequestBegin = 108;
static final int nbfRelDeclBegin = 25; static final int calcMethodItems = 55;
static final int expireTimerRequestBegin = 106; static final int setTimerRequest = 90;
static final int calcMethodItems = 53; static final int redefineField = 42;
static final int setTimerRequest = 88; static final int blockDeclBegin = 46;
static final int redefineField = 40; static final int dummy = 147;
static final int blockDeclBegin = 44; static final int constantDeclHEADER = 64;
static final int dummy = 149; static final int blockDeclBODY = 47;
static final int constantDeclHEADER = 62; static final int trivialRequest = 85;
static final int blockDeclBODY = 45; static final int stxCall = 150;
static final int trivialRequest = 83; static final int countAction = 125;
static final int stxCall = 152; static final int expireTimerStateBegin = 120;
static final int countAction = 124; static final int relationDecl = 15;
static final int expireTimerStateBegin = 118; static final int inMessageDecl = 37;
static final int relationDecl = 13; static final int blockItem = 48;
static final int inMessageDecl = 35; static final int outMessageDeclBegin = 44;
static final int blockItem = 46; static final int transitionLabels = 133;
static final int outMessageDeclBegin = 42; static final int comma = 156;
static final int transitionLabels = 132; static final int delayParam = 94;
static final int comma = 158; static final int relParams = 19;
static final int delayParam = 92; static final int actionSeq = 129;
static final int relParams = 17; static final int resetTimerRequest = 91;
static final int targetParam = 122; static final int fulllIdent = 3;
static final int actionSeq = 128; static final int syncRelDeclBegin = 26;
static final int resetTimerRequest = 89; static final int expireTimerRequest = 92;
static final int fulllIdent = 1; static final int fieldVal = 66;
static final int syncRelDeclBegin = 24; static final int termList = 131;
static final int expireTimerRequest = 90; static final int receiveActionBegin = 137;
static final int fieldVal = 64; static final int randomState = 73;
static final int termList = 130; static final int expiretimerParam = 102;
static final int receiveActionBegin = 139; static final int constantDecl = 50;
static final int randomState = 71; static final int extraLabel = 145;
static final int expiretimerParam = 100; static final int distributionLabel = 143;
static final int constantDecl = 48; static final int state = 67;
static final int extraLabel = 147; static final int stateMachine = 59;
static final int distributionLabel = 145; static final int resetTimerStateBegin = 119;
static final int state = 65; static final int requestArg = 87;
static final int stateMachine = 57; static final int syncChDecl = 30;
static final int resetTimerStateBegin = 117; static final int signalDecl = 57;
static final int requestArg = 85; static final int inMessageDeclBODY = 39;
static final int syncChDecl = 28; static final int subsets = 8;
static final int signalDecl = 55; static final int standardStateBegin = 110;
static final int inMessageDeclBODY = 37; static final int delayRandomExpr = 97;
static final int subsets = 6; static final int methodDecl = 52;
static final int standardStateBegin = 108; static final int resettimerParam = 101;
static final int delayRandomExpr = 95; static final int outMessageDeclBODY = 41;
static final int methodDecl = 50; static final int payloadParamBegin = 122;
static final int resettimerParam = 99; static final int receiveRequest = 89;
static final int outMessageDeclBODY = 39; static final int channelDecl = 29;
static final int payloadParamBegin = 120; static final int transition = 127;
static final int receiveRequest = 87; static final int resetTimerRequestBegin = 107;
static final int channelDecl = 27; static final int channelParam = 99;
static final int transition = 126; static final int transitionBegin = 132;
static final int resetTimerRequestBegin = 105; static final int timerDecl = 58;
static final int channelParam = 97; static final int transitionAction = 134;
static final int transitionBegin = 131; static final int stxRvalue = 148;
static final int timerDecl = 56; static final int sendState = 71;
static final int transitionAction = 133; static final int fullIdentInit = 2;
static final int stxRvalue = 150; static final int block1Param = 21;
static final int sendState = 69; static final int complexIdent = 153;
static final int block1Param = 19; static final int iexpr = 151;
static final int complexIdent = 155; static final int datatypeDecl = 11;
static final int iexpr = 153; static final int callBegin = 158;
static final int datatypeDecl = 9; static final int countParam = 126;
static final int callBegin = 160; static final int expireTimerState = 79;
static final int countParam = 125; static final int prereceiveState = 76;
static final int expireTimerState = 77; static final int requestList = 82;
static final int prereceiveState = 74; static final int settimerParam = 100;
static final int requestList = 80; static final int setTimerRequestBegin = 106;
static final int settimerParam = 98; static final int requestArgs = 86;
static final int setTimerRequestBegin = 104; static final int stateMachineItems = 60;
static final int requestArgs = 84; static final int request = 83;
static final int stateMachineItems = 58; static final int stxExpr = 149;
static final int request = 81; static final int setTimerStateBegin = 118;
static final int stxExpr = 151; static final int delayExpr = 95;
static final int setTimerStateBegin = 116; static final int attributeDeclHEADER = 51;
static final int delayExpr = 93; static final int resetTimerState = 78;
static final int attributeDeclHEADER = 49; static final int model = 4;
static final int resetTimerState = 76; static final int nbfChDecl = 31;
static final int model = 2; static final int receiveAssigns = 139;
static final int nbfChDecl = 29; static final int stateMachineBegin = 121;
static final int receiveAssigns = 141; static final int stxCallBegin = 154;
static final int stateMachineBegin = 119; static final int transitionLabel = 142;
static final int stxCallBegin = 156; static final int countStateBegin = 115;
static final int transitionLabel = 144;
static final int countStateBegin = 113;
} }
...@@ -133,7 +133,8 @@ parser code {: ...@@ -133,7 +133,8 @@ parser code {:
/** methods, one map per block. Technical variable: memorize to avoid duplicates */ /** methods, one map per block. Technical variable: memorize to avoid duplicates */
private HashMap<String,StxMethod> methodMap; private HashMap<String,StxMethod> methodMap;
private StringBuffer stringAcc = new StringBuffer(); private StringBuffer fullIdentAcc = new StringBuffer();
private StringBuffer exprIdentAcc = new StringBuffer();
// %%%%%%%%%%%%%%%%%%%% "PATH" STATE VARIABLES // %%%%%%%%%%%%%%%%%%%% "PATH" STATE VARIABLES
// context information for parsing // context information for parsing
...@@ -419,11 +420,11 @@ terminal Boolean BOOL; ...@@ -419,11 +420,11 @@ terminal Boolean BOOL;
terminal String STRING, ANYNAME; terminal String STRING, ANYNAME;
terminal Double REAL; terminal Double REAL;
terminal EQ, LPAR, RPAR, LBRAC, RBRAC, COMMA, SEMICOLON, COLON, POINT, EQUAL, GETS, QUEST; terminal EQ, LPAR, RPAR, LBRAC, RBRAC, COMMA, SEMICOLON, COLON, POINT, FOURPOINTS, EQUAL, GETS, QUEST;
// Field names // Field names
terminal LOSSY_F, MAXSIZE_F, PRIVATE_F, RELATION_F, BLOCK_F, BLOCK1_F, BLOCK2_F, POOL_F, REQUEST_F, STATEACTION_F, INDEX_F, terminal LOSSY_F, MAXSIZE_F, PRIVATE_F, RELATION_F, BLOCK_F, BLOCK1_F, BLOCK2_F, POOL_F, REQUEST_F, STATEACTION_F, INDEX_F,
DELAY_F, PAYLOAD_F, CHANNEL_F, VALUE_F, TARGET_F, AMOUNT_U, START_U, DONE_U; DELAY_F, PAYLOAD_F, CHANNEL_F, VALUE_F, AMOUNT_U, START_U, DONE_U;
// Communications // Communications
terminal RELATION_T, SYNCREL_T, BFIFOREL_T, NBFIFOREL_T, INMESSAGE_T, OUTMESSAGE_T, CHANNEL_T, FIFO_T, BFIFO_T, terminal RELATION_T, SYNCREL_T, BFIFOREL_T, NBFIFOREL_T, INMESSAGE_T, OUTMESSAGE_T, CHANNEL_T, FIFO_T, BFIFO_T,
...@@ -462,7 +463,7 @@ terminal ABOUT, ABSTRACT, ACCEPT, ACTION, ACTOR, AFTER, ALIAS, ALL, ALLOCATE, AL ...@@ -462,7 +463,7 @@ terminal ABOUT, ABSTRACT, ACCEPT, ACTION, ACTOR, AFTER, ALIAS, ALL, ALLOCATE, AL
terminal PLUS, MINUS, MULT, DIV, MOD, DIF, LT, GT, LEQ, GEQ, UMINUS; terminal PLUS, MINUS, MULT, DIV, MOD, DIF, LT, GT, LEQ, GEQ, UMINUS;
/* Non terminals */ /* Non terminals */
non terminal String typeIdent, fulllIdent; non terminal String typeIdent, fullIdent, fullIdentInit, fulllIdent;
non terminal model; non terminal model;
non terminal featureList, feature, specializes, subsets, blockAlias, blockChain, datatypeDecl, datatypeDeclHEADER, non terminal featureList, feature, specializes, subsets, blockAlias, blockChain, datatypeDecl, datatypeDeclHEADER,
fieldDecls, fieldDecl, relationDecl, syncRelDecl, nbfRelDecl, bfRelDecl, relParams, relParam, fieldDecls, fieldDecl, relationDecl, syncRelDecl, nbfRelDecl, bfRelDecl, relParams, relParam,
...@@ -487,9 +488,9 @@ non terminal state, startState, standardState, stopState, sendState, receiveStat ...@@ -487,9 +488,9 @@ non terminal state, startState, standardState, stopState, sendState, receiveStat
receiveStateBegin, randomStateBegin, countStateBegin, presendStateBegin, prereceiveStateBegin, setTimerStateBegin, receiveStateBegin, randomStateBegin, countStateBegin, presendStateBegin, prereceiveStateBegin, setTimerStateBegin,
resetTimerStateBegin, expireTimerStateBegin, stateMachineBegin, payloadParamBegin; resetTimerStateBegin, expireTimerStateBegin, stateMachineBegin, payloadParamBegin;
non terminal randomAction, targetParam, randomParam, countAction, countParam, transition, doActions, non terminal randomAction, randomParam, countAction, countParam, transition, doActions,
actionSeq, act, termList, transitionBegin, transitionLabels, transitionAction, receiveAction, assign, actionSeq, act, termList, transitionBegin, transitionLabels, transitionAction, receiveAction,
target, fullIdent, transitionActionBegin, receiveActionBegin, messageLine, receiveAssigns, receiveAssignSeq, transitionActionBegin, receiveActionBegin, messageLine, receiveAssigns, receiveAssignSeq,
receiveAssign, transitionLabel, distributionLabel, weightLabel, extraLabel, delayKeyword, dummy; receiveAssign, transitionLabel, distributionLabel, weightLabel, extraLabel, delayKeyword, dummy;
non terminal StxTerm stxRvalue; non terminal StxTerm stxRvalue;
...@@ -1808,39 +1809,38 @@ termList ::= ...@@ -1808,39 +1809,38 @@ termList ::=
// STATE ACTIONS ++++++++++++++++++++++++++++++++++++ // STATE ACTIONS ++++++++++++++++++++++++++++++++++++
// common: TARGET VARIABLE PARAMETER...... fulllIdent ::=
targetParam ::= target REDEFINES TARGET_F EQUAL fullIdent SEMICOLON {: IDENT:id {: fullIdentAcc.append(id.getAvatarName()); :}
theState.setVariable(stringAcc.toString()); | fulllIdent FOURPOINTS IDENT:id {: fullIdentAcc.append("." + id.getAvatarName()); :}
;
fullIdent ::= fullIdentInit fulllIdent {:
RESULT = fullIdentAcc.toString();
fullIdentAcc.setLength(0);
:}; :};
target ::= TARGET_F {: fullIdentInit ::= {:
stringAcc = new StringBuffer(); fullIdentAcc = new StringBuffer();
:}; :};
fullIdent ::=
IDENT:id {: stringAcc.append(id.getAvatarName()); :}
| fullIdent POINT IDENT:id {: stringAcc.append("." + id.getAvatarName()); :}
;
// RANDOM ACTION.......... // RANDOM ACTION..........
randomAction ::= randomAction ::=
STATEACTION_F COLON ASSIGNMENT_T REDEFINES STATEACTION_F LBRAC targetParam randomParam RBRAC STATEACTION_F REDEFINES STATEACTION_F LBRAC randomParam RBRAC
| STATEACTION_F COLON ASSIGNMENT_T REDEFINES STATEACTION_F LBRAC randomParam targetParam RBRAC
; ;
randomParam ::= VALUE_F REDEFINES VALUE_F EQUAL actionRandomExpr SEMICOLON; randomParam ::=
actionRandomExpr ::= FIRST START_U SEMICOLON THEN ASSIGN fullIdent:id GETS BOUNDRANDOM_U LPAR iexpr:i COMMA iexpr:a RPAR SEMICOLON THEN DONE_U SEMICOLON {:
BOUNDRANDOM_U LPAR iexpr:i COMMA iexpr:a RPAR {: theState.setVariable(id);
theState.setMinValue(i); theState.setMinValue(i);
theState.setMaxValue(a); theState.setMaxValue(a);
:} :}
; ;
// COUNT ACTION............ // COUNT ACTION............
countAction ::= countAction ::= STATEACTION_F REDEFINES STATEACTION_F LBRAC countParam RBRAC
STATEACTION_F COLON ASSIGNMENT_T REDEFINES STATEACTION_F LBRAC targetParam countParam RBRAC
| STATEACTION_F COLON ASSIGNMENT_T REDEFINES STATEACTION_F LBRAC countParam targetParam RBRAC
; ;
countParam ::= VALUE_F REDEFINES VALUE_F EQUAL IDENT:id POINT AMOUNT_U LPAR RPAR SEMICOLON {: countParam ::=
getSignal(theBlock.getName(),id.getAvatarName()); FIRST START_U SEMICOLON THEN ASSIGN fullIdent:tid GETS IDENT:id POINT AMOUNT_U LPAR RPAR SEMICOLON THEN DONE_U SEMICOLON {:
theState.setSignal(theSignal); theState.setVariable(tid);
getSignal(theBlock.getName(),id.getAvatarName());
theState.setSignal(theSignal);
:}; :};
// TRANSITIONS @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ // TRANSITIONS @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
...@@ -1946,20 +1946,13 @@ actionSeq ::= ...@@ -1946,20 +1946,13 @@ actionSeq ::=
| THEN act actionSeq | THEN act actionSeq
; ;
act ::= act ::=
assign:a fulllIdent:id GETS stxRvalue:v SEMICOLON:q {: ASSIGN:a fullIdent:id GETS stxRvalue:v SEMICOLON:q {:
actionList.add(new StxAction(axleft, qxright, id , v)); actionList.add(new StxAction(axleft, qxright, id , v));
:} :}
| ACTION:a EQUAL stxCall:c SEMICOLON:q {: | ACTION:a EQUAL stxCall:c SEMICOLON:q {:
actionList.add(new StxAction(axleft, qxright, c)); actionList.add(new StxAction(axleft, qxright, c));
:} :}
; ;
assign ::= ASSIGN {:
stringAcc = new StringBuffer();
:};
fulllIdent ::= fullIdent {:
RESULT = stringAcc.toString();
stringAcc.setLength(0);
:};
// RECEIVE TRANSITION ACTION LIST .......................... // RECEIVE TRANSITION ACTION LIST ..........................
...@@ -1975,9 +1968,9 @@ receiveAssignSeq ::= ...@@ -1975,9 +1968,9 @@ receiveAssignSeq ::=
receiveAssign THEN DONE_U SEMICOLON receiveAssign THEN DONE_U SEMICOLON
| receiveAssign receiveAssignSeq | receiveAssign receiveAssignSeq
; ;
receiveAssign ::= THEN:t assign fullIdent GETS MSG_U POINT IDENT:id SEMICOLON {: receiveAssign ::= THEN:t ASSIGN fullIdent:tgt GETS MSG_U POINT IDENT:id SEMICOLON {:
String test = receiveMap.get(id.getAvatarName()); String test = receiveMap.get(id.getAvatarName());
if (test == null) receiveMap.put(id.getAvatarName(),stringAcc.toString()); if (test == null) receiveMap.put(id.getAvatarName(),tgt);
else else
addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, txleft, addError(new AvatarFromSysMLError(AvatarFromSysMLError.ERROR, txleft,
"component " + id.getAvatarName() + " has already been assigned", null)); "component " + id.getAvatarName() + " has already been assigned", null));
...@@ -2070,42 +2063,43 @@ expr ::= ...@@ -2070,42 +2063,43 @@ expr ::=
// COMPLEX IDENT --------------------------- // COMPLEX IDENT ---------------------------
complexIdent ::= complexIdent ::=
IDENT:e {: RESULT = e.getAvatarName(); :} IDENT:e {: RESULT = e.getAvatarName(); :}
| IDENT:e POINT complexIdent:i {: RESULT = e.getAvatarName() + "." + i; :} | IDENT:e FOURPOINTS complexIdent:i {: RESULT = e.getAvatarName() + "." + i; :}
| IDENT:e POINT fullIdent:i {: RESULT = e.getAvatarName() + "." + i; :}
; ;
// METHOD CALL --------------------------- // METHOD CALL ---------------------------
stxCall ::= stxCall ::=
stxCallBegin:b RPAR:r {: stxCallBegin:b RPAR:r {:
theCall.addSegment(stringAcc.toString() + ")"); theCall.addSegment(exprIdentAcc.toString() + ")");
RESULT = theCall; RESULT.setLeft(bxleft); RESULT.setRight(rxright); RESULT = theCall; RESULT.setLeft(bxleft); RESULT.setRight(rxright);
:} :}
| stxCallBegin:b stxCallParams:l RPAR:r {: | stxCallBegin:b stxCallParams:l RPAR:r {:
theCall.addSegment(stringAcc.toString() + ")"); theCall.addSegment(exprIdentAcc.toString() + ")");
RESULT = theCall; RESULT.setLeft(bxleft); RESULT.setRight(rxright); RESULT = theCall; RESULT.setLeft(bxleft); RESULT.setRight(rxright);
:} :}
; ;
stxCallBegin ::= IDENT:i LPAR {: stxCallBegin ::= IDENT:i LPAR {:
theCall = new StxCall(); theCall = new StxCall();
stringAcc = new StringBuffer(i.getAvatarName() + "("); exprIdentAcc = new StringBuffer(i.getAvatarName() + "(");
:}; :};
stxCallParams ::= stxCallParam | stxCallParam comma stxCallParams; stxCallParams ::= stxCallParam | stxCallParam comma stxCallParams;
comma ::= COMMA {: stringAcc.append(", "); :} comma ::= COMMA {: exprIdentAcc.append(", "); :}
; ;
stxCallParam ::= stxCallParam ::=
expr:e {: stringAcc.append(e); :} expr:e {: exprIdentAcc.append(e); :}
| complexIdent:i {: | complexIdent:i {:
theCall.addSegment(stringAcc.toString()); theCall.addSegment(exprIdentAcc.toString());
theCall.addIdent(i); theCall.addIdent(i);
stringAcc.setLength(0); exprIdentAcc.setLength(0);
:} :}
| call | call
; ;
call ::= call ::=
callBegin RPAR {: stringAcc.append(")"); :} callBegin RPAR {: exprIdentAcc.append(")"); :}
| stxCallBegin stxCallParams:l RPAR {: stringAcc.append(")"); :} | stxCallBegin stxCallParams:l RPAR {: exprIdentAcc.append(")"); :}
; ;
callBegin ::= IDENT:i LPAR {: callBegin ::= IDENT:i LPAR {:
stringAcc.append(i.getAvatarName() + "("); exprIdentAcc.append(i.getAvatarName() + "(");
:}; :};
...@@ -178,7 +178,7 @@ timerBlockName = "'@tmr:" {AvIdent} "'" ...@@ -178,7 +178,7 @@ timerBlockName = "'@tmr:" {AvIdent} "'"
";" { return makeSymbol(#Symb.SEMICOLON); } ";" { return makeSymbol(#Symb.SEMICOLON); }
":" { return makeSymbol(#Symb.COLON); } ":" { return makeSymbol(#Symb.COLON); }
"." { return makeSymbol(#Symb.POINT); } "." { return makeSymbol(#Symb.POINT); }
"::" { return makeSymbol(#Symb.POINT); } "::" { return makeSymbol(#Symb.FOURPOINTS); }
"=" { return makeSymbol(#Symb.EQUAL); } "=" { return makeSymbol(#Symb.EQUAL); }
":=" { return makeSymbol(#Symb.GETS); } ":=" { return makeSymbol(#Symb.GETS); }
[\"][^\"]*[\"] { String s = yytext(); [\"][^\"]*[\"] { String s = yytext();
...@@ -196,7 +196,6 @@ timerBlockName = "'@tmr:" {AvIdent} "'" ...@@ -196,7 +196,6 @@ timerBlockName = "'@tmr:" {AvIdent} "'"
"'@delay'" { return makeSymbol(#Symb.DELAY_F); } "'@delay'" { return makeSymbol(#Symb.DELAY_F); }
"'@payload'" { return makeSymbol(#Symb.PAYLOAD_F); } "'@payload'" { return makeSymbol(#Symb.PAYLOAD_F); }
"'@channel'" { return makeSymbol(#Symb.CHANNEL_F); } "'@channel'" { return makeSymbol(#Symb.CHANNEL_F); }
"'@target'" { return makeSymbol(#Symb.TARGET_F); }
"'@value'" { return makeSymbol(#Symb.VALUE_F); } "'@value'" { return makeSymbol(#Symb.VALUE_F); }
"'@statemachine'" { return makeSymbol(#Symb.STATEMACHINE); } "'@statemachine'" { return makeSymbol(#Symb.STATEMACHINE); }
"'@set'" { return makeSymbol(#Symb.SET_TM); } "'@set'" { return makeSymbol(#Symb.SET_TM); }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment