Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add dsend_bounded send_with_timeout_bounded
[simgrid.git] / src / xbt / automaton / parserPromela.lex
1 %option noyywrap
2
3 %{
4
5
6 #include <stdio.h>
7 #include "parserPromela.tab.hacc"
8   
9   extern YYSTYPE yylval;
10  
11 %}
12
13 blancs       [ \t]+
14 espace       [ ]+
15 nouv_ligne   [ \n]
16
17 chiffre      [0-9]
18 entier       {chiffre}+
19 reel         {entier}("."{entier})
20 caractere    [a-zA-Z0-9_]
21
22 numl         \n
23
24 chaine       \"({caractere}*|\n|\\|\"|{espace}*)*\"
25
26 commentaire  "/*"([^\*\/]*{nouv_ligne}*[^\*\/]*)*"*/"
27
28 %%
29
30 "never"      { return (NEVER); }
31 "if"         { return (IF); }
32 "fi"         { return (FI); }
33 "->"         { return (IMPLIES); }
34 "goto"       { return (GOTO); }
35 "&&"         { return (AND); }
36 "||"         { return (OR); }
37 "!"          { return (NOT); }
38 "("          { return (LEFT_PAR); }
39 ")"          { return (RIGHT_PAR); }
40 "::"         { return (CASE); }
41 ":"          { return (COLON); }
42 ";"          { return (SEMI_COLON); }
43 "1"          { return (CASE_TRUE); }
44 "{"          { return (LEFT_BRACE); }
45 "}"          { return (RIGHT_BRACE); }
46
47
48 {commentaire}             { }
49
50 {blancs}                  { }
51
52
53 {reel}                    { sscanf(yytext,"%lf",&yylval.real); 
54                             return (LITT_REEL); }
55
56 {entier}                  { sscanf(yytext,"%d",&yylval.integer); 
57                             return (LITT_ENT); }
58
59 {chaine}                  { yylval.string=(char *)malloc(strlen(yytext)+1);
60                             sscanf(yytext,"%s",yylval.string); 
61                             return (LITT_CHAINE); }
62
63 [a-zA-Z]{caractere}*      { yylval.string=(char *)malloc(strlen(yytext)+1);
64                             sscanf(yytext,"%s",yylval.string);
65                                               return (ID); }
66                    
67 {numl}                    { }
68
69 .                         { }
70
71 %%
72
73