vxx2 / vlib / v3 / token / util.v
183 lines · 182 sloc · 7.12 KB · ebf2f0131f8dd63a65cbb7b25ceba589e07bd33c
Raw
1module token
2
3// vfmt off
4@[direct_array_access]
5pub fn Token.from_string_tinyv(name string) Token {
6 match name.len {
7 2 {
8 match name[0] {
9 `a` {
10 match name[1] {
11 `s` { return .key_as }
12 else { return .name }
13 }
14 }
15 `f` {
16 match name[1] {
17 `n` { return .key_fn }
18 else { return .name }
19 }
20 }
21 `g` {
22 match name[1] {
23 `o` { return .key_go }
24 else { return .name }
25 }
26 }
27 `i` {
28 match name[1] {
29 `f` { return .key_if }
30 `n` { return .key_in }
31 `s` { return .key_is }
32 else { return .name }
33 }
34 }
35 `o` {
36 match name[1] {
37 `r` { return .key_or }
38 else { return .name }
39 }
40 }
41 else { return .name }
42 }
43 return .name
44 }
45 3 {
46 match name[0] {
47 `a` {
48 if name[1] == `s` && name[2] == `m` { return .key_asm } else { return .name }
49 }
50 `f` {
51 if name[1] == `o` && name[2] == `r` { return .key_for } else { return .name }
52 }
53 `m` {
54 if name[1] == `u` && name[2] == `t` { return .key_mut } else { return .name }
55 }
56 `n` {
57 if name[1] == `i` && name[2] == `l` { return .key_nil } else { return .name }
58 }
59 `p` {
60 if name[1] == `u` && name[2] == `b` { return .key_pub } else { return .name }
61 }
62 else { return .name }
63 }
64 return .name
65 }
66 4 {
67 match name[0] {
68 `d` {
69 if name[1] == `u` && name[2] == `m` && name[3] == `p` { return .key_dump } else { return .name }
70 }
71 `e` {
72 match name[1] {
73 `l` { if name[2] == `s` && name[3] == `e` { return .key_else } else { return .name } }
74 `n` { if name[2] == `u` && name[3] == `m` { return .key_enum } else { return .name } }
75 else { return .name }
76 }
77 }
78 `g` {
79 if name[1] == `o` && name[2] == `t` && name[3] == `o` { return .key_goto } else { return .name }
80 }
81 `l` {
82 if name[1] == `o` && name[2] == `c` && name[3] == `k` { return .key_lock } else { return .name }
83 }
84 `n` {
85 if name[1] == `o` && name[2] == `n` && name[3] == `e` { return .key_none } else { return .name }
86 }
87 `t` {
88 match name[1] {
89 `r` { if name[2] == `u` && name[3] == `e` { return .key_true } else { return .name } }
90 `y` { if name[2] == `p` && name[3] == `e` { return .key_type } else { return .name } }
91 else { return .name }
92 }
93 }
94 else { return .name }
95 }
96 }
97 5 {
98 match name[0] {
99 `b` { if name[1] == `r` && name[2] == `e` && name[3] == `a` && name[4] == `k` { return .key_break } else { return .name } }
100 `c` { if name[1] == `o` && name[2] == `n` && name[3] == `s` && name[4] == `t` { return .key_const } else { return .name } }
101 `d` { if name[1] == `e` && name[2] == `f` && name[3] == `e` && name[4] == `r` { return .key_defer } else { return .name } }
102 `f` { if name[1] == `a` && name[2] == `l` && name[3] == `s` && name[4] == `e` { return .key_false } else { return .name } }
103 `m` { if name[1] == `a` && name[2] == `t` && name[3] == `c` && name[4] == `h` { return .key_match } else { return .name } }
104 `r` { if name[1] == `l` && name[2] == `o` && name[3] == `c` && name[4] == `k` { return .key_rlock } else { return .name } }
105 `s` { if name[1] == `p` && name[2] == `a` && name[3] == `w` && name[4] == `n` { return .key_spawn } else { return .name } }
106 `u` { if name[1] == `n` && name[2] == `i` && name[3] == `o` && name[4] == `n` { return .key_union } else { return .name } }
107 else { return .name }
108 }
109 }
110 6 {
111 match name[0] {
112 `a` {
113 match name[1] {
114 `s` { if name[2] == `s` && name[3] == `e` && name[4] == `r` && name[5] == `t` { return .key_assert } else { return .name } }
115 `t` { if name[2] == `o` && name[3] == `m` && name[4] == `i` && name[5] == `c` { return .key_atomic } else { return .name } }
116 else { return .name }
117 }
118 }
119 `i` { if name[1] == `m` && name[2] == `p` && name[3] == `o` && name[4] == `r` && name[5] == `t` { return .key_import } else { return .name } }
120 `m` { if name[1] == `o` && name[2] == `d` && name[3] == `u` && name[4] == `l` && name[5] == `e` { return .key_module } else { return .name } }
121 `r` { if name[1] == `e` && name[2] == `t` && name[3] == `u` && name[4] == `r` && name[5] == `n` { return .key_return } else { return .name } }
122 `s` {
123 match name[1] {
124 `e` { if name[2] == `l` && name[3] == `e` && name[4] == `c` && name[5] == `t` { return .key_select } else { return .name } }
125 `h` { if name[2] == `a` && name[3] == `r` && name[4] == `e` && name[5] == `d` { return .key_shared } else { return .name } }
126 `i` { if name[2] == `z` && name[3] == `e` && name[4] == `o` && name[5] == `f` { return .key_sizeof } else { return .name } }
127 `t` {
128 match name[2] {
129 `a` { if name[3] == `t` && name[4] == `i` && name[5] == `c` { return .key_static } else { return .name } }
130 `r` { if name[3] == `u` && name[4] == `c` && name[5] == `t` { return .key_struct } else { return .name } }
131 else { return .name }
132 }
133 }
134 else { return .name }
135 }
136 }
137 `t` { if name[1] == `y` && name[2] == `p` && name[3] == `e` && name[4] == `o` && name[5] == `f` { return .key_typeof } else { return .name } }
138 `u` { if name[1] == `n` && name[2] == `s` && name[3] == `a` && name[4] == `f` && name[5] == `e` { return .key_unsafe } else { return .name } }
139 else { return .name }
140 }
141 }
142 8 {
143 match name[0] {
144 `_` {
145 match name[1] {
146 `_` { if name[2] == `g` && name[3] == `l` && name[4] == `o` && name[5] == `b` && name[6] == `a` && name[7] == `l` { return .key_global } else { return .name } }
147 `l` { if name[2] == `i` && name[3] == `k` && name[4] == `e` && name[5] == `l` && name[6] == `y` && name[7] == `_` { return .key_likely } else { return .name } }
148 else { return .name }
149 }
150 }
151 `c` { if name[1] == `o` && name[2] == `n` && name[3] == `t` && name[4] == `i` && name[5] == `n` && name[6] == `u` && name[7] == `e` { return .key_continue } else { return .name } }
152 `v` { if name[1] == `o` && name[2] == `l` && name[3] == `a` && name[4] == `t` && name[5] == `i` && name[6] == `l` && name[7] == `e` { return .key_volatile } else { return .name } }
153 else { return .name }
154 }
155 }
156 9 {
157 match name[0] {
158 `i` {
159 match name[1] {
160 `n` { if name[2] == `t` && name[3] == `e` && name[4] == `r` && name[5] == `f` && name[6] == `a` && name[7] == `c` && name[8] == `e` { return .key_interface } else { return .name } }
161 `s` { if name[2] == `r` && name[3] == `e` && name[4] == `f` && name[5] == `t` && name[6] == `y` && name[7] == `p` && name[8] == `e` { return .key_isreftype } else { return .name } }
162 else { return .name }
163 }
164 }
165 else { return .name }
166 }
167 }
168 10 {
169 match name[0] {
170 `_` {
171 match name[1] {
172 `_` { if name[2] == `o` && name[3] == `f` && name[4] == `f` && name[5] == `s` && name[6] == `e` && name[7] == `t` && name[8] == `o` && name[9] == `f` { return .key_offsetof } else { return .name } }
173 `u` { if name[2] == `n` && name[3] == `l` && name[4] == `i` && name[5] == `k` && name[6] == `e` && name[7] == `l` && name[8] == `y` && name[9] == `_` { return .key_unlikely } else { return .name } }
174 else { return .name }
175 }
176 }
177 else { return .name }
178 }
179 }
180 else { return .name }
181 }
182}
183// vfmt on
184