-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcompiler.l
executable file
·43 lines (36 loc) · 1.11 KB
/
compiler.l
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
%{
#include "compiler.tab.h"
%}
Lettre [a-zA-Z]
Chiffre [0-9]
%%
"if" {yylval.str = strdup(yytext); return IF;}
"while" {yylval.str = strdup(yytext); return WHILE;}
"else" {yylval.str = strdup(yytext); return ELSE;}
";" {return PV;}
"printf" {return PRINTF;}
"main" {yylval.str = strdup(yytext); return MAIN;}
"{" {return OA; }
"}" {return CA;}
"const" {return CONST;}
"void" { yylval.str = strdup(yytext); return VOID;}
"return" { yylval.str = strdup(yytext); return RETURN;}
"int" { yylval.str = strdup(yytext); return INT;}
"+" {return PLUS;}
"-" {return MOINS;}
"*" {return MUL;}
"/" {return DIV;}
"=" {return EGALE;}
"<" {return INF;}
">" {return SUP;}
"(" {return OP;}
")" {return CP;}
"\"" {return QUOTE;}
"%d" {return INT_PRINTF;}
"%s" {return STRING_PRINTF;}
"%f" {return FLOAT_PRINTF;}
"," {return VIR;}
[0-9]+(e-?[0-9]+)? {yylval.nb = atoi(yytext); return NB;}
{Lettre}+[a-zA-Z0-9\_]* { yylval.str = strdup(yytext) ; return NOM;}
[ \t\n]
%%