blob: 00876d620fd1690e751989aeba5bfd8903ffe1ea (
plain)
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
|
%{
#include <math.h>
#include <string.h>
#include "regn.tab.h"
#include "ast.h"
%}
id [a-zA-Z0-9_;]([^\n=><(){}])*
if if[ \t]*
else else[ \t]*
for for[ \t]*
while while[ \t]*
%%
{if} {return IFF;};
{else} {return EELSE;};
{for} {return FFOR;};
{while} {return WHILE;};
"(" {return LP;};
")" {return RP;};
"{" {return LCP;};
"}" {return RCP;};
"<" {yylval.cmp = CLT; return CMP;};
">" {yylval.cmp = CGT; return CMP;};
"=" {yylval.cmp = CEQ; return CMP;};
"!=" {yylval.cmp = CNEQ; return CMP;};
{id} {yylval.string = strdup(yytext);return ID;};
[1-9][0-9]* {yylval.string = yytext;return NO;};
[ \t\n] ;
. {return yytext[0];}
%%
// TODO match normal assembler
|