Skip to content
Snippets Groups Projects
AvatarFromSysML.jflex 22.4 KiB
Newer Older
package avatartranslator.fromsmlv2;
import java_cup.runtime.*;
import java.util.HashSet;

%%

%class AvatarSysmlLex

%public
%unicode
%cup
Sophie Coudert's avatar
Sophie Coudert committed
%line
%column

%eofval{
   return new java_cup.runtime.Symbol(AvatarSysmlLex#symb.EOF);
%eofval}

%yylexthrow Exception

%{
Sophie Coudert's avatar
Sophie Coudert committed
//  "+"            { return new Symbol(XX#Symb.PLUS, yyline, yycolumn); }
//  "-"            { return new Symbol(XX#Symb.MINUS, yyline, yycolumn); }
//  "*"            { return new Symbol(XX#Symb.MULT, yyline, yycolumn); }
//  "/"            { return new Symbol(XX#Symb.DIV, yyline, yycolumn); }
//  "%"            { return new Symbol(XX#Symb.MOD, yyline, yycolumn); }
//  "&"            { return new Symbol(XX#Symb.AND, yyline, yycolumn); }
//  "|"            { return new Symbol(XX#Symb.OR, yyline, yycolumn); }
//  "!="           { return new Symbol(XX#Symb.DIF, yyline, yycolumn); }
//  "<"            { return new Symbol(XX#Symb.LT, yyline, yycolumn); }
//  ">"            { return new Symbol(XX#Symb.GT, yyline, yycolumn); }
//  "<="           { return new Symbol(XX#Symb.LEQ, yyline, yycolumn); }
//  ">="           { return new Symbol(XX#Symb.GEQ, yyline, yycolumn); }

Sophie Coudert's avatar
Sophie Coudert committed
    private boolean getstringexpr = true;
    public setStringExpr(boolean _b)  { getstringexpr = _b; }
%}

Space = [\ \n\r\t\f]
Natural = 0 | [1-9][0-9]*

AvIdent = ("_"[a-zA-Z0-9] | [a-zA-Z])   ("_"[a-zA-Z0-9] | [a-zA-Z0-9])*    ("_")?
dataTypeName = "'@dt:" AvIdent "'"
blockName = "'@blk:" AvIdent "'"
attributeName = "'$" AvIdent "'"
fieldName = "'" AvIdent "'"
relationName = ("'@BF" | "'@NBF" | "'@SYN") Natural ":" AvIdent "-" AvIdent "'"
channelPreName = AvIdent "." AvIdent (">"|"<") AvIdent "." AvIdent
signalName = "'@sig:" AvIdent "'"
Sophie Coudert's avatar
Sophie Coudert committed
channelName = ("'@syn" | "'@bf" | "'@nbf") ":" channelPreName "'"
messageName = "'@MSG:" AvIdent "." AvIdent "'"
startStateName = "'@st:start'"
stopStateName = "'@st:stop'"
standardStateName = "'@st:standard." AvIdent "'"
randomStateName = "'@st:random." Natural "'"
countStateName = "'@st:count." AvIdent "." Natural "'"
sendStateName = "'@st:send." AvIdent "." Natural "'"
receiveStateName = "'@st:receive." AvIdent "." Natural "'"
presendStateName = "'@st:presend." AvIdent "." Natural "'"
prereceiveStateName = "'@st:prereceive." AvIdent "." Natural "'"
setTimerStateName = "'@st:set." AvIdent "." Natural "'"
resetTimerStateName = "'@st:reset." AvIdent "." Natural "'"
expireTimerStateName = "'@st:expire." AvIdent "." Natural "'"
presetTimerStateName = "'@st:preset." AvIdent "." Natural "'"
preresetTimerStateName = "'@st:prereset." AvIdent "." Natural "'"
preexpireTimerStateName = "'@st:preexpire." AvIdent "." Natural "'"
timerBlockName = "'@tmr:" AvIdent "'"

Sophie Coudert's avatar
Sophie Coudert committed
%state COMMENTLINE
Sophie Coudert's avatar
Sophie Coudert committed
%state GETEXPR

%%

Sophie Coudert's avatar
Sophie Coudert committed
<COMMENTLINE> {
 [^\n\r]+                   { }
 "\n"                       { yybegin(YYINITIAL); }
}
Sophie Coudert's avatar
Sophie Coudert committed
<GETEXPR> {
 [^;]+ { return new Symbol(XX#Symb.STRINGEXPR, yyline, yycolumn, yytext()); }
 ";"   { yybegin(YYINITIAL); return new Symbol(XX#Symb.COLON, yyline, yycolumn); }
}

Sophie Coudert's avatar
Sophie Coudert committed
<YYINITIAL> {
 {Space}        {}
 "//"           { yybegin(COMMENTLINE); }
 {Natural}      { try { return new Symbol(XX#Symb.INT, yyline, yycolumn, Integer.parseInt(yytext())); }
                  catch (NumberFormatException nfe) { throw new Exception ("Lexer : Integer Format : " + yytext()); }
                }
Sophie Coudert's avatar
Sophie Coudert committed

 "=="            { return new Symbol(XX#Symb.EQ, yyline, yycolumn); }
Sophie Coudert's avatar
Sophie Coudert committed
 "true"          { return new Symbol(XX#Symb.BOOL, yyline, yycolumn, TRUE); }
 "false"         { return new Symbol(XX#Symb.BOOL, yyline, yycolumn, FALSE); }
Sophie Coudert's avatar
Sophie Coudert committed
  "("            { return new Symbol(XX#Symb.LPAR, yyline, yycolumn); }
  ")"            { return new Symbol(XX#Symb.RPAR, yyline, yycolumn); }
  "{"            { return new Symbol(XX#Symb.LBRAC, yyline, yycolumn); }
  "}"            { return new Symbol(XX#Symb.RBRAC, yyline, yycolumn); }
  ","            { return new Symbol(XX#Symb.COMMA, yyline, yycolumn); }
  ";"            { return new Symbol(XX#Symb.SEMICOLON, yyline, yycolumn); }
  ":"            { return new Symbol(XX#Symb.COLON, yyline, yycolumn); }
  "."            { return new Symbol(XX#Symb.POINT, yyline, yycolumn); }
  "="            { return new Symbol(XX#Symb.EQUAL, yyline, yycolumn); }
Sophie Coudert's avatar
Sophie Coudert committed
  ":="           { if (getstringexpr) yybegin(GETEXPR);
                   return new Symbol(XX#Symb.GETS, yyline, yycolumn); }
Sophie Coudert's avatar
Sophie Coudert committed

  "'@lossy'"        { return new Symbol(XX#Symb.LOSSY_F, yyline, yycolumn); }
  "'@max_size'"     { return new Symbol(XX#Symb.MAXSIZE_F, yyline, yycolumn); }
  "'@private'"      { return new Symbol(XX#Symb.PRIVATE_F, yyline, yycolumn); }
  "'@relation'"     { return new Symbol(XX#Symb.RELATION_F, yyline, yycolumn); }
  "'@block1'"       { return new Symbol(XX#Symb.BLOCK1_F, yyline, yycolumn); }
  "'@block2'"       { return new Symbol(XX#Symb.BLOCK2_F, yyline, yycolumn); }
  "'@pool'"         { return new Symbol(XX#Symb.POOL_F, yyline, yycolumn); }
  "'@request'"      { return new Symbol(XX#Symb.REQUEST_F, yyline, yycolumn); }
  "'@state_action'" { return new Symbol(XX#Symb.STATEACTION_F, yyline, yycolumn); }
  "'@index'"        { return new Symbol(XX#Symb.INDEX_F, yyline, yycolumn); }
  "'@payload'"      { return new Symbol(XX#Symb.PAYLOAD_F, yyline, yycolumn); }
  "'@channel'"      { return new Symbol(XX#Symb.CHANNEL_F, yyline, yycolumn); }
Sophie Coudert's avatar
Sophie Coudert committed
  "'target'"        { return new Symbol(XX#Symb.TARGET_F, yyline, yycolumn); }
  "'value'"         { return new Symbol(XX#Symb.VALUE_F, yyline, yycolumn); }
  "target"          { return new Symbol(XX#Symb.TARGET_F, yyline, yycolumn); }
  "value"           { return new Symbol(XX#Symb.VALUE_F, yyline, yycolumn); }
Sophie Coudert's avatar
Sophie Coudert committed

Sophie Coudert's avatar
Sophie Coudert committed
  "'@statemachine'" { return new Symbol(XX#Symb.STATEMACHINE, yyline, yycolumn); }
  "'@set'"          { return new Symbol(XX#Symb.SET_TM, yyline, yycolumn); }
  "'@reset'"        { return new Symbol(XX#Symb.RESET_TM, yyline, yycolumn); }
  "'@expire'"       { return new Symbol(XX#Symb.EXPIRE_TM, yyline, yycolumn); }
Sophie Coudert's avatar
Sophie Coudert committed
  "'#Relation'"    { return new Symbol(XX#Symb.RELATION_T, yyline, yycolumn); }
  "'#Sync_Rel'"    { return new Symbol(XX#Symb.SYNCREL_T, yyline, yycolumn); }
  "'#Bfifo_Rel'"   { return new Symbol(XX#Symb.BFIFOREL_T, yyline, yycolumn); }
  "'#NBfifo_Rel'"  { return new Symbol(XX#Symb.NBFIFOREL_T, yyline, yycolumn); }
  "'#InMessage'"   { return new Symbol(XX#Symb.INMESSAGE_T, yyline, yycolumn); }
  "'#OutMessage'"  { return new Symbol(XX#Symb.OUTMESSAGE_T, yyline, yycolumn); }
  "'#Channel'"     { return new Symbol(XX#Symb.CHANNEL_T, yyline, yycolumn); }
  "'#Fifo'"        { return new Symbol(XX#Symb.FIFO_T, yyline, yycolumn); }
  "'#Bfifo'"       { return new Symbol(XX#Symb.BFIFO_T, yyline, yycolumn); }
  "'#NBfifo'"      { return new Symbol(XX#Symb.NBFIFO_T, yyline, yycolumn); }
  "'#Sync'"        { return new Symbol(XX#Symb.SYNC_T, yyline, yycolumn); }
Sophie Coudert's avatar
Sophie Coudert committed
  "'#InSignalBinding'"  { return new Symbol(XX#Symb.INSIGNALBINDING_T, yyline, yycolumn); }
  "'#OutSignalBinding'" { return new Symbol(XX#Symb.OUTSIGNALBINDING_T, yyline, yycolumn); }
Sophie Coudert's avatar
Sophie Coudert committed

Sophie Coudert's avatar
Sophie Coudert committed
  "'start'"               { return new Symbol(XX#Symb.START_U, yyline, yycolumn); }
  "'done'"                { return new Symbol(XX#Symb.DONE_U, yyline, yycolumn); }
  "start"                 { return new Symbol(XX#Symb.START_U, yyline, yycolumn); }
  "done"                  { return new Symbol(XX#Symb.DONE_U, yyline, yycolumn); }
  "'amount'"              { return new Symbol(XX#Symb.AMOUNT_U, yyline, yycolumn); }
  "amount"                { return new Symbol(XX#Symb.AMOUNT_U, yyline, yycolumn); }
Sophie Coudert's avatar
Sophie Coudert committed
  "'#nok_request'"        { return new Symbol(XX#Symb.NOKREQUEST_U, yyline, yycolumn); }
  "'#TrivialRequest'"     { return new Symbol(XX#Symb.TRIVIALREQUEST_T, yyline, yycolumn); }
  "'#immediate_request'"  { return new Symbol(XX#Symb.IMMEDIATEREQUEST_U, yyline, yycolumn); }
  "'#SendRequest'"        { return new Symbol(XX#Symb.SENDREQUEST_T, yyline, yycolumn); }
  "'#ReceiveRequest'"     { return new Symbol(XX#Symb.RECEIVEREQUEST_T, yyline, yycolumn); }

  "'#AvatarDataType'"  { return new Symbol(XX#Symb.AVDATATYPE_T, yyline, yycolumn); }
  "'#AvatarBlock'"  { return new Symbol(XX#Symb.AVBLOCK_T, yyline, yycolumn); }
  "'#AvatarVoidMethod'"  { return new Symbol(XX#Symb.AVVOIDMETHOD_T, yyline, yycolumn); }
  "'#AvatarCalcMethod'"  { return new Symbol(XX#Symb.AVCALCMETHOD_T, yyline, yycolumn); }
  "'#AvatarStandardState'"  { return new Symbol(XX#Symb.AVSTANDARDSTATE_T, yyline, yycolumn); }
  "'#AvatarStopState'"  { return new Symbol(XX#Symb.AVSTOPSTATE_T, yyline, yycolumn); }
  "'#AvatarStartState'"  { return new Symbol(XX#Symb.AVSTARTSTATE_T, yyline, yycolumn); }
  "'#AvatarSendState'"  { return new Symbol(XX#Symb.AVSENDSTATE_T, yyline, yycolumn); }
  "'#AvatarReceiveState'"  { return new Symbol(XX#Symb.AVRECEIVESTATE_T, yyline, yycolumn); }
  "'#AvatarRandomState'"  { return new Symbol(XX#Symb.AVRANDOMSTATE_T, yyline, yycolumn); }
  "'#AvatarCountState'"  { return new Symbol(XX#Symb.AVCOUNTSTATE_T, yyline, yycolumn); }
  "'#AvatarPreSendState'"  { return new Symbol(XX#Symb.AVPRESENDSTATE_T, yyline, yycolumn); }
  "'#AvatarPreReceiveState'"  { return new Symbol(XX#Symb.AVPRERECEIVESTATE_T, yyline, yycolumn); }
  "'#AvatarTransition'"  { return new Symbol(XX#Symb.AVTRANSITION_T, yyline, yycolumn); }
  "'#AvatarStateMachine'"  { return new Symbol(XX#Symb.AVSTATEMACHINE_T, yyline, yycolumn); }
  "'#ReceiveAction'"  { return new Symbol(XX#Symb.RECEIVEACTION_T, yyline, yycolumn); }
  "'#TransitionAction'"  { return new Symbol(XX#Symb.TRANSITIONACTION_T, yyline, yycolumn); }

  "'#AvatarSetTimerState'"  { return new Symbol(XX#Symb.AVSETTIMERSTATE_T, yyline, yycolumn); }
  "'#AvatarResetTimerState'"  { return new Symbol(XX#Symb.AVRESETTIMERSTATE_T, yyline, yycolumn); }
  "'#AvatarExpireTimerState'"  { return new Symbol(XX#Symb.AVEXPIRETIMERSTATE_T, yyline, yycolumn); }
Sophie Coudert's avatar
Sophie Coudert committed
  "'#AvatarSetTimerRequest'"  { return new Symbol(XX#Symb.SETTIMERREQUEST_T, yyline, yycolumn); }
  "'#AvatarResetTimerRequest'"  { return new Symbol(XX#Symb.RESETTIMERREQUEST_T, yyline, yycolumn); }
  "'#AvatarExpireTimerRequest'"  { return new Symbol(XX#Symb.EXPIRETIMEREQUEST_T, yyline, yycolumn); }
Sophie Coudert's avatar
Sophie Coudert committed
  "'#TimerSetMsg'"  { return new Symbol(XX#Symb.TIMERSETMSG_T, yyline, yycolumn); }
  "'#TimerResetMsg'"  { return new Symbol(XX#Symb.TIMERRESETMSG_T, yyline, yycolumn); }
  "'#TimerExpireMsg'"  { return new Symbol(XX#Symb.TIMEREXPIREMSG_T, yyline, yycolumn); }
  "'#AvatarTimer'"  { return new Symbol(XX#Symb.AVTIMER_T, yyline, yycolumn); }

  "'#Assignment'"  { return new Symbol(XX#Symb.ASSIGNMENT_T, yyline, yycolumn); }
  "'#bound_random'"   { return new Symbol(XX#Symb.BOUNDRANDOM_U, yyline, yycolumn); }
  "Integer"          { return new Symbol(XX#Symb.BOOLEAN_T, yyline, yycolumn); }
  "Boolean"          { return new Symbol(XX#Symb.INTEGER_T, yyline, yycolumn); }

  "about"            { return new Symbol(XX#Symb.ABOUT, yyline, yycolumn); }
  "abstract"         { return new Symbol(XX#Symb.ABSTRACT, yyline, yycolumn); }
  "accept"           { return new Symbol(XX#Symb.ACCEPT, yyline, yycolumn); }
  "action"           { return new Symbol(XX#Symb.ACTION, yyline, yycolumn); }
  "actor"            { return new Symbol(XX#Symb.ACTOR, yyline, yycolumn); }
  "after"            { return new Symbol(XX#Symb.AFTER, yyline, yycolumn); }
  "alias"            { return new Symbol(XX#Symb.ALIAS, yyline, yycolumn); }
  "all"              { return new Symbol(XX#Symb.ALL, yyline, yycolumn); }
  "allocate"         { return new Symbol(XX#Symb.ALLOCATE, yyline, yycolumn); }
  "allocation"       { return new Symbol(XX#Symb.ALLOCATION, yyline, yycolumn); }
  "analysis"         { return new Symbol(XX#Symb.ANALYSIS, yyline, yycolumn); }
  "and"              { return new Symbol(XX#Symb.AND, yyline, yycolumn); }
  "as"               { return new Symbol(XX#Symb.AS, yyline, yycolumn); }
  "assert"           { return new Symbol(XX#Symb.ASSERT, yyline, yycolumn); }
  "assign"           { return new Symbol(XX#Symb.ASSIGN, yyline, yycolumn); }
  "assoc"            { return new Symbol(XX#Symb.ASSOC, yyline, yycolumn); }
  "assume"           { return new Symbol(XX#Symb.ASSUME, yyline, yycolumn); }
  "at"               { return new Symbol(XX#Symb.AT, yyline, yycolumn); }
  "attribute"        { return new Symbol(XX#Symb.ATTRIBUTE, yyline, yycolumn); }
  "bind"             { return new Symbol(XX#Symb.BIND, yyline, yycolumn); }
  "binding"          { return new Symbol(XX#Symb.BINDING, yyline, yycolumn); }
  "block"            { return new Symbol(XX#Symb.BLOCK, yyline, yycolumn); }
  "by"               { return new Symbol(XX#Symb.BY, yyline, yycolumn); }
  "calc"             { return new Symbol(XX#Symb.CALC, yyline, yycolumn); }
  "case"             { return new Symbol(XX#Symb.CASE, yyline, yycolumn); }
  "comment"          { return new Symbol(XX#Symb.COMMENT, yyline, yycolumn); }
  "concern"          { return new Symbol(XX#Symb.CONCERN, yyline, yycolumn); }
  "connect"          { return new Symbol(XX#Symb.CONNECT, yyline, yycolumn); }
  "connection"       { return new Symbol(XX#Symb.CONNECTION, yyline, yycolumn); }
  "constraint"       { return new Symbol(XX#Symb.CONSTRAINT, yyline, yycolumn); }
  "decide"           { return new Symbol(XX#Symb.DECIDE, yyline, yycolumn); }
  "def"              { return new Symbol(XX#Symb.DEF, yyline, yycolumn); }
  "default"          { return new Symbol(XX#Symb.DEFAULT, yyline, yycolumn); }
  "defined"          { return new Symbol(XX#Symb.DEFINED, yyline, yycolumn); }
  "dependency"       { return new Symbol(XX#Symb.DEPENDENCY, yyline, yycolumn); }
  "derived"          { return new Symbol(XX#Symb.DERIVED, yyline, yycolumn); }
  "do"               { return new Symbol(XX#Symb.DO, yyline, yycolumn); }
  "doc"              { return new Symbol(XX#Symb.DOC, yyline, yycolumn); }
  "else"             { return new Symbol(XX#Symb.ELSE, yyline, yycolumn); }
  "end"              { return new Symbol(XX#Symb.END, yyline, yycolumn); }
  "entry"            { return new Symbol(XX#Symb.ENTRY, yyline, yycolumn); }
  "enum"             { return new Symbol(XX#Symb.ENUM, yyline, yycolumn); }
  "event"            { return new Symbol(XX#Symb.EVENT, yyline, yycolumn); }
  "exhibit"          { return new Symbol(XX#Symb.EXHIBIT, yyline, yycolumn); }
  "exit"             { return new Symbol(XX#Symb.EXIT, yyline, yycolumn); }
  "expose"           { return new Symbol(XX#Symb.EXPOSE, yyline, yycolumn); }
  "filter"           { return new Symbol(XX#Symb.FILTER, yyline, yycolumn); }
  "first"            { return new Symbol(XX#Symb.FIRST, yyline, yycolumn); }
  "flow"             { return new Symbol(XX#Symb.FLOW, yyline, yycolumn); }
  "for"              { return new Symbol(XX#Symb.FOR, yyline, yycolumn); }
  "fork"             { return new Symbol(XX#Symb.FORK, yyline, yycolumn); }
  "frame"            { return new Symbol(XX#Symb.FRAME, yyline, yycolumn); }
  "from"             { return new Symbol(XX#Symb.FROM, yyline, yycolumn); }
  "hastype"          { return new Symbol(XX#Symb.HASTYPE, yyline, yycolumn); }
  "if"               { return new Symbol(XX#Symb.IF, yyline, yycolumn); }
  "implies"          { return new Symbol(XX#Symb.IMPLIES, yyline, yycolumn); }
  "import"           { return new Symbol(XX#Symb.IMPORT, yyline, yycolumn); }
  "in"               { return new Symbol(XX#Symb.IN, yyline, yycolumn); }
  "include"          { return new Symbol(XX#Symb.INCLUDE, yyline, yycolumn); }
  "individual"       { return new Symbol(XX#Symb.INDIVIDUAL, yyline, yycolumn); }
  "inout"            { return new Symbol(XX#Symb.INOUT, yyline, yycolumn); }
  "interface"        { return new Symbol(XX#Symb.INTERFACE, yyline, yycolumn); }
  "istype"           { return new Symbol(XX#Symb.ISTYPE, yyline, yycolumn); }
  "item"             { return new Symbol(XX#Symb.ITEM, yyline, yycolumn); }
  "join"             { return new Symbol(XX#Symb.JOIN, yyline, yycolumn); }
  "language"         { return new Symbol(XX#Symb.LANGUAGE, yyline, yycolumn); }
  "loop"             { return new Symbol(XX#Symb.LOOP, yyline, yycolumn); }
  "merge"            { return new Symbol(XX#Symb.MERGE, yyline, yycolumn); }
  "message"          { return new Symbol(XX#Symb.MESSAGE, yyline, yycolumn); }
  "metadata"         { return new Symbol(XX#Symb.METADATA, yyline, yycolumn); }
  "nonunique"        { return new Symbol(XX#Symb.NONUNIQUE, yyline, yycolumn); }
  "not"              { return new Symbol(XX#Symb.NOT, yyline, yycolumn); }
  "objective"        { return new Symbol(XX#Symb.OBJECTIVE, yyline, yycolumn); }
  "occurrence"       { return new Symbol(XX#Symb.OCCURRENCE, yyline, yycolumn); }
  "of"               { return new Symbol(XX#Symb.OF, yyline, yycolumn); }
  "or"               { return new Symbol(XX#Symb.OR, yyline, yycolumn); }
  "ordered"          { return new Symbol(XX#Symb.ORDERED, yyline, yycolumn); }
  "out"              { return new Symbol(XX#Symb.OUT, yyline, yycolumn); }
  "package"          { return new Symbol(XX#Symb.PACKAGE, yyline, yycolumn); }
  "parallel"         { return new Symbol(XX#Symb.PARALLEL, yyline, yycolumn); }
  "part"             { return new Symbol(XX#Symb.PART, yyline, yycolumn); }
  "perform"          { return new Symbol(XX#Symb.PERFORM, yyline, yycolumn); }
  "port"             { return new Symbol(XX#Symb.PORT, yyline, yycolumn); }
  "private"          { return new Symbol(XX#Symb.PRIVATE, yyline, yycolumn); }
  "protected"        { return new Symbol(XX#Symb.PROTECTED, yyline, yycolumn); }
  "public"           { return new Symbol(XX#Symb.PUBLIC, yyline, yycolumn); }
  "readonly"         { return new Symbol(XX#Symb.READONLY, yyline, yycolumn); }
  "redefines"        { return new Symbol(XX#Symb.REDEFINES, yyline, yycolumn); }
  "ref"              { return new Symbol(XX#Symb.REF, yyline, yycolumn); }
  "references"       { return new Symbol(XX#Symb.REFERENCES, yyline, yycolumn); }
  "render"           { return new Symbol(XX#Symb.RENDER, yyline, yycolumn); }
  "rendering"        { return new Symbol(XX#Symb.RENDERING, yyline, yycolumn); }
  "rep"              { return new Symbol(XX#Symb.REP, yyline, yycolumn); }
  "require"          { return new Symbol(XX#Symb.REQUIRE, yyline, yycolumn); }
  "requirement"      { return new Symbol(XX#Symb.REQUIREMENT, yyline, yycolumn); }
  "return"           { return new Symbol(XX#Symb.RETURN, yyline, yycolumn); }
  "satisfy"          { return new Symbol(XX#Symb.SATISFY, yyline, yycolumn); }
  "send"             { return new Symbol(XX#Symb.SEND, yyline, yycolumn); }
  "snapshot"         { return new Symbol(XX#Symb.SNAPSHOT, yyline, yycolumn); }
  "specializes"      { return new Symbol(XX#Symb.SPECIALIZES, yyline, yycolumn); }
Sophie Coudert's avatar
Sophie Coudert committed
  ":>"               { return new Symbol(XX#Symb.REFINES, yyline, yycolumn); }
Sophie Coudert's avatar
Sophie Coudert committed
  "stakeholder"      { return new Symbol(XX#Symb.STAKEHOLDER, yyline, yycolumn); }
  "state"            { return new Symbol(XX#Symb.STATE, yyline, yycolumn); }
  "subject"          { return new Symbol(XX#Symb.SUBJECT, yyline, yycolumn); }
  "subsets"          { return new Symbol(XX#Symb.SUBSETS, yyline, yycolumn); }
  "succession"       { return new Symbol(XX#Symb.SUCCESSION, yyline, yycolumn); }
  "then"             { return new Symbol(XX#Symb.THEN, yyline, yycolumn); }
  "timeslice"        { return new Symbol(XX#Symb.TIMESLICE, yyline, yycolumn); }
  "to"               { return new Symbol(XX#Symb.TO, yyline, yycolumn); }
  "transition"       { return new Symbol(XX#Symb.TRANSITION, yyline, yycolumn); }
  "until"            { return new Symbol(XX#Symb.UNTIL, yyline, yycolumn); }
  "use"              { return new Symbol(XX#Symb.USE, yyline, yycolumn); }
  "variant"          { return new Symbol(XX#Symb.VARIANT, yyline, yycolumn); }
  "variation"        { return new Symbol(XX#Symb.VARIATION, yyline, yycolumn); }
  "verification"     { return new Symbol(XX#Symb.VERIFICATION, yyline, yycolumn); }
  "verify"           { return new Symbol(XX#Symb.VERIFY, yyline, yycolumn); }
  "via"              { return new Symbol(XX#Symb.VIA, yyline, yycolumn); }
  "view"             { return new Symbol(XX#Symb.VIEW, yyline, yycolumn); }
  "viewpoint"        { return new Symbol(XX#Symb.VIEWPOINT, yyline, yycolumn); }
  "when"             { return new Symbol(XX#Symb.WHEN, yyline, yycolumn); }
  "while"            { return new Symbol(XX#Symb.WHILE, yyline, yycolumn); }
  "xor"              { return new Symbol(XX#Symb.XOR, yyline, yycolumn); }
Sophie Coudert's avatar
Sophie Coudert committed
  {dataTypeName}              { return new Symbol(XX#Symb.IDENT, new Ident(DATATYPENAME,yytext())); }
  {blockName}                 { return new Symbol(XX#Symb.IDENT, new Ident(BLOCKNAME,yytext())); }
  {attributeName}             { return new Symbol(XX#Symb.IDENT, new Ident(ATTRIBUTENAME,yytext())); }
  {relationName}              { return new Symbol(XX#Symb.IDENT, new Ident(RELATIONNAME,yytext())); }
  {channelPreName}            { return new Symbol(XX#Symb.IDENT, new Ident(CHANNELPRENAME,yytext())); }
  {signalName}                { return new Symbol(XX#Symb.IDENT, new Ident(SIGNALNAME,yytext())); }
  {channelName}               { return new Symbol(XX#Symb.IDENT, new Ident(CHANNELNAME,yytext())); }
  {messageName}               { return new Symbol(XX#Symb.IDENT, new Ident(MESSAGENAME,yytext())); }
  {startStateName}            { return new Symbol(XX#Symb.IDENT, new Ident(CHANNELPRENAME,yytext())); }
  {stopStateName}             { return new Symbol(XX#Symb.IDENT, new Ident(STARTSTATENAME,yytext())); }
  {standardStateName}         { return new Symbol(XX#Symb.IDENT, new Ident(STANDARDSTATENAME,yytext())); }
  {randomStateName}           { return new Symbol(XX#Symb.IDENT, new Ident(RANDOMSTATENAME,yytext())); }
  {countStateName}            { return new Symbol(XX#Symb.IDENT, new Ident(COUNTSTATENAME,yytext())); }
  {sendStateName}             { return new Symbol(XX#Symb.IDENT, new Ident(SENDSTATENAME,yytext())); }
  {receiveStateName}          { return new Symbol(XX#Symb.IDENT, new Ident(RECEIVESTATENAME,yytext())); }
  {presendStateName}          { return new Symbol(XX#Symb.IDENT, new Ident(PRESENDSTATENAME,yytext())); }
  {prereceiveStateName}       { return new Symbol(XX#Symb.IDENT, new Ident(PRERECEIVESTATENAME,yytext())); }
  {setTimerStateName}         { return new Symbol(XX#Symb.IDENT, new Ident(SETTIMERSTATENAME,yytext())); }
  {resetTimerStateName}       { return new Symbol(XX#Symb.IDENT, new Ident(RESETTIMERSTATENAME,yytext())); }
  {expireTimerStateName}      { return new Symbol(XX#Symb.IDENT, new Ident(EXPIRETIMERSTATENAME,yytext())); }
  {presetTimerStateName}      { return new Symbol(XX#Symb.IDENT, new Ident(PRESETTIMERSTATENAME,yytext())); }
  {preresetTimerStateName}    { return new Symbol(XX#Symb.IDENT, new Ident(PRERESETTIMERSTATENAME,yytext())); }
  {preexpireTimerStateName}   { return new Symbol(XX#Symb.IDENT, new Ident(PREEXPIRETIMERSTATENAME,yytext())); }
  {timerBlockName}            { return new Symbol(XX#Symb.IDENT, new Ident(TIMERBLOCKNAME,yytext())); }
  {fieldName}                 { return new Symbol(XX#Symb.IDENT, new Ident(QUOTEDNAME,yytext())); }
  {AvIdent}                   { return new Symbol(XX#Symb.IDENT, new Ident(AVATARNAME,yytext())); }
Sophie Coudert's avatar
Sophie Coudert committed
}