-
Sophie Coudert authoredSophie Coudert authored
AvatarFromSysML.jflex 20.67 KiB
package avatartranslator.tosysmlv2;
import java_cup.runtime.*;
import java_cup.runtime.ComplexSymbolFactory.*;
import java.util.HashSet;
import avatartranslator.tosysmlv2.AvatarFromSysMLSyntax.*;
%%
%class LexerClassName
%public
%unicode
%cup
%line
%column
%eofval{
return makeSymbol(#Symb.EOF);
%eofval}
%yylexthrow Exception
%{
ComplexSymbol makeSymbol(int id, Object val) {
// System.out.print(" ##" + #Symb.terminalNames[id] + "-" + val + " " + "(" + "l:" + yyline + ",c:" + yycolumn + ")");
return new ComplexSymbol(
#Symb.terminalNames[id],
id,
new Location(yyline, yycolumn),
new Location(yyline, yycolumn + yytext().length()),
val);
}
ComplexSymbol makeSymbol(int id) {
// System.out.print(" ##" + #Symb.terminalNames[id] + "(" + "l:" + yyline + ",c:" + yycolumn + ")");
return new ComplexSymbol(
#Symb.terminalNames[id],
id,
new Location(yyline, yycolumn),
new Location(yyline, yycolumn + yytext().length()));
}
Location errorLocation;
public void setErrorLocation(Location _errorLocation) { errorLocation = _errorLocation; }
public Location getErrorLocation() { return errorLocation; }
%}
%init{
errorLocation = null;
%init}
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} "'"
blockName = "'@blk:" {AvIdent} "'"
attributeName = "'$" {AvIdent} "'"
fieldName = "'" {AvIdent} "'"
relationName = ("'@BF" | "'@NBF" | "'@SYN") {Natural} ":" {AvIdent} "-" {AvIdent} "'"
channelPreName = {AvIdent} "." {AvIdent} (">"|"<") {AvIdent} "." {AvIdent}
signalName = "'@sig:" {AvIdent} "'"
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} "'"
%state COMMENTLINE
%state IMPORTITEM
%%
<COMMENTLINE> {
[^\n\r]+ { }
"\n" { yybegin(YYINITIAL); }
}
<IMPORTITEM> {
[^;]+ { }
"\;" { yybegin(YYINITIAL); }
}
<YYINITIAL> {
{Space} {}
"//" { yybegin(COMMENTLINE); }
{Natural} { try { return makeSymbol(#Symb.INT, Integer.parseInt(yytext())); }
catch (NumberFormatException nfe) {
setErrorLocation(new Location(yyline, yycolumn));
throw new Exception ("lexing : bad format for number : " + yytext()); }
}
{Real} { try { return makeSymbol(#Symb.REAL, Double.parseDouble(yytext())); }
catch (NumberFormatException nfe) {
setErrorLocation(new Location(yyline, yycolumn));
throw new Exception ("lexing : bad format for number : " + yytext()); }
}
"+" { 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.LT); }
">" { return makeSymbol(#Symb.GT); }
"<=" { return makeSymbol(#Symb.LEQ); }
">=" { return makeSymbol(#Symb.GEQ); }
"?" { return makeSymbol(#Symb.QUEST); }
"==" { return makeSymbol(#Symb.EQ); }
"true" { return makeSymbol(#Symb.BOOL, Boolean.TRUE); }
"false" { return makeSymbol(#Symb.BOOL, Boolean.FALSE); }
"(" { 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); }
"::" { return makeSymbol(#Symb.POINT); }
"=" { return makeSymbol(#Symb.EQUAL); }
":=" { return makeSymbol(#Symb.GETS); }
[\"][^\"]*[\"] { String s = yytext();
return makeSymbol(#Symb.STRING, s.substring(1, s.length() - 1)); }
"'@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'" { 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 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 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 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 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 makeSymbol(#Symb.ASSIGNMENT_T); }
"'#bound_random'" { return makeSymbol(#Symb.BOUNDRANDOM_U); }
"Integer" { return makeSymbol(#Symb.INTEGER_T); }
"Boolean" { return makeSymbol(#Symb.BOOLEAN_T); }
"String" { return makeSymbol(#Symb.STRING_T); }
"Real" { return makeSymbol(#Symb.REAL_T); }
"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" { return makeSymbol(#Symb.IF); }
"implies" { return makeSymbol(#Symb.IMPLIES); }
"import" { yybegin(IMPORTITEM); 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 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() - 1)); }
. { setErrorLocation(new Location(yyline, yycolumn));
throw new Exception ("unexpected character in expression"); }
}