-
Notifications
You must be signed in to change notification settings - Fork 0
/
tp2.l~
44 lines (40 loc) · 846 Bytes
/
tp2.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
42
43
44
%{
#include "y.tab.h"
void yyerror(char *);
%}
num [0-9]+
pal [a-zA-Z]+
opA "+"|"-"|"*"|"/"
opL "&&"|"||"
opR ">>"|"<<"|">="|"<="|"=="|"|=|"
inicio "INICIO"
corpo "CORPO"
fim "FIM"
sep ","|";"|"="
condicao "IF"
ifelse "ELSE"
fimCond "ENDIF"
ciclo "WHILE"
fimciclo "ENDWHILE"
paresq "("
pardir ")"
%%
{inicio} { return BEGINP; }
{corpo} { return MIDDLE; }
{fim} { return ENDP; }
{sep} { return SEP; }
{condicao} { return IF; }
{fimCond} { return ENDIF; }
{ciclo} { return WHILE; }
{fimciclo} { return ENDWHILE; }
{num} { yylval.vali = atoi(yytext); return num; }
{pal} { yylval.vals = strdup(yytext); return pal; }
{opA} { return (OPA); }
{opR} { return (OPR); }
{paresq} { return (PARESQ); }
{pardir} { return (PARDIR); }
.|\n { ; }
%%
int yywrap(){
return(1);
}