forked from lykhonis/FJava
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTokenType.java
More file actions
150 lines (145 loc) · 11.2 KB
/
Copy pathTokenType.java
File metadata and controls
150 lines (145 loc) · 11.2 KB
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
package com.fjava.translator;
import java.util.regex.Pattern;
enum TokenType {
SINGLE_LINE_COMMENT("^(\\/\\/[^\n\r]*[\n|\r|\r\n]?)", "\r\n"),
MULTI_LINE_COMMENT("^(\\/\\*([^\\*]|[\\r\\n]|(\\*+([^\\*\\/]|[\\r\\n])))*\\*+\\/)"),
DOT("^(\\.)"),
ABSTRACT("^\\b(abstract)\\b", " "),
ASSERT("^\\b(assert)\\b", " "),
BOOLEAN("^\\b(boolean)\\b", " "),
BREAK("^\\b(break)\\b", " "),
BYTE("^\\b(byte)\\b", " "),
CASE("^\\b(case)\\b", " "),
CATCH("^\\b(catch)\\b", " "),
CHAR("^\\b(char)\\b", " "),
CLASS("^\\b(class)\\b", " "),
CONST("^\\b(const)\\b", " "),
CONTINUE("^\\b(continue)\\b", " "),
DEFAULT("^\\b(default)\\b", " "),
DO("^\\b(do)\\b", " "),
DOUBLE("^\\b(double)\\b", " "),
ELSE("^\\b(else)\\b", " "),
ENUM("^\\b(enum)\\b", " "),
EXTENDS("^\\b(extends)\\b", " "),
FALSE("^\\b(false)\\b", " "),
FINAL("^\\b(final)\\b", " "),
LAZY("^\\b(lazy)\\b", " "),
FINALLY("^\\b(finally)\\b", " "),
FLOAT("^\\b(float)\\b", " "),
FOR("^\\b(for)\\b", " "),
GOTO("^\\b(goto)\\b", " "),
IF("^\\b(if)\\b", " "),
IMPLEMENTS("^\\b(implements)\\b", " "),
IMPORT("^\\b(import)\\b", " "),
INSTANCEOF("^\\b(instanceof)\\b", " "),
INT("^\\b(int)\\b", " "),
INTERFACE("^\\b(interface)\\b", " "),
LONG("^\\b(long)\\b", " "),
NATIVE("^\\b(native)\\b", " "),
NEW("^\\b(new)\\b", " "),
NULL("^\\b(null)\\b", " "),
PACKAGE("^\\b(package)\\b", " "),
PRIVATE("^\\b(private)\\b", " "),
PROTECTED("^\\b(protected)\\b", " "),
PUBLIC("^\\b(public)\\b", " "),
RETURN("^\\b(return)\\b", " "),
SHORT("^\\b(short)\\b", " "),
STATIC("^\\b(static)\\b", " "),
STRICTFP("^\\b(strictfp)\\b", " "),
SUPER("^\\b(super)\\b", " "),
SWITCH("^\\b(switch)\\b", " "),
SYNCHRONIZED("^\\b(synchronized)\\b", " "),
THIS("^\\b(this)\\b", " "),
THROW("^\\b(throw)\\b", " "),
THROWS("^\\b(throws)\\b", " "),
TRANSIENT("^\\b(transient)\\b", " "),
TRUE("^\\b(true)\\b", " "),
TRY("^\\b(try)\\b", " "),
VOID("^\\b(void)\\b", " "),
VOLATILE("^\\b(volatile)\\b", " "),
WHILE("^\\b(while)\\b", " "),
IDENTIFIER(
"^\\b([$a-zA-Z_\u00a2-\u00a5\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u021f"
+ "\u0222-\u0233\u0250-\u02ad\u02b0-\u02b8\u02bb-\u02c1\u02d0-\u02d1\u02e0-\u02e4\u02ee\u037a\u0386\u0388-\u038a\u038c\u038e-"
+ "\u03a1\u03a3-\u03ce\u03d0-\u03d7\u03da-\u03f3\u0400-\u0481\u048c-\u04c4\u04c7-\u04c8\u04cb-\u04cc\u04d0-\u04f5\u04f8-\u04f9"
+ "\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0621-\u063a\u0640-\u064a\u0671-\u06d3\u06d5\u06e5-\u06e6\u06fa-"
+ "\u06fc\u0710\u0712-\u072c\u0780-\u07a5\u0905-\u0939\u093d\u0950\u0958-\u0961\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-"
+ "\u09b0\u09b2\u09b6-\u09b9\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f3\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-"
+ "\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8b\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0"
+ "\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b36-\u0b39"
+ "\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-"
+ "\u0baa\u0bae-\u0bb5\u0bb7-\u0bb9\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c60-\u0c61\u0c85-\u0c8c"
+ "\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cde\u0ce0-\u0ce1\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d28\u0d2a-\u0d39"
+ "\u0d60-\u0d61\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e3f-\u0e46\u0e81-\u0e82"
+ "\u0e84\u0e87-\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa-\u0eab\u0ead-\u0eb0\u0eb2-\u0eb3"
+ "\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edd\u0f00\u0f40-\u0f47\u0f49-\u0f6a\u0f88-\u0f8b\u1000-\u1021\u1023-\u1027\u1029-\u102a"
+ "\u1050-\u1055\u10a0-\u10c5\u10d0-\u10f6\u1100-\u1159\u115f-\u11a2\u11a8-\u11f9\u1200-\u1206\u1208-\u1246\u1248\u124a-\u124d"
+ "\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1286\u1288\u128a-\u128d\u1290-\u12ae\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-"
+ "\u12c5\u12c8-\u12ce\u12d0-\u12d6\u12d8-\u12ee\u12f0-\u130e\u1310\u1312-\u1315\u1318-\u131e\u1320-\u1346\u1348-\u135a\u13a0-"
+ "\u13f4\u1401-\u166c\u166f-\u1676\u1681-\u169a\u16a0-\u16ea\u1780-\u17b3\u17db\u1820-\u1877\u1880-\u18a8\u1e00-\u1e9b\u1ea0-"
+ "\u1ef9\u1f00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-"
+ "\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u203f-\u2040\u207f"
+ "\u20a0-\u20af\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2131\u2133-\u2139\u2160-"
+ "\u2183\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303a\u3041-\u3094\u309d-\u309e\u30a1-\u30fe\u3105-\u312c\u3131-\u318e"
+ "\u31a0-\u31b7\u3400-\u4db5\u4e00-\u9fa5\ua000-\ua48c\uac00-\ud7a3\uf900-\ufa2d\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28"
+ "\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb"
+ "\ufe33-\ufe34\ufe4d-\ufe4f\ufe69\ufe70-\ufe72\ufe74\ufe76-\ufefc\uff04\uff21-\uff3a\uff3f\uff41-\uff5a\uff65-\uffbe\uffc2-"
+ "\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe1\uffe5-\uffe6][\u0000-\u0008\u000e-\u001b$0-9A-Z_a-z\u007f-\u009f\u00a2-\u00a5\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u021f\u0222-"
+ "\u0233\u0250-\u02ad\u02b0-\u02b8\u02bb-\u02c1\u02d0-\u02d1\u02e0-\u02e4\u02ee\u0300-\u034e\u0360-\u0362\u037a\u0386\u0388-\u038a"
+ "\u038c\u038e-\u03a1\u03a3-\u03ce\u03d0-\u03d7\u03da-\u03f3\u0400-\u0481\u0483-\u0486\u048c-\u04c4\u04c7-\u04c8\u04cb-\u04cc"
+ "\u04d0-\u04f5\u04f8-\u04f9\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05a1\u05a3-\u05b9\u05bb-\u05bd\u05bf\u05c1-\u05c2\u05c4\u05d0-"
+ "\u05ea\u05f0-\u05f2\u0621-\u063a\u0640-\u0655\u0660-\u0669\u0670-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06ed\u06f0-\u06fc\u070f-"
+ "\u072c\u0730-\u074a\u0780-\u07b0\u0901-\u0903\u0905-\u0939\u093c-\u094d\u0950-\u0954\u0958-\u0963\u0966-\u096f\u0981-\u0983\u0985-"
+ "\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc\u09be-\u09c4\u09c7-\u09c8\u09cb-\u09cd\u09d7\u09dc-\u09dd"
+ "\u09df-\u09e3\u09e6-\u09f3\u0a02\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c"
+ "\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a59-\u0a5c\u0a5e\u0a66-\u0a74\u0a81-\u0a83\u0a85-\u0a8b\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8"
+ "\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0\u0ae6-\u0aef\u0b01-\u0b03\u0b05-\u0b0c"
+ "\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b36-\u0b39\u0b3c-\u0b43\u0b47-\u0b48\u0b4b-\u0b4d\u0b56-\u0b57\u0b5c-\u0b5d"
+ "\u0b5f-\u0b61\u0b66-\u0b6f\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-"
+ "\u0baa\u0bae-\u0bb5\u0bb7-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be7-\u0bef\u0c01-\u0c03\u0c05-\u0c0c\u0c0e-\u0c10"
+ "\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c60-\u0c61\u0c66-\u0c6f\u0c82-\u0c83"
+ "\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cde\u0ce0-"
+ "\u0ce1\u0ce6-\u0cef\u0d02-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d28\u0d2a-\u0d39\u0d3e-\u0d43\u0d46-\u0d48\u0d4a-\u0d4d\u0d57"
+ "\u0d60-\u0d61\u0d66-\u0d6f\u0d82-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-"
+ "\u0ddf\u0df2-\u0df3\u0e01-\u0e3a\u0e3f-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e87-\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f"
+ "\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa-\u0eab\u0ead-\u0eb9\u0ebb-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edd\u0f00"
+ "\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6a\u0f71-\u0f84\u0f86-\u0f8b\u0f90-\u0f97\u0f99-\u0fbc\u0fc6"
+ "\u1000-\u1021\u1023-\u1027\u1029-\u102a\u102c-\u1032\u1036-\u1039\u1040-\u1049\u1050-\u1059\u10a0-\u10c5\u10d0-\u10f6\u1100-\u1159"
+ "\u115f-\u11a2\u11a8-\u11f9\u1200-\u1206\u1208-\u1246\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1286\u1288\u128a-"
+ "\u128d\u1290-\u12ae\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12ce\u12d0-\u12d6\u12d8-\u12ee\u12f0-\u130e\u1310"
+ "\u1312-\u1315\u1318-\u131e\u1320-\u1346\u1348-\u135a\u1369-\u1371\u13a0-\u13f4\u1401-\u166c\u166f-\u1676\u1681-\u169a\u16a0-\u16ea"
+ "\u1780-\u17d3\u17db\u17e0-\u17e9\u180b-\u180e\u1810-\u1819\u1820-\u1877\u1880-\u18a9\u1e00-\u1e9b\u1ea0-\u1ef9\u1f00-\u1f15\u1f18-"
+ "\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-"
+ "\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u200c-\u200f\u202a-\u202e\u203f-\u2040\u206a-\u206f\u207f"
+ "\u20a0-\u20af\u20d0-\u20dc\u20e1\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2131\u2133-"
+ "\u2139\u2160-\u2183\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303a\u3041-\u3094\u3099-\u309a\u309d-\u309e\u30a1-\u30fe\u3105-"
+ "\u312c\u3131-\u318e\u31a0-\u31b7\u3400-\u4db5\u4e00-\u9fa5\ua000-\ua48c\uac00-\ud7a3\uf900-\ufa2d\ufb00-\ufb06\ufb13-\ufb17\ufb1d-"
+ "\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-"
+ "\ufdfb\ufe20-\ufe23\ufe33-\ufe34\ufe4d-\ufe4f\ufe69\ufe70-\ufe72\ufe74\ufe76-\ufefc\ufeff\uff04\uff10-\uff19\uff21-\uff3a\uff3f\uff41-"
+ "\uff5a\uff65-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe1\uffe5-\uffe6\ufff9-\ufffb]*)\\b",
" "), INTEGER_LITERAL("^([a-fA-F0-9lLxX]+)"), FLOAT_LITERAL("^([a-fA-F0-9\\.\\+\\-pPxX]+)"),
CHARACTER_LITERAL("^(\\'([^\\'\\\\n\r]|(\\\\[ntbrf\\\\\\'\\\"0-7]+))\\')"), STRING_LITERAL(
"^(\\\"([^\\'\\\\\n\\r]|(\\\\[ntbrf\\\\\\'\\\"0-7]+))*\\\")"), LPAREN("^(\\()"), RPAREN("^(\\))"), LBRACE(
"^(\\{)"), RBRACE("^(\\})"), LBREACKET("^(\\[)"), RBRACKET("^(\\])"), SEMICOLON("^(\\;)"), COMMA("^(\\,)"),
AT("^(\\@)"), ASSIGN("^(\\=)"), LT("^(\\<)"), RT("^(\\>)"), BANG("^(\\!)"), TILDE("^(\\~)"), HOOK("^(\\?)"), COLON(
"^(\\:)"), EQ("^(\\=\\=)"), LE("^(\\<\\=)"), GE("^(\\>\\=)"), NE("^(\\!\\=)"), SC_OR("^(\\|\\|)"), SC_AND(
"^(\\&\\&)"), INCR("^(\\+\\+)"), DECR("^(\\-\\-)"), PLUS("^(\\+)"), MINUS("^(\\-)"), STAR("^(\\*)"), SLASH(
"^(\\/)"), BIT_AND("^(\\&)"), BIT_OR("^(\\|)"), XOR("^(\\^)"), REM("^(\\%)"), LSHIFT("^(\\<\\<)"),
PLUSASSIGN("^(\\+\\=)"), MINUSASSIGN("^(\\-\\=)"), STARASSIGN("^(\\*\\=)"), SLASHASSIGN("^(\\/\\=)"), ANDASSIGN(
"^(\\&\\=)"), ORASSIGN("^(\\|\\=)"), XORASSIGN("^(\\^\\=)"), REMASSIGN("^(\\%\\=)"), LSHIFTASSIGN(
"^(\\<\\<\\=)"), RSIGNEDSHIFTASSIGN("^(\\>\\>\\=)"), RUNSIGNEDSHITASSIGN("^(\\>\\>\\>\\=)"), ELLIPSIS(
"^(\\.\\.\\.)");
final Pattern r;
public final String postfix;
public final String text;
private TokenType(String regex, String postfix) {
this.r = Pattern.compile(regex);
this.postfix = postfix;
this.text = toString();
}
private TokenType(String regex) {
this.r = Pattern.compile(regex);
this.postfix = "";
this.text = toString();
}
}