1 /* Copyright (c) 2012, 2014. The SimGrid Team.
2 * All rights reserved. */
4 /* This program is free software; you can redistribute it and/or modify it
5 * under the terms of the license (GNU LGPL) which comes with this package. */
11 #include "simgrid_config.h"
13 #define YY_NO_UNISTD_H /* hello Windows */
18 # define _CRT_SECURE_NO_WARNINGS
19 # define _CRT_NONSTDC_NO_WARNINGS
24 #include "parserPromela.tab.hacc"
26 extern YYSTYPE yylval;
36 reel {entier}("."{entier})
37 caractere [a-zA-Z0-9_]
41 chaine \"({caractere}*|\n|\\|\"|{espace}*)*\"
43 commentaire "/*"([^\*\/]*{nouv_ligne}*[^\*\/]*)*"*/"
47 "never" { return (NEVER); }
50 "->" { return (IMPLIES); }
51 "goto" { return (GOTO); }
52 "&&" { return (AND); }
55 "(" { return (LEFT_PAR); }
56 ")" { return (RIGHT_PAR); }
57 "::" { return (CASE); }
58 ":" { return (COLON); }
59 ";" { return (SEMI_COLON); }
60 "1" { return (CASE_TRUE); }
61 "{" { return (LEFT_BRACE); }
62 "}" { return (RIGHT_BRACE); }
70 {reel} { sscanf(yytext,"%lf",&yylval.real);
73 {entier} { sscanf(yytext,"%d",&yylval.integer);
76 {chaine} { yylval.string=(char *)malloc(strlen(yytext)+1);
77 sscanf(yytext,"%s",yylval.string);
78 return (LITT_CHAINE); }
80 [a-zA-Z]{caractere}* { yylval.string=(char *)malloc(strlen(yytext)+1);
81 sscanf(yytext,"%s",yylval.string);