-
Notifications
You must be signed in to change notification settings - Fork 1
/
analyseur_lexical.flex
63 lines (51 loc) · 1.18 KB
/
analyseur_lexical.flex
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/*
* Analyseur lexical du compilateur L en FLEX
*/
%{
#include "symboles.h"
%}
%option yylineno
%option nounput
%option noinput
lettre [A-Za-z]
chiffre [0-9]
nombre {chiffre}+
identificateur_var \$({lettre}|_|\$|{chiffre})+
identificateur_fct ({lettre}|_)+
%%
"#".* ;
";" {return POINT_VIRGULE; }
"+" {return PLUS; }
"-" {return MOINS; }
"*" {return FOIS; }
"/" {return DIVISE; }
"(" {return PARENTHESE_OUVRANTE; }
")" {return PARENTHESE_FERMANTE; }
"[" {return CROCHET_OUVRANT; }
"]" {return CROCHET_FERMANT; }
"{" {return ACCOLADE_OUVRANTE; }
"}" {return ACCOLADE_FERMANTE; }
"=" {return EGAL; }
"<" {return INFERIEUR; }
"&" {return ET; }
"|" {return OU; }
"!" {return NON; }
si {return SI; }
alors {return ALORS; }
sinon {return SINON; }
tantque {return TANTQUE; }
faire {return FAIRE; }
entier {return ENTIER; }
retour {return RETOUR;}
lire {return LIRE; }
ecrire {return ECRIRE; }
{nombre} {return NOMBRE;}
"," {return VIRGULE; }
{identificateur_var} {return ID_VAR;}
{identificateur_fct} {return ID_FCT;}
<<EOF>> { return FIN; } /* Fin de fichier */
[\n\t ] ;
%%
int yywrap(){
return 1;
}