Merge branch 'pu/parser_tables_in_c' into wip
[nit.git] / c_src / utils._sep.c
1 /* This C file is generated by NIT to compile module utils. */
2 #include "utils._sep.h"
3 val_t utils___Object___cmangle(val_t p0, val_t p1){
4 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
5 val_t REGB0;
6 val_t REGB1;
7 val_t REGB2;
8 val_t REGB3;
9 val_t REGB4;
10 val_t REGB5;
11 val_t tmp;
12 static val_t once_value_1; /* Once value */
13 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
14 fra.me.file = LOCATE_utils;
15 fra.me.line = 21;
16 fra.me.meth = LOCATE_utils___Object___cmangle;
17 fra.me.has_broke = 0;
18 fra.me.REG_size = 5;
19 fra.me.REG[0] = NIT_NULL;
20 fra.me.REG[1] = NIT_NULL;
21 fra.me.REG[2] = NIT_NULL;
22 fra.me.REG[3] = NIT_NULL;
23 fra.me.REG[4] = NIT_NULL;
24 fra.me.REG[0] = p0;
25 fra.me.REG[1] = p1;
26 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_Array, ID_Array)) /*cast Array[Symbol]*/;
27 /* ./utils.nit:21 */
28 if (UNTAG_Bool(REGB0)) {
29 } else {
30 fprintf(stderr, "Cast failed");
31 fprintf(stderr, " (%s:%d)\n", LOCATE_utils, 21);
32 nit_exit(1);
33 }
34 /* ./utils.nit:24 */
35 if (!once_value_1) {
36 fra.me.REG[0] = CALL_utils___Object___cmangle_table(fra.me.REG[0])(fra.me.REG[0]);
37 once_value_1 = fra.me.REG[0];
38 register_static_object(&once_value_1);
39 } else fra.me.REG[0] = once_value_1;
40 fra.me.REG[2] = NEW_Buffer_string___Buffer___init();
41 fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]);
42 /* ./utils.nit:26 */
43 while(1) {
44 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
45 if (UNTAG_Bool(REGB0)) {
46 fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
47 REGB0 = CALL_abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
48 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
49 /* ./utils.nit:27 */
50 if (UNTAG_Bool(REGB0)) {
51 REGB0 = TAG_Char('_');
52 /* ./utils.nit:28 */
53 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB0);
54 REGB0 = TAG_Char('_');
55 /* ./utils.nit:29 */
56 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB0);
57 REGB0 = TAG_Char('_');
58 /* ./utils.nit:30 */
59 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB0);
60 }
61 REGB0 = TAG_Bool(false);
62 REGB1 = TAG_Bool(true);
63 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
64 fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]);
65 /* ./utils.nit:35 */
66 while(1) {
67 REGB2 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]);
68 if (UNTAG_Bool(REGB2)) {
69 REGB2 = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]);
70 REGB3 = TAG_Char('a');
71 REGB3 = TAG_Bool(UNTAG_Char(REGB2)>=UNTAG_Char(REGB3));
72 /* ./utils.nit:36 */
73 if (UNTAG_Bool(REGB3)) {
74 REGB3 = TAG_Char('z');
75 REGB3 = TAG_Bool(UNTAG_Char(REGB2)<=UNTAG_Char(REGB3));
76 /* ./utils.nit:36 */
77 } else {
78 REGB4 = TAG_Bool(false);
79 REGB3 = REGB4;
80 }
81 if (UNTAG_Bool(REGB3)) {
82 REGB3 = TAG_Bool(true);
83 } else {
84 REGB4 = TAG_Char('A');
85 REGB4 = TAG_Bool(UNTAG_Char(REGB2)>=UNTAG_Char(REGB4));
86 /* ./utils.nit:36 */
87 if (UNTAG_Bool(REGB4)) {
88 REGB4 = TAG_Char('Z');
89 REGB4 = TAG_Bool(UNTAG_Char(REGB2)<=UNTAG_Char(REGB4));
90 /* ./utils.nit:36 */
91 } else {
92 REGB5 = TAG_Bool(false);
93 REGB4 = REGB5;
94 }
95 REGB3 = REGB4;
96 }
97 if (UNTAG_Bool(REGB3)) {
98 REGB3 = TAG_Bool(true);
99 } else {
100 REGB4 = TAG_Char('0');
101 REGB4 = TAG_Bool(UNTAG_Char(REGB2)>=UNTAG_Char(REGB4));
102 /* ./utils.nit:36 */
103 if (UNTAG_Bool(REGB4)) {
104 REGB4 = TAG_Char('9');
105 REGB4 = TAG_Bool(UNTAG_Char(REGB2)<=UNTAG_Char(REGB4));
106 /* ./utils.nit:36 */
107 } else {
108 REGB5 = TAG_Bool(false);
109 REGB4 = REGB5;
110 }
111 REGB3 = REGB4;
112 }
113 if (UNTAG_Bool(REGB3)) {
114 /* ./utils.nit:37 */
115 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB2);
116 REGB3 = TAG_Bool(false);
117 REGB0 = REGB3;
118 REGB3 = TAG_Bool(true);
119 REGB1 = REGB3;
120 /* ./utils.nit:39 */
121 } else {
122 REGB3 = TAG_Char('_');
123 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB3));
124 /* ./utils.nit:40 */
125 if (UNTAG_Bool(REGB4)) {
126 } else {
127 REGB3 = TAG_Bool((REGB2)==(REGB3));
128 REGB4 = REGB3;
129 /* ./utils.nit:40 */
130 }
131 if (UNTAG_Bool(REGB4)) {
132 REGB4 = TAG_Bool(!UNTAG_Bool(REGB0));
133 } else {
134 REGB3 = TAG_Bool(false);
135 REGB4 = REGB3;
136 }
137 if (UNTAG_Bool(REGB4)) {
138 /* ./utils.nit:41 */
139 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB2);
140 REGB4 = TAG_Bool(true);
141 REGB0 = REGB4;
142 REGB4 = TAG_Bool(true);
143 REGB1 = REGB4;
144 /* ./utils.nit:43 */
145 } else {
146 REGB4 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[0])(fra.me.REG[0], REGB2);
147 /* ./utils.nit:44 */
148 if (UNTAG_Bool(REGB4)) {
149 /* ./utils.nit:45 */
150 if (UNTAG_Bool(REGB1)) {
151 REGB4 = TAG_Char('_');
152 /* ./utils.nit:46 */
153 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB4);
154 REGB4 = TAG_Char('_');
155 /* ./utils.nit:47 */
156 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB4);
157 }
158 fra.me.REG[4] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB2);
159 /* ./utils.nit:49 */
160 CALL_abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
161 REGB2 = TAG_Bool(false);
162 REGB1 = REGB2;
163 REGB2 = TAG_Bool(false);
164 REGB0 = REGB2;
165 /* ./utils.nit:51 */
166 }
167 }
168 }
169 } else {
170 /* ./utils.nit:35 */
171 goto label2;
172 }
173 CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]);
174 }
175 label2: while(0);
176 } else {
177 /* ./utils.nit:26 */
178 goto label3;
179 }
180 CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
181 }
182 label3: while(0);
183 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
184 /* ./utils.nit:55 */
185 goto label4;
186 label4: while(0);
187 stack_frame_head = fra.me.prev;
188 return fra.me.REG[2];
189 }
190 val_t utils___Object___cmangle_table(val_t p0){
191 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
192 val_t REGB0;
193 val_t REGB1;
194 val_t tmp;
195 static val_t once_value_1; /* Once value */
196 static val_t once_value_2; /* Once value */
197 static val_t once_value_3; /* Once value */
198 static val_t once_value_4; /* Once value */
199 static val_t once_value_5; /* Once value */
200 static val_t once_value_6; /* Once value */
201 static val_t once_value_7; /* Once value */
202 static val_t once_value_8; /* Once value */
203 static val_t once_value_9; /* Once value */
204 static val_t once_value_10; /* Once value */
205 static val_t once_value_11; /* Once value */
206 static val_t once_value_12; /* Once value */
207 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
208 fra.me.file = LOCATE_utils;
209 fra.me.line = 58;
210 fra.me.meth = LOCATE_utils___Object___cmangle_table;
211 fra.me.has_broke = 0;
212 fra.me.REG_size = 2;
213 fra.me.REG[0] = NIT_NULL;
214 fra.me.REG[1] = NIT_NULL;
215 fra.me.REG[0] = p0;
216 fra.me.REG[0] = NEW_HashMap_hash_collection___HashMap___init();
217 REGB0 = TAG_Char('+');
218 /* ./utils.nit:62 */
219 if (!once_value_1) {
220 fra.me.REG[1] = BOX_NativeString("plus");
221 REGB1 = TAG_Int(4);
222 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB1);
223 once_value_1 = fra.me.REG[1];
224 register_static_object(&once_value_1);
225 } else fra.me.REG[1] = once_value_1;
226 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
227 REGB0 = TAG_Char('-');
228 /* ./utils.nit:63 */
229 if (!once_value_2) {
230 fra.me.REG[1] = BOX_NativeString("minus");
231 REGB1 = TAG_Int(5);
232 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB1);
233 once_value_2 = fra.me.REG[1];
234 register_static_object(&once_value_2);
235 } else fra.me.REG[1] = once_value_2;
236 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
237 REGB0 = TAG_Char('*');
238 /* ./utils.nit:64 */
239 if (!once_value_3) {
240 fra.me.REG[1] = BOX_NativeString("star");
241 REGB1 = TAG_Int(4);
242 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB1);
243 once_value_3 = fra.me.REG[1];
244 register_static_object(&once_value_3);
245 } else fra.me.REG[1] = once_value_3;
246 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
247 REGB0 = TAG_Char('/');
248 /* ./utils.nit:65 */
249 if (!once_value_4) {
250 fra.me.REG[1] = BOX_NativeString("slash");
251 REGB1 = TAG_Int(5);
252 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB1);
253 once_value_4 = fra.me.REG[1];
254 register_static_object(&once_value_4);
255 } else fra.me.REG[1] = once_value_4;
256 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
257 REGB0 = TAG_Char('%');
258 /* ./utils.nit:66 */
259 if (!once_value_5) {
260 fra.me.REG[1] = BOX_NativeString("percent");
261 REGB1 = TAG_Int(7);
262 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB1);
263 once_value_5 = fra.me.REG[1];
264 register_static_object(&once_value_5);
265 } else fra.me.REG[1] = once_value_5;
266 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
267 REGB0 = TAG_Char('[');
268 /* ./utils.nit:67 */
269 if (!once_value_6) {
270 fra.me.REG[1] = BOX_NativeString("bra");
271 REGB1 = TAG_Int(3);
272 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB1);
273 once_value_6 = fra.me.REG[1];
274 register_static_object(&once_value_6);
275 } else fra.me.REG[1] = once_value_6;
276 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
277 REGB0 = TAG_Char('=');
278 /* ./utils.nit:68 */
279 if (!once_value_7) {
280 fra.me.REG[1] = BOX_NativeString("eq");
281 REGB1 = TAG_Int(2);
282 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB1);
283 once_value_7 = fra.me.REG[1];
284 register_static_object(&once_value_7);
285 } else fra.me.REG[1] = once_value_7;
286 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
287 REGB0 = TAG_Char('<');
288 /* ./utils.nit:69 */
289 if (!once_value_8) {
290 fra.me.REG[1] = BOX_NativeString("l");
291 REGB1 = TAG_Int(1);
292 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB1);
293 once_value_8 = fra.me.REG[1];
294 register_static_object(&once_value_8);
295 } else fra.me.REG[1] = once_value_8;
296 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
297 REGB0 = TAG_Char('>');
298 /* ./utils.nit:70 */
299 if (!once_value_9) {
300 fra.me.REG[1] = BOX_NativeString("g");
301 REGB1 = TAG_Int(1);
302 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB1);
303 once_value_9 = fra.me.REG[1];
304 register_static_object(&once_value_9);
305 } else fra.me.REG[1] = once_value_9;
306 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
307 REGB0 = TAG_Char('!');
308 /* ./utils.nit:71 */
309 if (!once_value_10) {
310 fra.me.REG[1] = BOX_NativeString("n");
311 REGB1 = TAG_Int(1);
312 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB1);
313 once_value_10 = fra.me.REG[1];
314 register_static_object(&once_value_10);
315 } else fra.me.REG[1] = once_value_10;
316 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
317 REGB0 = TAG_Char('_');
318 /* ./utils.nit:72 */
319 if (!once_value_11) {
320 fra.me.REG[1] = BOX_NativeString("u");
321 REGB1 = TAG_Int(1);
322 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB1);
323 once_value_11 = fra.me.REG[1];
324 register_static_object(&once_value_11);
325 } else fra.me.REG[1] = once_value_11;
326 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
327 REGB0 = TAG_Char('@');
328 /* ./utils.nit:73 */
329 if (!once_value_12) {
330 fra.me.REG[1] = BOX_NativeString("at");
331 REGB1 = TAG_Int(2);
332 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB1);
333 once_value_12 = fra.me.REG[1];
334 register_static_object(&once_value_12);
335 } else fra.me.REG[1] = once_value_12;
336 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[1]);
337 /* ./utils.nit:74 */
338 goto label13;
339 label13: while(0);
340 stack_frame_head = fra.me.prev;
341 return fra.me.REG[0];
342 }