|
1 | 1 | #pragma once |
2 | 2 |
|
| 3 | +#include "LuaParser/LuaIdentify.h" |
3 | 4 | #include <climits> |
4 | 5 |
|
5 | | -// come from lua code |
6 | | - |
7 | 6 | const int EOZ = -1; |
8 | 7 |
|
9 | 8 | //accept UniCode IDentifiers |
10 | 9 | const unsigned char NONA = 0x01; |
11 | 10 |
|
12 | | -const unsigned char luai_ctype_[UCHAR_MAX + 2] = { |
13 | | - 0x00, /* EOZ */ |
14 | | - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0. */ |
15 | | - 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, |
16 | | - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 1. */ |
17 | | - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
18 | | - 0x0c, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, /* 2. */ |
19 | | - 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, |
20 | | - 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /* 3. */ |
21 | | - 0x16, 0x16, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, |
22 | | - 0x04, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x05, /* 4. */ |
23 | | - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, |
24 | | - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, /* 5. */ |
25 | | - 0x05, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, 0x05, |
26 | | - 0x04, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x05, /* 6. */ |
27 | | - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, |
28 | | - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, /* 7. */ |
29 | | - 0x05, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, 0x00, |
30 | | - NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, /* 8. */ |
31 | | - NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, |
32 | | - NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, /* 9. */ |
33 | | - NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, |
34 | | - NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, /* a. */ |
35 | | - NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, |
36 | | - NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, /* b. */ |
37 | | - NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, |
38 | | - 0x00, 0x00, NONA, NONA, NONA, NONA, NONA, NONA, /* c. */ |
39 | | - NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, |
40 | | - NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, /* d. */ |
41 | | - NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, |
42 | | - NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, /* e. */ |
43 | | - NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, |
44 | | - NONA, NONA, NONA, NONA, NONA, 0x00, 0x00, 0x00, /* f. */ |
45 | | - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |
46 | | -}; |
47 | | - |
48 | | - |
49 | | -#define ALPHABIT 0 |
50 | | -#define DIGITBIT 1 |
51 | | -#define PRINTBIT 2 |
52 | | -#define SPACEBIT 3 |
53 | | -#define XDIGITBIT 4 |
54 | | - |
55 | | - |
56 | | -#define MASK(B) (1 << (B)) |
57 | | - |
58 | | - |
59 | | -/* |
60 | | -** add 1 to char to allow index -1 (EOZ) |
61 | | -*/ |
62 | | -#define testprop(c,p) (luai_ctype_[(c)+1] & (p)) |
63 | | - |
64 | | -/* |
65 | | -** 'lalpha' (Lua alphabetic) and 'lalnum' (Lua alphanumeric) both include '_' |
66 | | -*/ |
67 | | -#define lislalpha(c) testprop(c, MASK(ALPHABIT)) |
68 | | -#define lislalnum(c) testprop(c, (MASK(ALPHABIT) | MASK(DIGITBIT))) |
69 | | -#define lisdigit(c) testprop(c, MASK(DIGITBIT)) |
70 | | -#define lisspace(c) testprop(c, MASK(SPACEBIT)) |
71 | | -#define lisprint(c) testprop(c, MASK(PRINTBIT)) |
72 | | -#define lisxdigit(c) testprop(c, MASK(XDIGITBIT)) |
73 | | - |
74 | | - |
75 | 11 | /* |
76 | 12 | ** Priority table for binary operators. |
77 | 13 | */ |
|
0 commit comments