-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexpr.l
More file actions
51 lines (42 loc) · 941 Bytes
/
expr.l
File metadata and controls
51 lines (42 loc) · 941 Bytes
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
delim [ \t\n\v\f]
ws {delim}+
digito [0-9]
num {digito}+
alpha [a-zA-Z]
literal \".*\"
id ({alpha}|\_)({alpha}|{num}|\_)*
%%
{ws} {}
"if" {return IF;}
"else" {return ELSE;}
"while" {return WHILE;}
"read" {return READ;}
"print" {return PRINT;}
"return" {return RETURN;}
"int" {return INT;}
"void" {return VOID;}
"String" {return STRING;}
"+" {return TADD;}
"-" {return TSUB;}
"*" {return TMUL;}
"/" {return TDIV;}
"<" {return RMEN;}
">" {return RMAI;}
"<=" {return RMENEQ;}
">=" {return RMAIEQ;}
"==" {return REQU;}
"!=" {return RDIF;}
"&&" {return LAND;}
"||" {return LOR;}
"!" {return LNOT;}
"=" {return TATRIB;}
";" {return TPTOVRGL;}
"," {return TVIRGULA;}
"(" {return TAPAR;}
")" {return TFPAR;}
"{" {return TACHAVE;}
"}" {return TFCHAVE;}
<<EOF>> {return TFIM;}
{id} {strcpy(yylval.id, yytext); return ID;}
{literal} {return LITERAL;}
{num} {return TNUM;}