summaryrefslogtreecommitdiffstats
path: root/src/uscxml/plugins/datamodel/promela/parser/promela.l
diff options
context:
space:
mode:
Diffstat (limited to 'src/uscxml/plugins/datamodel/promela/parser/promela.l')
-rw-r--r--src/uscxml/plugins/datamodel/promela/parser/promela.l22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/uscxml/plugins/datamodel/promela/parser/promela.l b/src/uscxml/plugins/datamodel/promela/parser/promela.l
index 4332c6b..d82df4e 100644
--- a/src/uscxml/plugins/datamodel/promela/parser/promela.l
+++ b/src/uscxml/plugins/datamodel/promela/parser/promela.l
@@ -20,20 +20,24 @@
DIGIT [0-9]
ID [_a-zA-Z][_a-zA-Z0-9]*
+L [a-zA-Z_]
%%
bit|bool|byte|int|mtype|short|unsigned {
- //printf("TYPE: %s\n", yytext);
yylval->value = strdup(yytext);
return TYPE;
}
len { return LEN; }
false|skip|true { yylval->value = strdup(yytext); return CONST; }
+printf { return PRINT; }
+printm { return PRINTM; }
"!" { return NEG; }
"~" { return COMPL; }
+"++" { return INCR; }
+"--" { return DECR; }
"*" { return TIMES; }
"/" { return DIVIDE; }
@@ -62,19 +66,27 @@ false|skip|true { yylval->value = strdup(yytext); return CONST; }
"||" { return OR; }
"." { return DOT; }
+"," { return COMMA; }
+";" { return SEMI; }
-"(" { return LBRACKET; }
-")" { return RBRACKET; }
+"(" { return '('; }
+")" { return ')'; }
+
+"[" { return '['; }
+"]" { return ']'; }
+
+"{" { return '{'; }
+"}" { return '}'; }
"=" { return ASGN; }
+L?\"(\\.|[^\\"])*\" { yylval->value = strdup(yytext); return(STRING); }
+
{DIGIT}+ { yylval->value = strdup(yytext); return CONST; }
{ID} { yylval->value = strdup(yytext); return NAME; }
\'(\\.|[^'])*\' { }
-"{"[^}\n]*"}" /* eat up one-line comments */
-
[ \t\n]+ /* eat up whitespace */
. { /*printf( "Unrecognized character: %s\n", yytext ); */ }