-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsql.l
73 lines (71 loc) · 1.35 KB
/
sql.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
68
69
70
71
72
73
%{
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#include "y.tab.h"
%}
%%
select |
SELECT { return SELECT; }
drop |
DROP { return DROP; }
table |
TABLE { return TABLE; }
tables |
TABLES { return TABLES; }
database |
DATABASE { return DATABASE; }
databases |
DATABASES { return DATABASES; }
create |
CREATE { return CREATE; }
insert |
INSERT { return INSERT; }
update |
UPDATE { return UPDATE; }
set |
SET { return SET; }
delete |
DELETE { return DELETE; }
from |
FROM { return FROM; }
where |
WHERE { return WHERE; }
into |
INTO { return INTO; }
values |
VALUES { return VALUES; }
and |
AND { return AND; }
or |
OR { return OR; }
int |
INT { return INT; }
char |
CHAR { return CHAR; }
double |
DOUBLE { return DOUBLE; }
show |
SHOW { return SHOW; }
exit |
EXIT { return EXIT; }
use |
USE { return USE; }
[;] |
[(] |
[)] |
[*] |
[,] |
"<=" |
">=" |
[!] |
"<" |
">" |
[=] return *yytext;
[\'][A-Za-z][A-Za-z0-9_]*[\'] { yylval.strval=strdup(yytext); return STRING; }
[A-Za-z][A-Za-z0-9_]* { yylval.strval=strdup(yytext); return ID; }
[0-9]+\.[0-9]+ {yylval.dval=atof(yytext); return DOUBLEN;}
[0-9]+ { yylval.intval=atoi(yytext); return NUMBER; }
"\n" {return *yytext;}
[ \t]+ /* ignore whitespace */
%%