PIPS
sl_lex.l
Go to the documentation of this file.
1 
2 %option nounput
3 %option noinput
4 %START COMMENT TEXT
5 %{
6 /*
7  Grammaire lex necessaire pour l'analyse lexicale d'une liste de systemes.
8  Les tokens renvoyes sont commentes dans le fichier "sl_gram.y".
9 */
10 
11 #include <stdio.h>
12 #include "boolean.h"
13 #include "arithmetique.h"
14 #include "vecteur.h"
15 
16 #include "sl_gram.h"
17 #ifdef SCAN_VIEW
18 #define RETURN(token,string) fprintf(stderr,"%s ", string) ; \
19  return(token)
20 #else
21 #define RETURN(token,string) return(token)
22 #endif
23 %}
24 
25 %%
26 <TEXT>VAR { RETURN(VAR, "VAR "); }
27 <TEXT>[A-Za-z_]['A-Za-z0-9_:#]* { RETURN(IDENT, "IDENT "); } /* ' */
28 <TEXT>[0-9]* { RETURN(CONSTANTE, "CONSTANTE "); }
29 <TEXT>"==" { RETURN(EGAL, "EGAL "); }
30 <TEXT>"," { RETURN(VIRG, "VIRG "); }
31 <TEXT>"+" { RETURN(PLUS, "PLUS "); }
32 <TEXT>"-" { RETURN(MOINS, "MOINS "); }
33 <TEXT>">" { RETURN(SUP, "SUP "); }
34 <TEXT>">=" { RETURN(SUPEGAL, "SUPEGAL "); }
35 <TEXT>"<" { RETURN(INF, "INF "); }
36 <TEXT>"<=" { RETURN(INFEGAL, "INFEGAL "); }
37 <TEXT>"{" { RETURN(ACCOUVR, "ACCOUVR "); }
38 <TEXT>"}" { RETURN(ACCFERM, "ACCFERM "); }
39 <TEXT>[ \t\n]* ;
40 <TEXT>"#" {BEGIN COMMENT;}
41 <COMMENT>\n {BEGIN TEXT;}
42 <COMMENT>[^\n]* ;
43 %%
44 
45 int yywrap() { return(-1); }
46 void sl_init_lex() { BEGIN TEXT; }