diff --git a/src/main/java/avatartranslator/tosysmlv2/Avatar2SysML.java b/src/main/java/avatartranslator/tosysmlv2/Avatar2SysML.java index 1a2270533cce8a9d05b6bad1d07bae2f1d7761db..fe9331d684f05c9fda4794a9dc5fbb71503881c1 100644 --- a/src/main/java/avatartranslator/tosysmlv2/Avatar2SysML.java +++ b/src/main/java/avatartranslator/tosysmlv2/Avatar2SysML.java @@ -807,9 +807,9 @@ public class Avatar2SysML { if (delayDistributionLaw == DELAY_UNIFORM_LAW && probability == 1) return ";\n"; StringBuffer result = new StringBuffer(" {\n"); indent += indentStep; - result.append(indent + "attribute delayDistributionLaw : String = \"" + DISTRIBUTION_LAWS[delayDistributionLaw] + "\";\n"); + result.append(indent + "attribute '@delayDistributionLaw' : String = \"" + DISTRIBUTION_LAWS[delayDistributionLaw] + "\";\n"); if (probability != 1) - result.append(indent + "attribute weight : Real = " + probability + ";\n"); + result.append(indent + "attribute '@weight' : Real = " + probability + ";\n"); if (NB_OF_EXTRA_ATTRIBUTES[delayDistributionLaw] > 0) result.append(indent + "attribute '" + LABELS_OF_EXTRA_ATTRIBUTES_1[delayDistributionLaw] + "' : String = \"" + delayExtra1 + "\";\n"); diff --git a/src/main/java/avatartranslator/tosysmlv2/Avatar2SysMLNames.java b/src/main/java/avatartranslator/tosysmlv2/Avatar2SysMLNames.java index c273cd970cdac5493b6d07e0a624a67470eb51c0..8f64afeb46d6ae0a034850077fe85861b7a9c6f0 100644 --- a/src/main/java/avatartranslator/tosysmlv2/Avatar2SysMLNames.java +++ b/src/main/java/avatartranslator/tosysmlv2/Avatar2SysMLNames.java @@ -107,7 +107,7 @@ public class Avatar2SysMLNames { Avatar2SysMLParser parser = new Avatar2SysMLParser(new Avatar2SysMLLexer(new StringReader (_expr))); try { return (String)parser.parse().value; } catch (java.lang.Exception e) { return ""; } - } // TO IMPLEMENT + } } diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLSyntax.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLSyntax.java index d44569427d63bade0e1798f4d1bbc865b3cfbcd5..a7224d22116b507c44da030291e846e2fcce258e 100644 --- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLSyntax.java +++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysMLSyntax.java @@ -44,6 +44,29 @@ public class AvatarFromSysMLSyntax { public static final byte TIMERBLOCKNAME = 23; public static final byte QUOTEDNAME = 24; public static final byte AVATARNAME = 25; + public static final byte STXSTARTSTATE = 0; + public static final byte STXSTOPSTATE = 1; + public static final byte STXSTANDARDSTATE = 2; + public static final byte STXRANDOMSTATE = 3; + public static final byte STXCOUNTSTATE = 4; + public static final byte STXSENDSTATE = 5; + public static final byte STXRECEIVESTATE = 6; + public static final byte STXPRESENDSTATE = 7; + public static final byte STXPRERECEIVESTATE = 8; + public static final byte STXSETTIMERSTATE = 9; + public static final byte STXRESETTIMERSTATE = 10; + public static final byte STXEXPIRETIMERSTATE = 11; + public static final byte STXPRESETTIMERSTATE = 12; + public static final byte STXPRERESETTIMERSTATE = 13; + public static final byte STXPREEXPIRETIMERSTATE = 14; + public static final byte STXTRIVIALTRANSITION = 0; + public static final byte STXSENDTRANSITION = 1; + public static final byte STXRECEIVETRANSITION = 2; + public static final byte STXSETTIMERTRANSITION = 3; + public static final byte STXRESETTIMERTRANSITION = 4; + public static final byte STXEXPIRETIMERTRANSITION = 5; + public static final byte STXASSIGNACTION = 0; + public static final byte STXMETHODACTION = 1; /** idents collected while parsing an Avatar SysML Model */ public static class Ident { private byte type; @@ -444,11 +467,9 @@ public class AvatarFromSysMLSyntax { private HashMap<String,String> receivePayload; private String minDelay; private String maxDelay; + private double probability; private String delayDistributionLaw; - private String delayExtraNameA; - private String delayExtraNameB; - private String delayExtraValA; - private String delayExtraValB; + private HashMap<String,String> delayExtra; private StxState target; private ArrayList<StxAction> actions; public StxTransition(int _index){ @@ -456,15 +477,12 @@ public class AvatarFromSysMLSyntax { index = _index; guard = null; signal = null; - sendPayload = new ArrayList<String>(); - receivePayload = new HashMap<String,String>(); + sendPayload = null; + receivePayload = null; minDelay = null; maxDelay = null; delayDistributionLaw = null; - delayExtraNameA = null; - delayExtraNameB = null; - delayExtraValA = null; - delayExtraValB = null; + delayExtra = null; target = null; actions = new ArrayList<StxAction>(); } @@ -474,13 +492,11 @@ public class AvatarFromSysMLSyntax { public void setSendPayload(ArrayList<String> _p) { sendPayload = _p; } public void setReceivePayload(HashMap<String,String> _p) { receivePayload = _p; } public void setTimer(String _s) { timer = _s; } - public void setMinDelay(String _s) { minDelay = _s; } - public void setMaxDelay(String _s) { maxDelay = _s; } + public void setMinDelay(String _s) { minDelay = _s; } + public void setMaxDelay(String _s) { maxDelay = _s; } + public void setProbability(double _p) { probability = _p; } public void setDelayDistributionLaw(String _s) { delayDistributionLaw = _s; } - public void setDelayExtraNameA(String _s) { delayExtraNameA = _s; } - public void setDelayExtraNameB(String _s) { delayExtraNameB = _s; } - public void setDelayExtraValA(String _s) { delayExtraValA = _s; } - public void setDelayExtraValB(String _s) { delayExtraValB = _s; } + public void setDelayExtra(HashMap<String,String> _m) { delayExtra = _m; } public void setTarget(StxState _s) { target = _s; } public void setActions(ArrayList<StxAction> _a) { actions = _a; } public byte getType() { return type; } @@ -492,11 +508,9 @@ public class AvatarFromSysMLSyntax { public HashMap<String, String> getReceivePayload() { return receivePayload; } public String getMinDelay() { return minDelay; } public String getMaxDelay() { return maxDelay; } + public double getProbability() { return probability; } public String getDelayDistributionLaw() { return delayDistributionLaw; } - public String getDelayExtraNameA() { return delayExtraNameA; } - public String getDelayExtraNameB() { return delayExtraNameB; } - public String getDelayExtraValA() { return delayExtraValA; } - public String getDelayExtraValB() { return delayExtraValB; } + public HashMap<String,String> getDelayExtra() { return delayExtra; } public StxState getTarget() { return target; } public ArrayList<StxAction> getActions() { return actions; } } @@ -517,27 +531,32 @@ public class AvatarFromSysMLSyntax { public String getValue() { return value; } public String getTarget() { return target; } } - public static final byte STXSTARTSTATE = 0; - public static final byte STXSTOPSTATE = 1; - public static final byte STXSTANDARDSTATE = 2; - public static final byte STXRANDOMSTATE = 3; - public static final byte STXCOUNTSTATE = 4; - public static final byte STXSENDSTATE = 5; - public static final byte STXRECEIVESTATE = 6; - public static final byte STXPRESENDSTATE = 7; - public static final byte STXPRERECEIVESTATE = 8; - public static final byte STXSETTIMERSTATE = 9; - public static final byte STXRESETTIMERSTATE = 10; - public static final byte STXEXPIRETIMERSTATE = 11; - public static final byte STXPRESETTIMERSTATE = 12; - public static final byte STXPRERESETTIMERSTATE = 13; - public static final byte STXPREEXPIRETIMERSTATE = 14; - public static final byte STXTRIVIALTRANSITION = 0; - public static final byte STXSENDTRANSITION = 1; - public static final byte STXRECEIVETRANSITION = 2; - public static final byte STXSETTIMERTRANSITION = 3; - public static final byte STXRESETTIMERTRANSITION = 4; - public static final byte STXEXPIRETIMERTRANSITION = 5; - public static final byte STXASSIGNACTION = 0; - public static final byte STXMETHODACTION = 1; + public static class StxModel{ + private ArrayList<String> errors; + private HashMap<String,StxDataType> dataTypeMap; + private HashMap<String,StxRelation> relationMap; + private HashMap<String,StxChannel> channelMap; + private HashMap<String,StxBlock> blockMap; + private HashMap<String,StxSignal> signalMap; + private HashMap<String,StxInMessage> inMessageMap; + private HashMap<String,StxOutMessage> outMessageMap; + public StxModel( + ArrayList<String> _errors, + HashMap<String,StxDataType> _dataTypeMap, + HashMap<String,StxRelation> _relationMap, + HashMap<String,StxChannel> _channelMap, + HashMap<String,StxBlock> _blockMap, + HashMap<String,StxSignal> _signalMap, + HashMap<String,StxInMessage> _inMessageMap, + HashMap<String,StxOutMessage> _outMessageMap) { + errors = _errors; + dataTypeMap = _dataTypeMap; + relationMap = _relationMap; + channelMap = _channelMap; + blockMap = _blockMap; + signalMap = _signalMap; + inMessageMap = _inMessageMap; + outMessageMap = _outMessageMap; + } + } } diff --git a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup index 28a8a5b4fd3b07749b4b94946b6453e59ae37a5f..ea56871b9b8ad6eaf566bc96219a4e74e4da70b5 100644 --- a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup +++ b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jcup @@ -1,12 +1,17 @@ package avatartranslator.tosysmlv2; import java_cup.runtime.*; +import java_cup.runtime.ComplexSymbolFactory.*; import java.util.ArrayList; import java.util.HashMap; import avatartranslator.tosysmlv2.AvatarFromSysMLSyntax.*; parser code {: + public StxModel parseModel() { + try { return (StxModel) parse().value; } + catch (java.lang.Exception e) { return null; } + } LexerClassName lexer = (LexerClassName) getScanner(); private StringBuffer stringAcc = new StringBuffer(); private ArrayList<String> errors; @@ -111,13 +116,15 @@ parser code {: private ArrayList<String> argList; private ArrayList<StxAction> actionList; private HashMap<String,String> receiveMap; + HashMap<String,String> delayExtraMap = null; :} /* Terminals (tokens returned by the scanner). */ terminal Integer INT; terminal Boolean BOOL; -terminal String STRINGEXPR; +terminal String STRINGEXPR, STRING, ANYNAME; +terminal Double REAL; terminal EQ, LPAR, RPAR, LBRAC, RBRAC, COMMA, SEMICOLON, COLON, POINT, EQUAL, GETS; @@ -133,7 +140,7 @@ terminal RELATION_T, SYNCREL_T, BFIFOREL_T, NBFIFOREL_T, INMESSAGE_T, OUTMESSAG terminal NOKREQUEST_U, TRIVIALREQUEST_T, IMMEDIATEREQUEST_U, SENDREQUEST_T, RECEIVEREQUEST_T, MSG_U; // general -terminal ASSIGNMENT_T, BOUNDRANDOM_U, BOOLEAN_T, INTEGER_T; +terminal ASSIGNMENT_T, BOUNDRANDOM_U, BOOLEAN_T, INTEGER_T, STRING_T, REAL_T; // Blocks terminal AVDATATYPE_T, AVBLOCK_T, AVVOIDMETHOD_T, AVCALCMETHOD_T, AVSTANDARDSTATE_T, AVSTOPSTATE_T, AVSTARTSTATE_T, @@ -143,7 +150,7 @@ terminal AVDATATYPE_T, AVBLOCK_T, AVVOIDMETHOD_T, AVCALCMETHOD_T, AVSTANDARDSTA // Timers terminal AVSETTIMERSTATE_T, AVRESETTIMERSTATE_T, AVEXPIRETIMERSTATE_T, SETTIMERREQUEST_T, RESETTIMERREQUEST_T, EXPIRETIMERREQUEST_T, TIMERSETMSG_T, TIMERRESETMSG_T, TIMEREXPIREMSG_T, AVTIMER_T, SET_TM, - RESET_TM, EXPIRE_TM; + RESET_TM, EXPIRE_TM, DISTRIBUTION_A, WEIGHT_A; // Typed and untyped identifiers terminal Ident IDENT; @@ -162,8 +169,8 @@ terminal ABOUT, ABSTRACT, ACCEPT, ACTION, ACTOR, AFTER, ALIAS, ALL, ALLOCATE, AL /* Non terminals */ non terminal String typeIdent; - -non terminal model, featureList, feature, specializes, subsets, blockAlias, blockChain, datatypeDecl, datatypeDeclHEADER, +non terminal StxModel model; +non terminal featureList, feature, specializes, subsets, blockAlias, blockChain, datatypeDecl, datatypeDeclHEADER, fieldDecls, fieldDecl, relationDecl, syncRelDecl, nbfRelDecl, bfRelDecl, relParams, relParam, block1Param, block2Param, privateParam, maxsizeParam, lossyParam, typIdent, syncRelDeclBegin, nbfRelDeclBegin, bfRelDeclBegin; @@ -188,13 +195,23 @@ non terminal state, startState, standardState, stopState, sendState, receiveStat non terminal randomAction, targetParam, randomParam, countAction, countParam, transition, doActions, actionSeq, act, stringExprList, transitionBegin, transitionLabels, transitionAction, receiveAction, assign, - target, fullIdent, transitionActionBegin, receiveActionBegin, messageLine, receiveAssigns, receiveAssignSeq, receiveAssign; + target, fullIdent, transitionActionBegin, receiveActionBegin, messageLine, receiveAssigns, receiveAssignSeq, + receiveAssign, transitionLabel, distributionLabel, weightLabel, extraLabel; /* Precedences croissantes (probably useless for the current grammar) */ /* precedence left OR; precedence left AND; */ -model ::= PACKAGE IDENT LBRAC featureList RBRAC | PACKAGE IDENT LBRAC RBRAC; +model ::= + PACKAGE IDENT LBRAC featureList RBRAC {: + RESULT = + new StxModel(errors,dataTypeMap,relationMap,channelMap,blockMap,signalMap,inMessageMap,outMessageMap); + :} + | PACKAGE IDENT LBRAC RBRAC {: + RESULT = + new StxModel(errors,dataTypeMap,relationMap,channelMap,blockMap,signalMap,inMessageMap,outMessageMap); + :} +; @@ -251,6 +268,7 @@ syncRelDecl ::= syncRelDeclBegin relParams RPAR SEMICOLON {: :} ; syncRelDeclBegin ::= PART IDENT:id COLON SYNCREL_T EQUAL SYNCREL_T LPAR {: + Location l = idxleft; getRelation(id.getAvatarName()); theRelation.setAsynchronous(false); clearRelationParams(); @@ -814,13 +832,17 @@ transition ::= getState(id.getAvatarName()); theTransition.setTarget(theState); :} - | transitionBegin THEN IDENT:id LBRAC transitionLabels RBRAC {: + | transitionBegin THEN IDENT:id transitionLabels RBRAC {: getState(id.getAvatarName()); theTransition.setTarget(theState); + theTransition.setDelayExtra(delayExtraMap); + delayExtraMap = null; :} - | transitionBegin doActions THEN IDENT:id LBRAC transitionLabels RBRAC {: + | transitionBegin doActions THEN IDENT:id transitionLabels RBRAC {: getState(id.getAvatarName()); theTransition.setTarget(theState); + theTransition.setDelayExtra(delayExtraMap); + delayExtraMap = null; :} ; transitionBegin ::= @@ -885,3 +907,16 @@ receiveAssignSeq ::= receiveAssign ::= THEN assign fullIdent GETS MSG_U POINT IDENT:id SEMICOLON {: receiveMap.put(id.getAvatarName(),stringAcc.toString()); :}; +transitionLabels ::= transitionLabel | transitionLabel transitionLabels; +transitionLabel ::= distributionLabel | weightLabel | extraLabel; +distributionLabel ::= ATTRIBUTE DISTRIBUTION_A COLON STRING_T EQUAL STRING:s {: + theTransition.setDelayDistributionLaw(s); +:}; +weightLabel ::= ATTRIBUTE WEIGHT_A COLON STRING_T EQUAL REAL:r {: + theTransition.setProbability(r); +:}; +extraLabel ::= ATTRIBUTE ANYNAME:n COLON STRING_T EQUAL STRING:s {: + if (delayExtraMap == null) + delayExtraMap = new HashMap<String,String>(); + delayExtraMap.put(n,s); +:}; \ No newline at end of file diff --git a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jflex b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jflex index d8a63a12ae0994329d11cd0b8f449586c72ddba6..7e12df9205406b4f753ddb0fab5087683c3787ff 100644 --- a/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jflex +++ b/src/main/java/avatartranslator/tosysmlv2/javacup/AvatarFromSysML.jflex @@ -1,5 +1,6 @@ package avatartranslator.tosysmlv2; import java_cup.runtime.*; +import java_cup.runtime.ComplexSymbolFactory.*; import java.util.HashSet; import avatartranslator.tosysmlv2.AvatarFromSysMLSyntax.*; %% @@ -18,18 +19,18 @@ import avatartranslator.tosysmlv2.AvatarFromSysMLSyntax.*; %yylexthrow Exception %{ -// "+" { return new Symbol(#Symb.PLUS, yyline, yycolumn); } -// "-" { return new Symbol(#Symb.MINUS, yyline, yycolumn); } -// "*" { return new Symbol(#Symb.MULT, yyline, yycolumn); } -// "/" { return new Symbol(#Symb.DIV, yyline, yycolumn); } -// "%" { return new Symbol(#Symb.MOD, yyline, yycolumn); } -// "&" { return new Symbol(#Symb.AND, yyline, yycolumn); } -// "|" { return new Symbol(#Symb.OR, yyline, yycolumn); } -// "!=" { return new Symbol(#Symb.DIF, yyline, yycolumn); } -// "<" { return new Symbol(#Symb.LTsetStri, yyline, yycolumn); } -// ">" { return new Symbol(#Symb.GT, yyline, yycolumn); } -// "<=" { return new Symbol(#Symb.LEQ, yyline, yycolumn); } -// ">=" { return new Symbol(#Symb.GEQ, yyline, yycolumn); } +// "+" { return makeSymbol(#Symb.PLUS); } +// "-" { return makeSymbol(#Symb.MINUS); } +// "*" { return makeSymbol(#Symb.MULT); } +// "/" { return makeSymbol(#Symb.DIV); } +// "%" { return makeSymbol(#Symb.MOD); } +// "&" { return makeSymbol(#Symb.AND); } +// "|" { return makeSymbol(#Symb.OR); } +// "!=" { return makeSymbol(#Symb.DIF); } +// "<" { return makeSymbol(#Symb.LTsetStri); } +// ">" { return makeSymbol(#Symb.GT); } +// "<=" { return makeSymbol(#Symb.LEQ); } +// ">=" { return makeSymbol(#Symb.GEQ); } private boolean getStringValue = false; public void setGetStringValue(boolean _b) { getStringValue = _b; } @@ -58,10 +59,26 @@ import avatartranslator.tosysmlv2.AvatarFromSysMLSyntax.*; if (tokenKept) { tokenKept = false; return keptToken; } else return yylex(); } + ComplexSymbol makeSymbol(int id, Object val) { + return new ComplexSymbol( + #Symb.terminalNames[id], + id, + new Location(yyline, yycolumn), + new Location(yyline, yycolumn + yytext().length()), + val); + } + ComplexSymbol makeSymbol(int id) { + return new ComplexSymbol( + #Symb.terminalNames[id], + id, + new Location(yyline, yycolumn), + new Location(yyline, yycolumn + yytext().length())); + } %} Space = [\ \n\r\t\f] Natural = 0 | [1-9][0-9]* +Real = Natural "." 0* Natural AvIdent = ("_"[a-zA-Z0-9] | [a-zA-Z]) ("_"[a-zA-Z0-9] | [a-zA-Z0-9])* ("_")? dataTypeName = "'@dt:" AvIdent "'" @@ -105,18 +122,19 @@ timerBlockName = "'@tmr:" AvIdent "'" "\n" { yybegin(YYINITIAL); } } <GETSTRINGVALUE> { - [^;]+ { return new Symbol(#Symb.STRINGEXPR, yyline, yycolumn, yytext().trim()); } - ";" { getStringValue = false; yybegin(YYINITIAL); return new Symbol(#Symb.SEMICOLON, yyline, yycolumn); } + [^;]+ { return makeSymbol(#Symb.STRINGEXPR, yytext().trim()); } + ";" { getStringValue = false; yybegin(YYINITIAL); + return makeSymbol(#Symb.SEMICOLON); } } <GETCONDITION> { - [^?]+ { return new Symbol(#Symb.STRINGEXPR, yyline, yycolumn, yytext().trim()); } + [^?]+ { return makeSymbol(#Symb.STRINGEXPR, yytext().trim()); } "?" { yybegin(YYINITIAL); } } <GETDELAY> { {Space} {} "'#bound_random'" { yybegin(GETTUPLE); - return new Symbol(#Symb.BOUNDRANDOM_U, yyline, yycolumn); } + return makeSymbol(#Symb.BOUNDRANDOM_U); } "(" { stringExprAnchor(); stringAcc = new StringBuffer(); stringAcc.append(yytext()); @@ -133,23 +151,33 @@ timerBlockName = "'@tmr:" AvIdent "'" <GETTUPLE> { {Space} { } "(" { stringExprAnchor(); oneShotArg = false; stringAcc = new StringBuffer(); yybegin(GETARG); - return new Symbol(#Symb.LPAR, yyline, yycolumn); } + return makeSymbol(#Symb.LPAR); } } <GETARG> { [^(),]* { stringAcc.append(yytext()); } "(" { stringAcc.append(yytext()); nbLpar = 1; yybegin(SUBEXPR); } "," { java_cup.runtime.Symbol stringExpr = - new Symbol(#Symb.STRINGEXPR, stringExprLine, stringExprColumn, stringAcc.toString().trim()); + new ComplexSymbol( + #Symb.terminalNames[#Symb.STRINGEXPR], + #Symb.STRINGEXPR, + new Location(stringExprLine, stringExprColumn), + new Location(yyline, yycolumn), + stringAcc.toString().trim()); stringAcc = new StringBuffer(); stringExprAnchor(); - keepToken(new Symbol(#Symb.COMMA, yyline, yycolumn)); + keepToken(makeSymbol(#Symb.COMMA)); if (oneShotArg) yybegin(YYINITIAL); return stringExpr; } ")" { java_cup.runtime.Symbol stringExpr = - new Symbol(#Symb.STRINGEXPR, stringExprLine, stringExprColumn, stringAcc.toString().trim()); + new ComplexSymbol( + #Symb.terminalNames[#Symb.STRINGEXPR], + #Symb.STRINGEXPR, + new Location(stringExprLine, stringExprColumn), + new Location(yyline, yycolumn), + stringAcc.toString().trim()); stringAcc = new StringBuffer(); - keepToken(new Symbol(#Symb.RPAR, yyline, yycolumn)); + keepToken(makeSymbol(#Symb.RPAR)); yybegin(YYINITIAL); return stringExpr; } @@ -162,262 +190,271 @@ timerBlockName = "'@tmr:" AvIdent "'" <YYINITIAL> { {Space} {} "//" { yybegin(COMMENTLINE); } - {Natural} { try { return new Symbol(#Symb.INT, yyline, yycolumn, Integer.parseInt(yytext())); } + {Natural} { try { return makeSymbol(#Symb.INT, Integer.parseInt(yytext())); } catch (NumberFormatException nfe) { throw new Exception ("Lexer : Integer Format : " + yytext()); } } + {Real} { try { return makeSymbol(#Symb.REAL, Double.parseDouble(yytext())); } + catch (NumberFormatException nfe) { throw new Exception ("Lexer : Double Format : " + yytext()); } + } - "==" { return new Symbol(#Symb.EQ, yyline, yycolumn); } - "true" { return new Symbol(#Symb.BOOL, yyline, yycolumn, Boolean.TRUE); } - "false" { return new Symbol(#Symb.BOOL, yyline, yycolumn, Boolean.FALSE); } + "==" { return makeSymbol(#Symb.EQ); } + "true" { return makeSymbol(#Symb.BOOL, Boolean.TRUE); } + "false" { return makeSymbol(#Symb.BOOL, Boolean.FALSE); } "(" { if (payloadParam) { stringExprAnchor(); oneShotArg = false; stringAcc = new StringBuffer(); yybegin(GETARG); } - return new Symbol(#Symb.LPAR, yyline, yycolumn); } - ")" { return new Symbol(#Symb.RPAR, yyline, yycolumn); } - "{" { return new Symbol(#Symb.LBRAC, yyline, yycolumn); } - "}" { return new Symbol(#Symb.RBRAC, yyline, yycolumn); } - "," { return new Symbol(#Symb.COMMA, yyline, yycolumn); } - ";" { return new Symbol(#Symb.SEMICOLON, yyline, yycolumn); } - ":" { return new Symbol(#Symb.COLON, yyline, yycolumn); } - "." { return new Symbol(#Symb.POINT, yyline, yycolumn); } + return makeSymbol(#Symb.LPAR); } + ")" { return makeSymbol(#Symb.RPAR); } + "{" { return makeSymbol(#Symb.LBRAC); } + "}" { return makeSymbol(#Symb.RBRAC); } + "," { return makeSymbol(#Symb.COMMA); } + ";" { return makeSymbol(#Symb.SEMICOLON); } + ":" { return makeSymbol(#Symb.COLON); } + "." { return makeSymbol(#Symb.POINT); } "=" { if (delayParam == true) { yybegin(GETDELAY); delayParam = false; } - return new Symbol(#Symb.EQUAL, yyline, yycolumn); } + return makeSymbol(#Symb.EQUAL); } ":=" { if (getStringValue) yybegin(GETSTRINGVALUE); - return new Symbol(#Symb.GETS, yyline, yycolumn); } - - "'@lossy'" { return new Symbol(#Symb.LOSSY_F, yyline, yycolumn); } - "'@max_size'" { return new Symbol(#Symb.MAXSIZE_F, yyline, yycolumn); } - "'@private'" { return new Symbol(#Symb.PRIVATE_F, yyline, yycolumn); } - "'@relation'" { return new Symbol(#Symb.RELATION_F, yyline, yycolumn); } - "'@block1'" { return new Symbol(#Symb.BLOCK1_F, yyline, yycolumn); } - "'@block2'" { return new Symbol(#Symb.BLOCK2_F, yyline, yycolumn); } - "'@pool'" { return new Symbol(#Symb.POOL_F, yyline, yycolumn); } - "'@request'" { return new Symbol(#Symb.REQUEST_F, yyline, yycolumn); } - "'@state_action'" { return new Symbol(#Symb.STATEACTION_F, yyline, yycolumn); } - "'@index'" { return new Symbol(#Symb.INDEX_F, yyline, yycolumn); } - "'@delay'" { delayParam = true; return new Symbol(#Symb.DELAY_F, yyline, yycolumn); } - "'@payload'" { return new Symbol(#Symb.PAYLOAD_F, yyline, yycolumn); } - "'@channel'" { return new Symbol(#Symb.CHANNEL_F, yyline, yycolumn); } - "'@target'" { return new Symbol(#Symb.TARGET_F, yyline, yycolumn); } - "'@value'" { return new Symbol(#Symb.VALUE_F, yyline, yycolumn); } - - "'@statemachine'" { return new Symbol(#Symb.STATEMACHINE, yyline, yycolumn); } - "'@set'" { return new Symbol(#Symb.SET_TM, yyline, yycolumn); } - "'@reset'" { return new Symbol(#Symb.RESET_TM, yyline, yycolumn); } - "'@expire'" { return new Symbol(#Symb.EXPIRE_TM, yyline, yycolumn); } + return makeSymbol(#Symb.GETS); } + ["].*["] { String s = yytext(); + return makeSymbol(#Symb.STRING, s.substring(1, s.length() - 2)); } + "'@max_size'" { return makeSymbol(#Symb.MAXSIZE_F); } + "'@private'" { return makeSymbol(#Symb.PRIVATE_F); } + "'@relation'" { return makeSymbol(#Symb.RELATION_F); } + "'@block1'" { return makeSymbol(#Symb.BLOCK1_F); } + "'@block2'" { return makeSymbol(#Symb.BLOCK2_F); } + "'@pool'" { return makeSymbol(#Symb.POOL_F); } + "'@request'" { return makeSymbol(#Symb.REQUEST_F); } + "'@state_action'" { return makeSymbol(#Symb.STATEACTION_F); } + "'@index'" { return makeSymbol(#Symb.INDEX_F); } + "'@delay'" { delayParam = true; return makeSymbol(#Symb.DELAY_F); } + "'@payload'" { return makeSymbol(#Symb.PAYLOAD_F); } + "'@channel'" { return makeSymbol(#Symb.CHANNEL_F); } + "'@target'" { return makeSymbol(#Symb.TARGET_F); } + "'@value'" { return makeSymbol(#Symb.VALUE_F); } + "'@statemachine'" { return makeSymbol(#Symb.STATEMACHINE); } + "'@set'" { return makeSymbol(#Symb.SET_TM); } + "'@reset'" { return makeSymbol(#Symb.RESET_TM); } + "'@expire'" { return makeSymbol(#Symb.EXPIRE_TM); } + "'@delayDistributionLaw'" { return makeSymbol(#Symb.DISTRIBUTION_A); } + "'@weight'" { return makeSymbol(#Symb.WEIGHT_A); } - "'#Relation'" { return new Symbol(#Symb.RELATION_T, yyline, yycolumn); } - "'#Sync_Rel'" { return new Symbol(#Symb.SYNCREL_T, yyline, yycolumn); } - "'#Bfifo_Rel'" { return new Symbol(#Symb.BFIFOREL_T, yyline, yycolumn); } - "'#NBfifo_Rel'" { return new Symbol(#Symb.NBFIFOREL_T, yyline, yycolumn); } - "'#InMessage'" { return new Symbol(#Symb.INMESSAGE_T, yyline, yycolumn); } - "'#OutMessage'" { return new Symbol(#Symb.OUTMESSAGE_T, yyline, yycolumn); } - "'#Channel'" { return new Symbol(#Symb.CHANNEL_T, yyline, yycolumn); } - "'#Fifo'" { return new Symbol(#Symb.FIFO_T, yyline, yycolumn); } - "'#Bfifo'" { return new Symbol(#Symb.BFIFO_T, yyline, yycolumn); } - "'#NBfifo'" { return new Symbol(#Symb.NBFIFO_T, yyline, yycolumn); } - "'#Sync'" { return new Symbol(#Symb.SYNC_T, yyline, yycolumn); } - "'#InSignalBinding'" { return new Symbol(#Symb.INSIGNALBINDING_T, yyline, yycolumn); } - "'#OutSignalBinding'" { return new Symbol(#Symb.OUTSIGNALBINDING_T, yyline, yycolumn); } + "'#Relation'" { return makeSymbol(#Symb.RELATION_T); } + "'#Sync_Rel'" { return makeSymbol(#Symb.SYNCREL_T); } + "'#Bfifo_Rel'" { return makeSymbol(#Symb.BFIFOREL_T); } + "'#NBfifo_Rel'" { return makeSymbol(#Symb.NBFIFOREL_T); } + "'#InMessage'" { return makeSymbol(#Symb.INMESSAGE_T); } + "'#OutMessage'" { return makeSymbol(#Symb.OUTMESSAGE_T); } + "'#Channel'" { return makeSymbol(#Symb.CHANNEL_T); } + "'#Fifo'" { return makeSymbol(#Symb.FIFO_T); } + "'#Bfifo'" { return makeSymbol(#Symb.BFIFO_T); } + "'#NBfifo'" { return makeSymbol(#Symb.NBFIFO_T); } + "'#Sync'" { return makeSymbol(#Symb.SYNC_T); } + "'#InSignalBinding'" { return makeSymbol(#Symb.INSIGNALBINDING_T); } + "'#OutSignalBinding'" { return makeSymbol(#Symb.OUTSIGNALBINDING_T); } - "'start'" { return new Symbol(#Symb.START_U, yyline, yycolumn); } - "'done'" { return new Symbol(#Symb.DONE_U, yyline, yycolumn); } - "start" { return new Symbol(#Symb.START_U, yyline, yycolumn); } - "done" { return new Symbol(#Symb.DONE_U, yyline, yycolumn); } - "'@amount'" { return new Symbol(#Symb.AMOUNT_U, yyline, yycolumn); } - "'#nok_request'" { return new Symbol(#Symb.NOKREQUEST_U, yyline, yycolumn); } - "'#TrivialRequest'" { return new Symbol(#Symb.TRIVIALREQUEST_T, yyline, yycolumn); } - "'#immediate_request'" { return new Symbol(#Symb.IMMEDIATEREQUEST_U, yyline, yycolumn); } - "'#SendRequest'" { return new Symbol(#Symb.SENDREQUEST_T, yyline, yycolumn); } - "'#ReceiveRequest'" { return new Symbol(#Symb.RECEIVEREQUEST_T, yyline, yycolumn); } - "'@msg'" { return new Symbol(#Symb.MSG_U, yyline, yycolumn); } + "'start'" { return makeSymbol(#Symb.START_U); } + "'done'" { return makeSymbol(#Symb.DONE_U); } + "start" { return makeSymbol(#Symb.START_U); } + "done" { return makeSymbol(#Symb.DONE_U); } + "'@amount'" { return makeSymbol(#Symb.AMOUNT_U); } + "'#nok_request'" { return makeSymbol(#Symb.NOKREQUEST_U); } + "'#TrivialRequest'" { return makeSymbol(#Symb.TRIVIALREQUEST_T); } + "'#immediate_request'" { return makeSymbol(#Symb.IMMEDIATEREQUEST_U); } + "'#SendRequest'" { return makeSymbol(#Symb.SENDREQUEST_T); } + "'#ReceiveRequest'" { return makeSymbol(#Symb.RECEIVEREQUEST_T); } + "'@msg'" { return makeSymbol(#Symb.MSG_U); } - "'#AvatarDataType'" { return new Symbol(#Symb.AVDATATYPE_T, yyline, yycolumn); } - "'#AvatarBlock'" { return new Symbol(#Symb.AVBLOCK_T, yyline, yycolumn); } - "'#AvatarVoidMethod'" { return new Symbol(#Symb.AVVOIDMETHOD_T, yyline, yycolumn); } - "'#AvatarCalcMethod'" { return new Symbol(#Symb.AVCALCMETHOD_T, yyline, yycolumn); } - "'#AvatarStandardState'" { return new Symbol(#Symb.AVSTANDARDSTATE_T, yyline, yycolumn); } - "'#AvatarStopState'" { return new Symbol(#Symb.AVSTOPSTATE_T, yyline, yycolumn); } - "'#AvatarStartState'" { return new Symbol(#Symb.AVSTARTSTATE_T, yyline, yycolumn); } - "'#AvatarSendState'" { return new Symbol(#Symb.AVSENDSTATE_T, yyline, yycolumn); } - "'#AvatarReceiveState'" { return new Symbol(#Symb.AVRECEIVESTATE_T, yyline, yycolumn); } - "'#AvatarRandomState'" { return new Symbol(#Symb.AVRANDOMSTATE_T, yyline, yycolumn); } - "'#AvatarCountState'" { return new Symbol(#Symb.AVCOUNTSTATE_T, yyline, yycolumn); } - "'#AvatarPreSendState'" { return new Symbol(#Symb.AVPRESENDSTATE_T, yyline, yycolumn); } - "'#AvatarPreReceiveState'" { return new Symbol(#Symb.AVPRERECEIVESTATE_T, yyline, yycolumn); } - "'#AvatarTransition'" { return new Symbol(#Symb.AVTRANSITION_T, yyline, yycolumn); } - "'#AvatarStateMachine'" { return new Symbol(#Symb.AVSTATEMACHINE_T, yyline, yycolumn); } - "'#ReceiveAction'" { return new Symbol(#Symb.RECEIVEACTION_T, yyline, yycolumn); } - "'#TransitionAction'" { return new Symbol(#Symb.TRANSITIONACTION_T, yyline, yycolumn); } + "'#AvatarDataType'" { return makeSymbol(#Symb.AVDATATYPE_T); } + "'#AvatarBlock'" { return makeSymbol(#Symb.AVBLOCK_T); } + "'#AvatarVoidMethod'" { return makeSymbol(#Symb.AVVOIDMETHOD_T); } + "'#AvatarCalcMethod'" { return makeSymbol(#Symb.AVCALCMETHOD_T); } + "'#AvatarStandardState'" { return makeSymbol(#Symb.AVSTANDARDSTATE_T); } + "'#AvatarStopState'" { return makeSymbol(#Symb.AVSTOPSTATE_T); } + "'#AvatarStartState'" { return makeSymbol(#Symb.AVSTARTSTATE_T); } + "'#AvatarSendState'" { return makeSymbol(#Symb.AVSENDSTATE_T); } + "'#AvatarReceiveState'" { return makeSymbol(#Symb.AVRECEIVESTATE_T); } + "'#AvatarRandomState'" { return makeSymbol(#Symb.AVRANDOMSTATE_T); } + "'#AvatarCountState'" { return makeSymbol(#Symb.AVCOUNTSTATE_T); } + "'#AvatarPreSendState'" { return makeSymbol(#Symb.AVPRESENDSTATE_T); } + "'#AvatarPreReceiveState'" { return makeSymbol(#Symb.AVPRERECEIVESTATE_T); } + "'#AvatarTransition'" { return makeSymbol(#Symb.AVTRANSITION_T); } + "'#AvatarStateMachine'" { return makeSymbol(#Symb.AVSTATEMACHINE_T); } + "'#ReceiveAction'" { return makeSymbol(#Symb.RECEIVEACTION_T); } + "'#TransitionAction'" { return makeSymbol(#Symb.TRANSITIONACTION_T); } - "'#AvatarSetTimerState'" { return new Symbol(#Symb.AVSETTIMERSTATE_T, yyline, yycolumn); } - "'#AvatarResetTimerState'" { return new Symbol(#Symb.AVRESETTIMERSTATE_T, yyline, yycolumn); } - "'#AvatarExpireTimerState'" { return new Symbol(#Symb.AVEXPIRETIMERSTATE_T, yyline, yycolumn); } - "'#AvatarSetTimerRequest'" { return new Symbol(#Symb.SETTIMERREQUEST_T, yyline, yycolumn); } - "'#AvatarResetTimerRequest'" { return new Symbol(#Symb.RESETTIMERREQUEST_T, yyline, yycolumn); } - "'#AvatarExpireTimerRequest'" { return new Symbol(#Symb.EXPIRETIMERREQUEST_T, yyline, yycolumn); } - "'#TimerSetMsg'" { return new Symbol(#Symb.TIMERSETMSG_T, yyline, yycolumn); } - "'#TimerResetMsg'" { return new Symbol(#Symb.TIMERRESETMSG_T, yyline, yycolumn); } - "'#TimerExpireMsg'" { return new Symbol(#Symb.TIMEREXPIREMSG_T, yyline, yycolumn); } - "'#AvatarTimer'" { return new Symbol(#Symb.AVTIMER_T, yyline, yycolumn); } + "'#AvatarSetTimerState'" { return makeSymbol(#Symb.AVSETTIMERSTATE_T); } + "'#AvatarResetTimerState'" { return makeSymbol(#Symb.AVRESETTIMERSTATE_T); } + "'#AvatarExpireTimerState'" { return makeSymbol(#Symb.AVEXPIRETIMERSTATE_T); } + "'#AvatarSetTimerRequest'" { return makeSymbol(#Symb.SETTIMERREQUEST_T); } + "'#AvatarResetTimerRequest'" { return makeSymbol(#Symb.RESETTIMERREQUEST_T); } + "'#AvatarExpireTimerRequest'" { return makeSymbol(#Symb.EXPIRETIMERREQUEST_T); } + "'#TimerSetMsg'" { return makeSymbol(#Symb.TIMERSETMSG_T); } + "'#TimerResetMsg'" { return makeSymbol(#Symb.TIMERRESETMSG_T); } + "'#TimerExpireMsg'" { return makeSymbol(#Symb.TIMEREXPIREMSG_T); } + "'#AvatarTimer'" { return makeSymbol(#Symb.AVTIMER_T); } - "'#Assignment'" { return new Symbol(#Symb.ASSIGNMENT_T, yyline, yycolumn); } - "'#bound_random'" { yybegin(GETTUPLE); return new Symbol(#Symb.BOUNDRANDOM_U, yyline, yycolumn); } - "Integer" { return new Symbol(#Symb.BOOLEAN_T, yyline, yycolumn); } - "Boolean" { return new Symbol(#Symb.INTEGER_T, yyline, yycolumn); } + "'#Assignment'" { return makeSymbol(#Symb.ASSIGNMENT_T); } + "'#bound_random'" { yybegin(GETTUPLE); return makeSymbol(#Symb.BOUNDRANDOM_U); } + "Integer" { return makeSymbol(#Symb.BOOLEAN_T); } + "Boolean" { return makeSymbol(#Symb.INTEGER_T); } + "String" { return makeSymbol(#Symb.STRING_T); } + "Real" { return makeSymbol(#Symb.REAL_T); } - "about" { return new Symbol(#Symb.ABOUT, yyline, yycolumn); } - "abstract" { return new Symbol(#Symb.ABSTRACT, yyline, yycolumn); } - "accept" { return new Symbol(#Symb.ACCEPT, yyline, yycolumn); } - "action" { return new Symbol(#Symb.ACTION, yyline, yycolumn); } - "actor" { return new Symbol(#Symb.ACTOR, yyline, yycolumn); } - "after" { return new Symbol(#Symb.AFTER, yyline, yycolumn); } - "alias" { return new Symbol(#Symb.ALIAS, yyline, yycolumn); } - "all" { return new Symbol(#Symb.ALL, yyline, yycolumn); } - "allocate" { return new Symbol(#Symb.ALLOCATE, yyline, yycolumn); } - "allocation" { return new Symbol(#Symb.ALLOCATION, yyline, yycolumn); } - "analysis" { return new Symbol(#Symb.ANALYSIS, yyline, yycolumn); } - "and" { return new Symbol(#Symb.AND, yyline, yycolumn); } - "as" { return new Symbol(#Symb.AS, yyline, yycolumn); } - "assert" { return new Symbol(#Symb.ASSERT, yyline, yycolumn); } - "assign" { return new Symbol(#Symb.ASSIGN, yyline, yycolumn); } - "assoc" { return new Symbol(#Symb.ASSOC, yyline, yycolumn); } - "assume" { return new Symbol(#Symb.ASSUME, yyline, yycolumn); } - "at" { return new Symbol(#Symb.AT, yyline, yycolumn); } - "attribute" { return new Symbol(#Symb.ATTRIBUTE, yyline, yycolumn); } - "bind" { return new Symbol(#Symb.BIND, yyline, yycolumn); } - "binding" { return new Symbol(#Symb.BINDING, yyline, yycolumn); } - "block" { return new Symbol(#Symb.BLOCK, yyline, yycolumn); } - "by" { return new Symbol(#Symb.BY, yyline, yycolumn); } - "calc" { return new Symbol(#Symb.CALC, yyline, yycolumn); } - "case" { return new Symbol(#Symb.CASE, yyline, yycolumn); } - "comment" { return new Symbol(#Symb.COMMENT, yyline, yycolumn); } - "concern" { return new Symbol(#Symb.CONCERN, yyline, yycolumn); } - "connect" { return new Symbol(#Symb.CONNECT, yyline, yycolumn); } - "connection" { return new Symbol(#Symb.CONNECTION, yyline, yycolumn); } - "constraint" { return new Symbol(#Symb.CONSTRAINT, yyline, yycolumn); } - "decide" { return new Symbol(#Symb.DECIDE, yyline, yycolumn); } - "def" { return new Symbol(#Symb.DEF, yyline, yycolumn); } - "default" { return new Symbol(#Symb.DEFAULT, yyline, yycolumn); } - "defined" { return new Symbol(#Symb.DEFINED, yyline, yycolumn); } - "dependency" { return new Symbol(#Symb.DEPENDENCY, yyline, yycolumn); } - "derived" { return new Symbol(#Symb.DERIVED, yyline, yycolumn); } - "do" { return new Symbol(#Symb.DO, yyline, yycolumn); } - "doc" { return new Symbol(#Symb.DOC, yyline, yycolumn); } - "else" { return new Symbol(#Symb.ELSE, yyline, yycolumn); } - "end" { return new Symbol(#Symb.END, yyline, yycolumn); } - "entry" { return new Symbol(#Symb.ENTRY, yyline, yycolumn); } - "enum" { return new Symbol(#Symb.ENUM, yyline, yycolumn); } - "event" { return new Symbol(#Symb.EVENT, yyline, yycolumn); } - "exhibit" { return new Symbol(#Symb.EXHIBIT, yyline, yycolumn); } - "exit" { return new Symbol(#Symb.EXIT, yyline, yycolumn); } - "expose" { return new Symbol(#Symb.EXPOSE, yyline, yycolumn); } - "filter" { return new Symbol(#Symb.FILTER, yyline, yycolumn); } - "first" { return new Symbol(#Symb.FIRST, yyline, yycolumn); } - "flow" { return new Symbol(#Symb.FLOW, yyline, yycolumn); } - "for" { return new Symbol(#Symb.FOR, yyline, yycolumn); } - "fork" { return new Symbol(#Symb.FORK, yyline, yycolumn); } - "frame" { return new Symbol(#Symb.FRAME, yyline, yycolumn); } - "from" { return new Symbol(#Symb.FROM, yyline, yycolumn); } - "hastype" { return new Symbol(#Symb.HASTYPE, yyline, yycolumn); } - "if" { yybegin(GETCONDITION); return new Symbol(#Symb.IF, yyline, yycolumn); } - "implies" { return new Symbol(#Symb.IMPLIES, yyline, yycolumn); } - "import" { return new Symbol(#Symb.IMPORT, yyline, yycolumn); } - "in" { return new Symbol(#Symb.IN, yyline, yycolumn); } - "include" { return new Symbol(#Symb.INCLUDE, yyline, yycolumn); } - "individual" { return new Symbol(#Symb.INDIVIDUAL, yyline, yycolumn); } - "inout" { return new Symbol(#Symb.INOUT, yyline, yycolumn); } - "interface" { return new Symbol(#Symb.INTERFACE, yyline, yycolumn); } - "istype" { return new Symbol(#Symb.ISTYPE, yyline, yycolumn); } - "item" { return new Symbol(#Symb.ITEM, yyline, yycolumn); } - "join" { return new Symbol(#Symb.JOIN, yyline, yycolumn); } - "language" { return new Symbol(#Symb.LANGUAGE, yyline, yycolumn); } - "loop" { return new Symbol(#Symb.LOOP, yyline, yycolumn); } - "merge" { return new Symbol(#Symb.MERGE, yyline, yycolumn); } - "message" { return new Symbol(#Symb.MESSAGE, yyline, yycolumn); } - "metadata" { return new Symbol(#Symb.METADATA, yyline, yycolumn); } - "nonunique" { return new Symbol(#Symb.NONUNIQUE, yyline, yycolumn); } - "not" { return new Symbol(#Symb.NOT, yyline, yycolumn); } - "objective" { return new Symbol(#Symb.OBJECTIVE, yyline, yycolumn); } - "occurrence" { return new Symbol(#Symb.OCCURRENCE, yyline, yycolumn); } - "of" { return new Symbol(#Symb.OF, yyline, yycolumn); } - "or" { return new Symbol(#Symb.OR, yyline, yycolumn); } - "ordered" { return new Symbol(#Symb.ORDERED, yyline, yycolumn); } - "out" { return new Symbol(#Symb.OUT, yyline, yycolumn); } - "package" { return new Symbol(#Symb.PACKAGE, yyline, yycolumn); } - "parallel" { return new Symbol(#Symb.PARALLEL, yyline, yycolumn); } - "part" { return new Symbol(#Symb.PART, yyline, yycolumn); } - "perform" { return new Symbol(#Symb.PERFORM, yyline, yycolumn); } - "port" { return new Symbol(#Symb.PORT, yyline, yycolumn); } - "private" { return new Symbol(#Symb.PRIVATE, yyline, yycolumn); } - "protected" { return new Symbol(#Symb.PROTECTED, yyline, yycolumn); } - "public" { return new Symbol(#Symb.PUBLIC, yyline, yycolumn); } - "readonly" { return new Symbol(#Symb.READONLY, yyline, yycolumn); } - "redefines" { return new Symbol(#Symb.REDEFINES, yyline, yycolumn); } - "ref" { return new Symbol(#Symb.REF, yyline, yycolumn); } - "references" { return new Symbol(#Symb.REFERENCES, yyline, yycolumn); } - "render" { return new Symbol(#Symb.RENDER, yyline, yycolumn); } - "rendering" { return new Symbol(#Symb.RENDERING, yyline, yycolumn); } - "rep" { return new Symbol(#Symb.REP, yyline, yycolumn); } - "require" { return new Symbol(#Symb.REQUIRE, yyline, yycolumn); } - "requirement" { return new Symbol(#Symb.REQUIREMENT, yyline, yycolumn); } - "return" { return new Symbol(#Symb.RETURN, yyline, yycolumn); } - "satisfy" { return new Symbol(#Symb.SATISFY, yyline, yycolumn); } - "send" { return new Symbol(#Symb.SEND, yyline, yycolumn); } - "snapshot" { return new Symbol(#Symb.SNAPSHOT, yyline, yycolumn); } - "specializes" { return new Symbol(#Symb.SPECIALIZES, yyline, yycolumn); } - ":>" { return new Symbol(#Symb.REFINES, yyline, yycolumn); } - "stakeholder" { return new Symbol(#Symb.STAKEHOLDER, yyline, yycolumn); } - "state" { return new Symbol(#Symb.STATE, yyline, yycolumn); } - "subject" { return new Symbol(#Symb.SUBJECT, yyline, yycolumn); } - "subsets" { return new Symbol(#Symb.SUBSETS, yyline, yycolumn); } - "succession" { return new Symbol(#Symb.SUCCESSION, yyline, yycolumn); } - "then" { return new Symbol(#Symb.THEN, yyline, yycolumn); } - "timeslice" { return new Symbol(#Symb.TIMESLICE, yyline, yycolumn); } - "to" { return new Symbol(#Symb.TO, yyline, yycolumn); } - "transition" { return new Symbol(#Symb.TRANSITION, yyline, yycolumn); } - "until" { return new Symbol(#Symb.UNTIL, yyline, yycolumn); } - "use" { return new Symbol(#Symb.USE, yyline, yycolumn); } - "variant" { return new Symbol(#Symb.VARIANT, yyline, yycolumn); } - "variation" { return new Symbol(#Symb.VARIATION, yyline, yycolumn); } - "verification" { return new Symbol(#Symb.VERIFICATION, yyline, yycolumn); } - "verify" { return new Symbol(#Symb.VERIFY, yyline, yycolumn); } - "via" { return new Symbol(#Symb.VIA, yyline, yycolumn); } - "view" { return new Symbol(#Symb.VIEW, yyline, yycolumn); } - "viewpoint" { return new Symbol(#Symb.VIEWPOINT, yyline, yycolumn); } - "when" { return new Symbol(#Symb.WHEN, yyline, yycolumn); } - "while" { return new Symbol(#Symb.WHILE, yyline, yycolumn); } - "xor" { return new Symbol(#Symb.XOR, yyline, yycolumn); } + "about" { return makeSymbol(#Symb.ABOUT); } + "abstract" { return makeSymbol(#Symb.ABSTRACT); } + "accept" { return makeSymbol(#Symb.ACCEPT); } + "action" { return makeSymbol(#Symb.ACTION); } + "actor" { return makeSymbol(#Symb.ACTOR); } + "after" { return makeSymbol(#Symb.AFTER); } + "alias" { return makeSymbol(#Symb.ALIAS); } + "all" { return makeSymbol(#Symb.ALL); } + "allocate" { return makeSymbol(#Symb.ALLOCATE); } + "allocation" { return makeSymbol(#Symb.ALLOCATION); } + "analysis" { return makeSymbol(#Symb.ANALYSIS); } + "and" { return makeSymbol(#Symb.AND); } + "as" { return makeSymbol(#Symb.AS); } + "assert" { return makeSymbol(#Symb.ASSERT); } + "assign" { return makeSymbol(#Symb.ASSIGN); } + "assoc" { return makeSymbol(#Symb.ASSOC); } + "assume" { return makeSymbol(#Symb.ASSUME); } + "at" { return makeSymbol(#Symb.AT); } + "attribute" { return makeSymbol(#Symb.ATTRIBUTE); } + "bind" { return makeSymbol(#Symb.BIND); } + "binding" { return makeSymbol(#Symb.BINDING); } + "block" { return makeSymbol(#Symb.BLOCK); } + "by" { return makeSymbol(#Symb.BY); } + "calc" { return makeSymbol(#Symb.CALC); } + "case" { return makeSymbol(#Symb.CASE); } + "comment" { return makeSymbol(#Symb.COMMENT); } + "concern" { return makeSymbol(#Symb.CONCERN); } + "connect" { return makeSymbol(#Symb.CONNECT); } + "connection" { return makeSymbol(#Symb.CONNECTION); } + "constraint" { return makeSymbol(#Symb.CONSTRAINT); } + "decide" { return makeSymbol(#Symb.DECIDE); } + "def" { return makeSymbol(#Symb.DEF); } + "default" { return makeSymbol(#Symb.DEFAULT); } + "defined" { return makeSymbol(#Symb.DEFINED); } + "dependency" { return makeSymbol(#Symb.DEPENDENCY); } + "derived" { return makeSymbol(#Symb.DERIVED); } + "do" { return makeSymbol(#Symb.DO); } + "doc" { return makeSymbol(#Symb.DOC); } + "else" { return makeSymbol(#Symb.ELSE); } + "end" { return makeSymbol(#Symb.END); } + "entry" { return makeSymbol(#Symb.ENTRY); } + "enum" { return makeSymbol(#Symb.ENUM); } + "event" { return makeSymbol(#Symb.EVENT); } + "exhibit" { return makeSymbol(#Symb.EXHIBIT); } + "exit" { return makeSymbol(#Symb.EXIT); } + "expose" { return makeSymbol(#Symb.EXPOSE); } + "filter" { return makeSymbol(#Symb.FILTER); } + "first" { return makeSymbol(#Symb.FIRST); } + "flow" { return makeSymbol(#Symb.FLOW); } + "for" { return makeSymbol(#Symb.FOR); } + "fork" { return makeSymbol(#Symb.FORK); } + "frame" { return makeSymbol(#Symb.FRAME); } + "from" { return makeSymbol(#Symb.FROM); } + "hastype" { return makeSymbol(#Symb.HASTYPE); } + "if" { yybegin(GETCONDITION); return makeSymbol(#Symb.IF); } + "implies" { return makeSymbol(#Symb.IMPLIES); } + "import" { return makeSymbol(#Symb.IMPORT); } + "in" { return makeSymbol(#Symb.IN); } + "include" { return makeSymbol(#Symb.INCLUDE); } + "individual" { return makeSymbol(#Symb.INDIVIDUAL); } + "inout" { return makeSymbol(#Symb.INOUT); } + "interface" { return makeSymbol(#Symb.INTERFACE); } + "istype" { return makeSymbol(#Symb.ISTYPE); } + "item" { return makeSymbol(#Symb.ITEM); } + "join" { return makeSymbol(#Symb.JOIN); } + "language" { return makeSymbol(#Symb.LANGUAGE); } + "loop" { return makeSymbol(#Symb.LOOP); } + "merge" { return makeSymbol(#Symb.MERGE); } + "message" { return makeSymbol(#Symb.MESSAGE); } + "metadata" { return makeSymbol(#Symb.METADATA); } + "nonunique" { return makeSymbol(#Symb.NONUNIQUE); } + "not" { return makeSymbol(#Symb.NOT); } + "objective" { return makeSymbol(#Symb.OBJECTIVE); } + "occurrence" { return makeSymbol(#Symb.OCCURRENCE); } + "of" { return makeSymbol(#Symb.OF); } + "or" { return makeSymbol(#Symb.OR); } + "ordered" { return makeSymbol(#Symb.ORDERED); } + "out" { return makeSymbol(#Symb.OUT); } + "package" { return makeSymbol(#Symb.PACKAGE); } + "parallel" { return makeSymbol(#Symb.PARALLEL); } + "part" { return makeSymbol(#Symb.PART); } + "perform" { return makeSymbol(#Symb.PERFORM); } + "port" { return makeSymbol(#Symb.PORT); } + "private" { return makeSymbol(#Symb.PRIVATE); } + "protected" { return makeSymbol(#Symb.PROTECTED); } + "public" { return makeSymbol(#Symb.PUBLIC); } + "readonly" { return makeSymbol(#Symb.READONLY); } + "redefines" { return makeSymbol(#Symb.REDEFINES); } + "ref" { return makeSymbol(#Symb.REF); } + "references" { return makeSymbol(#Symb.REFERENCES); } + "render" { return makeSymbol(#Symb.RENDER); } + "rendering" { return makeSymbol(#Symb.RENDERING); } + "rep" { return makeSymbol(#Symb.REP); } + "require" { return makeSymbol(#Symb.REQUIRE); } + "requirement" { return makeSymbol(#Symb.REQUIREMENT); } + "return" { return makeSymbol(#Symb.RETURN); } + "satisfy" { return makeSymbol(#Symb.SATISFY); } + "send" { return makeSymbol(#Symb.SEND); } + "snapshot" { return makeSymbol(#Symb.SNAPSHOT); } + "specializes" { return makeSymbol(#Symb.SPECIALIZES); } + ":>" { return makeSymbol(#Symb.REFINES); } + "stakeholder" { return makeSymbol(#Symb.STAKEHOLDER); } + "state" { return makeSymbol(#Symb.STATE); } + "subject" { return makeSymbol(#Symb.SUBJECT); } + "subsets" { return makeSymbol(#Symb.SUBSETS); } + "succession" { return makeSymbol(#Symb.SUCCESSION); } + "then" { return makeSymbol(#Symb.THEN); } + "timeslice" { return makeSymbol(#Symb.TIMESLICE); } + "to" { return makeSymbol(#Symb.TO); } + "transition" { return makeSymbol(#Symb.TRANSITION); } + "until" { return makeSymbol(#Symb.UNTIL); } + "use" { return makeSymbol(#Symb.USE); } + "variant" { return makeSymbol(#Symb.VARIANT); } + "variation" { return makeSymbol(#Symb.VARIATION); } + "verification" { return makeSymbol(#Symb.VERIFICATION); } + "verify" { return makeSymbol(#Symb.VERIFY); } + "via" { return makeSymbol(#Symb.VIA); } + "view" { return makeSymbol(#Symb.VIEW); } + "viewpoint" { return makeSymbol(#Symb.VIEWPOINT); } + "when" { return makeSymbol(#Symb.WHEN); } + "while" { return makeSymbol(#Symb.WHILE); } + "xor" { return makeSymbol(#Symb.XOR); } - {dataTypeName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.DATATYPENAME,yytext())); } - {blockName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.BLOCKNAME,yytext())); } - {attributeName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.ATTRIBUTENAME,yytext())); } - {relationName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.RELATIONNAME,yytext())); } - {channelPreName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.CHANNELPRENAME,yytext())); } - {signalName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.SIGNALNAME,yytext())); } - {channelName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.CHANNELNAME,yytext())); } - {messageName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.MESSAGENAME,yytext())); } - {startStateName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.CHANNELPRENAME,yytext())); } - {stopStateName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.STARTSTATENAME,yytext())); } - {standardStateName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.STANDARDSTATENAME,yytext())); } - {randomStateName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.RANDOMSTATENAME,yytext())); } - {countStateName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.COUNTSTATENAME,yytext())); } - {sendStateName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.SENDSTATENAME,yytext())); } - {receiveStateName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.RECEIVESTATENAME,yytext())); } - {presendStateName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.PRESENDSTATENAME,yytext())); } - {prereceiveStateName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.PRERECEIVESTATENAME,yytext())); } - {setTimerStateName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.SETTIMERSTATENAME,yytext())); } - {resetTimerStateName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.RESETTIMERSTATENAME,yytext())); } - {expireTimerStateName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.EXPIRETIMERSTATENAME,yytext())); } - {presetTimerStateName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.PRESETTIMERSTATENAME,yytext())); } - {preresetTimerStateName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.PRERESETTIMERSTATENAME,yytext())); } - {preexpireTimerStateName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.PREEXPIRETIMERSTATENAME,yytext())); } - {timerBlockName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.TIMERBLOCKNAME,yytext())); } - {fieldName} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.QUOTEDNAME,yytext())); } - {AvIdent} { return new Symbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.AVATARNAME,yytext())); } + {dataTypeName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.DATATYPENAME,yytext())); } + {blockName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.BLOCKNAME,yytext())); } + {attributeName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.ATTRIBUTENAME,yytext())); } + {relationName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.RELATIONNAME,yytext())); } + {channelPreName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.CHANNELPRENAME,yytext())); } + {signalName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.SIGNALNAME,yytext())); } + {channelName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.CHANNELNAME,yytext())); } + {messageName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.MESSAGENAME,yytext())); } + {startStateName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.CHANNELPRENAME,yytext())); } + {stopStateName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.STARTSTATENAME,yytext())); } + {standardStateName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.STANDARDSTATENAME,yytext())); } + {randomStateName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.RANDOMSTATENAME,yytext())); } + {countStateName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.COUNTSTATENAME,yytext())); } + {sendStateName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.SENDSTATENAME,yytext())); } + {receiveStateName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.RECEIVESTATENAME,yytext())); } + {presendStateName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.PRESENDSTATENAME,yytext())); } + {prereceiveStateName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.PRERECEIVESTATENAME,yytext())); } + {setTimerStateName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.SETTIMERSTATENAME,yytext())); } + {resetTimerStateName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.RESETTIMERSTATENAME,yytext())); } + {expireTimerStateName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.EXPIRETIMERSTATENAME,yytext())); } + {presetTimerStateName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.PRESETTIMERSTATENAME,yytext())); } + {preresetTimerStateName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.PRERESETTIMERSTATENAME,yytext())); } + {preexpireTimerStateName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.PREEXPIRETIMERSTATENAME,yytext())); } + {timerBlockName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.TIMERBLOCKNAME,yytext())); } + {fieldName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.QUOTEDNAME,yytext())); } + {AvIdent} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.AVATARNAME,yytext())); } + "'"{AvIdent}"'" { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.AVATARNAME,yytext())); } + "'"(.+)"'" { String s = yytext(); + return makeSymbol(#Symb.ANYNAME, s.substring(1, s.length() - 2)); } } diff --git a/src/main/java/avatartranslator/tosysmlv2/javacup/compile2 b/src/main/java/avatartranslator/tosysmlv2/javacup/compile2 index 0318b82e9601a03d2cf535ea2e484b14b36c5654..201a4c905743869e202f03345ae10063c1d8fcc0 100755 --- a/src/main/java/avatartranslator/tosysmlv2/javacup/compile2 +++ b/src/main/java/avatartranslator/tosysmlv2/javacup/compile2 @@ -13,7 +13,7 @@ jflex __${LEXER_CLASS}__.jflex rm __${LEXER_CLASS}__.jflex __${LEXER_CLASS}2__.jflex sed "s/LexerClassName/$LEXER_CLASS/g" $JAVACUP_FILE > __${PARSER_CLASS}__.jcup -java-cup -nonterms -parser $PARSER_CLASS -symbols $SYMBOL_CLASS __${PARSER_CLASS}__.jcup +java-cup -locations -nonterms -parser $PARSER_CLASS -symbols $SYMBOL_CLASS __${PARSER_CLASS}__.jcup rm __${PARSER_CLASS}__.jcup *~ mv $LEXER_CLASS.java $PARSER_CLASS.java $SYMBOL_CLASS.java ..