-
Notifications
You must be signed in to change notification settings - Fork 0
/
project.l
67 lines (59 loc) · 1.8 KB
/
project.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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
%{
#include <stdio.h>
#include "project.tab.h"
%}
%%
"__debug__" return __DEBUG__;
program return K_PROGRAM;
function return K_FUNCTION;
type return K_TYPE;
var return K_VAR;
is return K_IS;
return return K_RETURN;
begin return K_BEGIN;
if return K_IF;
then return K_THEN;
end return K_END;
elif return K_ELIF;
else return K_ELSE;
while return K_WHILE;
do return K_DO;
repeat return K_REPEAT;
until return K_UNTIL;
foreach return K_FOREACH;
print return K_PRINT;
of return K_OF;
array return K_ARRAY;
class return K_CLASS;
extends return K_EXTENDS;
in return K_IN;
and return K_AND;
or return K_OR;
not return K_NOT;
[0-9]+ return L_NUMBER;
yes return L_YES;
no return L_NO;
[_a-zA-Z][_a-zA-Z0-9]* return IDENT;
\n /* ignore end of line */;
[ \t]+ /* ignore whitespace */;
\/\/.* /* ignore comments*/;
";" return P_SEMI;
"." return P_DOT;
"," return P_COMMA;
"(" return P_L_PARA;
")" return P_R_PARA;
"[" return P_L_BRACKET;
"]" return P_R_BRACKET;
"==" return P_EQ;
"<" return P_LT;
"<=" return P_LE;
">" return P_GT;
">=" return P_GE;
"!=" return P_NE;
":=" return P_ASSIGN ;
"+" return P_ADD;
"-" return P_SUB;
"*" return P_MUL;
"/" return P_DIV;
"%" return P_MOD;
%%