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
;
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
;
16 fra
.me
.meth
= LOCATE_utils___Object___cmangle
;
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
;
26 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[1], COLOR_Array
, ID_Array
)) /*cast Array[Symbol]*/;
28 if (UNTAG_Bool(REGB0
)) {
30 fprintf(stderr
, "Cast failed");
31 fprintf(stderr
, " (%s:%d)\n", LOCATE_utils
, 21);
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]);
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
));
50 if (UNTAG_Bool(REGB0
)) {
51 REGB0
= TAG_Char('_');
53 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
54 REGB0
= TAG_Char('_');
56 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
57 REGB0
= TAG_Char('_');
59 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
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]);
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
));
73 if (UNTAG_Bool(REGB3
)) {
74 REGB3
= TAG_Char('z');
75 REGB3
= TAG_Bool(UNTAG_Char(REGB2
)<=UNTAG_Char(REGB3
));
78 REGB4
= TAG_Bool(false);
81 if (UNTAG_Bool(REGB3
)) {
82 REGB3
= TAG_Bool(true);
84 REGB4
= TAG_Char('A');
85 REGB4
= TAG_Bool(UNTAG_Char(REGB2
)>=UNTAG_Char(REGB4
));
87 if (UNTAG_Bool(REGB4
)) {
88 REGB4
= TAG_Char('Z');
89 REGB4
= TAG_Bool(UNTAG_Char(REGB2
)<=UNTAG_Char(REGB4
));
92 REGB5
= TAG_Bool(false);
97 if (UNTAG_Bool(REGB3
)) {
98 REGB3
= TAG_Bool(true);
100 REGB4
= TAG_Char('0');
101 REGB4
= TAG_Bool(UNTAG_Char(REGB2
)>=UNTAG_Char(REGB4
));
103 if (UNTAG_Bool(REGB4
)) {
104 REGB4
= TAG_Char('9');
105 REGB4
= TAG_Bool(UNTAG_Char(REGB2
)<=UNTAG_Char(REGB4
));
108 REGB5
= TAG_Bool(false);
113 if (UNTAG_Bool(REGB3
)) {
115 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
116 REGB3
= TAG_Bool(false);
118 REGB3
= TAG_Bool(true);
122 REGB3
= TAG_Char('_');
123 REGB4
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB3
));
125 if (UNTAG_Bool(REGB4
)) {
127 REGB3
= TAG_Bool((REGB2
)==(REGB3
));
131 if (UNTAG_Bool(REGB4
)) {
132 REGB4
= TAG_Bool(!UNTAG_Bool(REGB0
));
134 REGB3
= TAG_Bool(false);
137 if (UNTAG_Bool(REGB4
)) {
139 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB2
);
140 REGB4
= TAG_Bool(true);
142 REGB4
= TAG_Bool(true);
146 REGB4
= CALL_abstract_collection___MapRead___has_key(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB2
);
148 if (UNTAG_Bool(REGB4
)) {
150 if (UNTAG_Bool(REGB1
)) {
151 REGB4
= TAG_Char('_');
153 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB4
);
154 REGB4
= TAG_Char('_');
156 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB4
);
158 fra
.me
.REG
[4] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB2
);
160 CALL_abstract_collection___Sequence___append(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
161 REGB2
= TAG_Bool(false);
163 REGB2
= TAG_Bool(false);
173 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
180 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
183 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
187 stack_frame_head
= fra
.me
.prev
;
188 return fra
.me
.REG
[2];
190 val_t
utils___Object___cmangle_table(val_t p0
){
191 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
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
;
210 fra
.me
.meth
= LOCATE_utils___Object___cmangle_table
;
211 fra
.me
.has_broke
= 0;
213 fra
.me
.REG
[0] = NIT_NULL
;
214 fra
.me
.REG
[1] = NIT_NULL
;
216 fra
.me
.REG
[0] = NEW_HashMap_hash_collection___HashMap___init();
217 REGB0
= TAG_Char('+');
220 fra
.me
.REG
[1] = BOX_NativeString("plus");
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('-');
230 fra
.me
.REG
[1] = BOX_NativeString("minus");
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('*');
240 fra
.me
.REG
[1] = BOX_NativeString("star");
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('/');
250 fra
.me
.REG
[1] = BOX_NativeString("slash");
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('%');
260 fra
.me
.REG
[1] = BOX_NativeString("percent");
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('[');
270 fra
.me
.REG
[1] = BOX_NativeString("bra");
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('=');
280 fra
.me
.REG
[1] = BOX_NativeString("eq");
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('<');
290 fra
.me
.REG
[1] = BOX_NativeString("l");
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('>');
300 fra
.me
.REG
[1] = BOX_NativeString("g");
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('!');
309 if (!once_value_10
) {
310 fra
.me
.REG
[1] = BOX_NativeString("n");
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('_');
319 if (!once_value_11
) {
320 fra
.me
.REG
[1] = BOX_NativeString("u");
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('@');
329 if (!once_value_12
) {
330 fra
.me
.REG
[1] = BOX_NativeString("at");
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]);
340 stack_frame_head
= fra
.me
.prev
;
341 return fra
.me
.REG
[0];