Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
*
* ludovic.apvrille AT enst.fr
*
* This software is a computer program whose purpose is to allow the
* edition of TURTLE analysis, design and deployment diagrams, to
* allow the generation of RT-LOTOS or Java code from this diagram,
* and at last to allow the analysis of formal validation traces
* obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
* from INRIA Rhone-Alpes.
*
* This software is governed by the CeCILL license under French law and
* abiding by the rules of distribution of free software. You can use,
* modify and/ or redistribute the software under the terms of the CeCILL
* license as circulated by CEA, CNRS and INRIA at the following URL
* "http://www.cecill.info".
*
* As a counterpart to the access to the source code and rights to copy,
* modify and redistribute granted by the license, users are provided only
* with a limited warranty and the software's author, the holder of the
* economic rights, and the successive licensors have only limited
* liability.
*
* In this respect, the user's attention is drawn to the risks associated
* with loading, using, modifying and/or developing or reproducing the
* software by the user in light of its specific status of free software,
* that may mean that it is complicated to manipulate, and that also
* therefore means that it is reserved for developers and experienced
* professionals having in-depth computer knowledge. Users are therefore
* encouraged to load and test the software's suitability as regards their
* requirements in conditions enabling the security of their systems and/or
* data to be ensured and, more generally, to use and operate it in the
* same conditions as regards security.
*
* The fact that you are presently reading this means that you have had
* knowledge of the CeCILL license and that you accept its terms.
*/
package avatartranslator.tosysmlv2;
import java_cup.runtime.ComplexSymbolFactory.*;
import avatartranslator.tosysmlv2.AvatarFromSysMLSyntax.*;
Sophie Coudert
committed
%eofval}
%yylexthrow Exception
Sophie Coudert
committed
%{ /** create a symbol provided with current lexeme and location */
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);
}
Sophie Coudert
committed
/** create a symbol provided with current lexeme and location */
// 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()));
}
Sophie Coudert
committed
/** to memorize error location before throwing an exception */
Sophie Coudert
committed
/** memorize error location */
public void setErrorLocation(Location _errorLocation) { errorLocation = _errorLocation; }
Sophie Coudert
committed
/** get memorized error location */
public Location getErrorLocation() { return errorLocation; }
Sophie Coudert
committed
/** get current location. To allow parser to know location without lexeme (i.e. through empty grammar rule) */
public Location getLocation() { return new Location(yyline, yycolumn); }
Sophie Coudert
committed
// there is initially no error
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} "'"
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
committed
[^\n\r]+ { break; }
"\n" { yybegin(YYINITIAL); break; }
Sophie Coudert
committed
[^;]+ { break; }
"\;" { yybegin(YYINITIAL); break; }
Sophie Coudert
committed
{Space} { break; }
"//" { yybegin(COMMENTLINE); break; }
{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.FOURPOINTS); }
"=" { 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); }
"'@block'" { return makeSymbol(#Symb.BLOCK_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); }
"'@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); }
"'#NOKrequest'" { return makeSymbol(#Symb.NOKREQUEST_T); }
"'#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); }
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
"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); }
"implies" { return makeSymbol(#Symb.IMPLIES); }
"import" { yybegin(IMPORTITEM); return makeSymbol(#Symb.IMPORT); }
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
"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); }
"null" { return makeSymbol(#Symb.NULL); }
{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())); }
{choiceStateName} { return makeSymbol(#Symb.IDENT, new Ident(AvatarFromSysMLSyntax.STANDARDSTATENAME,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())); }
"'"[^']+"'" { 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"); }