This repository was archived by the owner on Nov 18, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathminiscanner.l
60 lines (52 loc) · 1.47 KB
/
miniscanner.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
%{
#include <stdio.h>
#include "miniscanner.h"
%}
%%
"create" { return KEYWORD_CREATE; }
"database" { return KEYWORD_DATABASE; }
"drop" { return KEYWORD_DROP; }
"exit" { return KEYWORD_EXIT; }
"quit" { return KEYWORD_QUIT; }
"close" { return KEYWORD_CLOSE; }
"entity" { return KEYWORD_ENTITY; }
"entities" { return KEYWORD_ENTITIES; }
"commit" { return KEYWORD_COMMIT; }
"context" { return KEYWORD_CONTEXT; }
"set" { return KEYWORD_SET; }
"field" { return KEYWORD_FIELD; }
"fields" { return KEYWORD_FIELDS; }
"string" { return KEYWORD_STRING; }
"number" { return KEYWORD_NUMBER; }
"object" { return KEYWORD_OBJECT; }
"array" { return KEYWORD_ARRAY; }
"boolean" { return KEYWORD_BOOLEAN; }
"null" { return KEYWORD_NULL; }
"count" { return KEYWORD_COUNT; }
"up" { return KEYWORD_UP; }
"runtime" { return KEYWORD_RUNTIME; }
"on" { return KEYWORD_ON; }
"off" { return KEYWORD_OFF; }
"charset" { return KEYWORD_CHARSET; }
[+-]?[0-9]+ { return TOKEN_INTNUM; }
[+-]?[0-9]+([.][0-9]+)? { return TOKEN_FLOATNUM; }
L?'(\\.|[^\\'])' { return TOKEN_CHAR; }
L?\"(\\.|[^\\"])*\" { return(TOKEN_STRING); }
[_a-zA-Z][_a-zA-Z0-9]{0,100} { return TOKEN_IDENTIFIER; }
[a-zA-Z]+ { return TOKEN_LETTER; }
[\n] { return 0; }
[ \t\v\f] { ; }
. { ; }
%%
int yywrap()
{
return 1;
}
void yyflush()
{
YY_FLUSH_BUFFER;
}
void yysetscan(char *text)
{
yy_scan_string(text);
}