X-Git-Url: http://nitlanguage.org diff --git a/c_src/primitive_info._sep.c b/c_src/primitive_info._sep.c index 5f6c532..41405c9 100644 --- a/c_src/primitive_info._sep.c +++ b/c_src/primitive_info._sep.c @@ -1,5 +1,22 @@ /* This C file is generated by NIT to compile module primitive_info. */ #include "primitive_info._sep.h" +static const char LOCATE_primitive_info___MMLocalClass___extern_c_type[] = "primitive_info::MMLocalClass::extern_c_type"; +val_t primitive_info___MMLocalClass___extern_c_type(val_t p0){ + struct {struct stack_frame_t me;} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_primitive_info; + fra.me.line = 25; + fra.me.meth = LOCATE_primitive_info___MMLocalClass___extern_c_type; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + fra.me.nitni_local_ref_head = NULL; + /* primitive_info.nit:25 */ + nit_abort("Deferred method called", NULL, LOCATE_primitive_info, 25); + stack_frame_head = fra.me.prev; + return NIT_NULL; +} +static const char LOCATE_primitive_info___MMLocalClass___primitive_info[] = "primitive_info::MMLocalClass::primitive_info"; val_t primitive_info___MMLocalClass___primitive_info(val_t p0){ struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; val_t REGB0; @@ -9,108 +26,129 @@ val_t primitive_info___MMLocalClass___primitive_info(val_t p0){ static val_t once_value_2; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_primitive_info; - fra.me.line = 31; + fra.me.line = 34; fra.me.meth = LOCATE_primitive_info___MMLocalClass___primitive_info; fra.me.has_broke = 0; fra.me.REG_size = 5; + fra.me.nitni_local_ref_head = NULL; fra.me.REG[0] = NIT_NULL; fra.me.REG[1] = NIT_NULL; fra.me.REG[2] = NIT_NULL; fra.me.REG[3] = NIT_NULL; fra.me.REG[4] = NIT_NULL; fra.me.REG[0] = p0; - /* ./primitive_info.nit:35 */ + /* primitive_info.nit:38 */ REGB0 = TAG_Bool(ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - nit_abort("Uninitialized attribute %s", "_primitive_info_b", LOCATE_primitive_info, 35); + nit_abort("Uninitialized attribute %s", "_primitive_info_b", LOCATE_primitive_info, 38); } REGB0 = ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]); - REGB1 = TAG_Bool(true); + REGB1 = TAG_Bool(1); REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1)); if (UNTAG_Bool(REGB2)) { } else { - /* ./../lib/standard//kernel.nit:178 */ + /* ../lib/standard/kernel.nit:198 */ REGB1 = TAG_Bool((REGB0)==(REGB1)); - /* ./primitive_info.nit:35 */ + /* primitive_info.nit:38 */ REGB2 = REGB1; } if (UNTAG_Bool(REGB2)) { fra.me.REG[1] = ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]); goto label1; } - /* ./primitive_info.nit:37 */ + /* primitive_info.nit:40 */ if (!once_value_2) { fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_ctypes(fra.me.REG[0])(fra.me.REG[0]); once_value_2 = fra.me.REG[2]; register_static_object(&once_value_2); } else fra.me.REG[2] = once_value_2; fra.me.REG[2] = fra.me.REG[2]; - /* ./primitive_info.nit:38 */ + /* primitive_info.nit:41 */ fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]); REGB2 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); if (UNTAG_Bool(REGB2)) { - /* ./primitive_info.nit:39 */ + /* primitive_info.nit:42 */ fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]) = fra.me.REG[3]; - /* ./primitive_info.nit:40 */ - REGB2 = TAG_Bool(true); + /* primitive_info.nit:43 */ + REGB2 = TAG_Bool(1); ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]) = REGB2; - /* ./primitive_info.nit:41 */ + /* primitive_info.nit:44 */ fra.me.REG[3] = ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]); fra.me.REG[1] = fra.me.REG[3]; goto label1; } - /* ./primitive_info.nit:43 */ - fra.me.REG[2] = CALL_standard___collection___abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]); - /* ./primitive_info.nit:44 */ + /* primitive_info.nit:46 */ + fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]); + REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[3])(fra.me.REG[3]); + if (UNTAG_Bool(REGB2)) { + /* primitive_info.nit:47 */ + fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]); + REGB2 = TAG_Bool(0); + fra.me.REG[4] = CALL_primitive_info___MMLocalClass___extern_c_type(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[4] = NEW_PrimitiveInfo_primitive_info___PrimitiveInfo___init(fra.me.REG[3], REGB2, fra.me.REG[4]); + /* primitive_info.nit:48 */ + ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]) = fra.me.REG[4]; + /* primitive_info.nit:49 */ + REGB2 = TAG_Bool(1); + ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]) = REGB2; + /* primitive_info.nit:50 */ + fra.me.REG[4] = ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]); + fra.me.REG[1] = fra.me.REG[4]; + goto label1; + } + /* primitive_info.nit:52 */ + fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead___iterator(fra.me.REG[2])(fra.me.REG[2]); + /* primitive_info.nit:53 */ while(1) { - REGB2 = CALL_standard___collection___abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]); + REGB2 = CALL_standard___collection___abstract_collection___MapIterator___is_ok(fra.me.REG[2])(fra.me.REG[2]); if (UNTAG_Bool(REGB2)) { - /* ./primitive_info.nit:45 */ - fra.me.REG[3] = CALL_standard___collection___abstract_collection___MapIterator___key(fra.me.REG[2])(fra.me.REG[2]); - /* ./primitive_info.nit:46 */ - fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]); - REGB2 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); + /* primitive_info.nit:54 */ + fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapIterator___key(fra.me.REG[2])(fra.me.REG[2]); + /* primitive_info.nit:55 */ + fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]); + REGB2 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); if (UNTAG_Bool(REGB2)) { - /* ./primitive_info.nit:47 */ - fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); - /* ./primitive_info.nit:48 */ - fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]); - REGB2 = CALL_metamodel___partial_order___PartialOrderElement_____l(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); + /* primitive_info.nit:56 */ + fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); + /* primitive_info.nit:57 */ + fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]); + REGB2 = CALL_metamodel___partial_order___PartialOrderElement_____l(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); if (UNTAG_Bool(REGB2)) { - /* ./primitive_info.nit:49 */ - fra.me.REG[3] = CALL_standard___collection___abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]); - ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]) = fra.me.REG[3]; - /* ./primitive_info.nit:50 */ - REGB2 = TAG_Bool(true); + /* primitive_info.nit:58 */ + fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapIterator___item(fra.me.REG[2])(fra.me.REG[2]); + ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]) = fra.me.REG[4]; + /* primitive_info.nit:59 */ + REGB2 = TAG_Bool(1); ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]) = REGB2; - /* ./primitive_info.nit:51 */ - fra.me.REG[3] = ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]); - fra.me.REG[1] = fra.me.REG[3]; + /* primitive_info.nit:60 */ + fra.me.REG[4] = ATTR_primitive_info___MMLocalClass____primitive_info_cache(fra.me.REG[0]); + fra.me.REG[1] = fra.me.REG[4]; goto label1; } } - /* ./primitive_info.nit:54 */ - CALL_standard___collection___abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]); + /* primitive_info.nit:63 */ + CALL_standard___collection___abstract_collection___MapIterator___next(fra.me.REG[2])(fra.me.REG[2]); } else { - /* ./primitive_info.nit:44 */ + /* primitive_info.nit:53 */ goto label3; } } label3: while(0); - /* ./primitive_info.nit:56 */ - REGB2 = TAG_Bool(true); + /* primitive_info.nit:65 */ + REGB2 = TAG_Bool(1); ATTR_primitive_info___MMLocalClass____primitive_info_b(fra.me.REG[0]) = REGB2; - /* ./primitive_info.nit:57 */ + /* primitive_info.nit:66 */ fra.me.REG[1] = NIT_NULL; goto label1; label1: while(0); stack_frame_head = fra.me.prev; return fra.me.REG[1]; } +static const char LOCATE_primitive_info___MMLocalClass___primitive_ctypes[] = "primitive_info::MMLocalClass::primitive_ctypes"; val_t primitive_info___MMLocalClass___primitive_ctypes(val_t p0){ struct {struct stack_frame_t me; val_t MORE_REG[6];} fra; val_t REGB0; @@ -134,10 +172,11 @@ val_t primitive_info___MMLocalClass___primitive_ctypes(val_t p0){ static val_t once_value_12; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_primitive_info; - fra.me.line = 60; + fra.me.line = 69; fra.me.meth = LOCATE_primitive_info___MMLocalClass___primitive_ctypes; fra.me.has_broke = 0; fra.me.REG_size = 7; + fra.me.nitni_local_ref_head = NULL; fra.me.REG[0] = NIT_NULL; fra.me.REG[1] = NIT_NULL; fra.me.REG[2] = NIT_NULL; @@ -146,9 +185,9 @@ val_t primitive_info___MMLocalClass___primitive_ctypes(val_t p0){ fra.me.REG[5] = NIT_NULL; fra.me.REG[6] = NIT_NULL; fra.me.REG[0] = p0; - /* ./primitive_info.nit:63 */ + /* primitive_info.nit:72 */ fra.me.REG[0] = NEW_HashMap_standard___collection___hash_collection___HashMap___init(); - /* ./primitive_info.nit:64 */ + /* primitive_info.nit:73 */ REGB0 = TAG_Int(6); fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); if (!once_value_1) { @@ -205,22 +244,22 @@ val_t primitive_info___MMLocalClass___primitive_ctypes(val_t p0){ } else fra.me.REG[2] = once_value_6; fra.me.REG[2] = fra.me.REG[2]; CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* ./primitive_info.nit:65 */ + /* primitive_info.nit:74 */ REGB0 = TAG_Int(6); fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); - REGB0 = TAG_Bool(true); + REGB0 = TAG_Bool(1); CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB0); - REGB0 = TAG_Bool(true); + REGB0 = TAG_Bool(1); CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB0); - REGB0 = TAG_Bool(true); + REGB0 = TAG_Bool(1); CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB0); - REGB0 = TAG_Bool(false); + REGB0 = TAG_Bool(0); CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB0); - REGB0 = TAG_Bool(false); + REGB0 = TAG_Bool(0); CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB0); - REGB0 = TAG_Bool(false); + REGB0 = TAG_Bool(0); CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], REGB0); - /* ./primitive_info.nit:66 */ + /* primitive_info.nit:75 */ REGB0 = TAG_Int(6); fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); if (!once_value_7) { @@ -277,46 +316,46 @@ val_t primitive_info___MMLocalClass___primitive_ctypes(val_t p0){ } else fra.me.REG[4] = once_value_12; fra.me.REG[4] = fra.me.REG[4]; CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); - /* ./primitive_info.nit:67 */ + /* primitive_info.nit:76 */ REGB0 = TAG_Int(0); - /* ./../lib/standard//collection//array.nit:23 */ + /* ../lib/standard/collection/array.nit:24 */ REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL); if (UNTAG_Bool(REGB1)) { } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23); + nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); } REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]); - /* ./../lib/standard//kernel.nit:335 */ + /* ../lib/standard/kernel.nit:355 */ while(1) { REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/; if (UNTAG_Bool(REGB2)) { } else { nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); } - /* ./../lib/standard//kernel.nit:215 */ + /* ../lib/standard/kernel.nit:235 */ REGB2 = TAG_Bool(UNTAG_Int(REGB0)=UNTAG_Int(REGB4)); - /* ./../lib/standard//collection//array.nit:243 */ + /* ../lib/standard/collection/array.nit:280 */ if (UNTAG_Bool(REGB4)) { REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL); if (UNTAG_Bool(REGB4)) { } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 243); + nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280); } REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]); REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/; @@ -324,52 +363,52 @@ val_t primitive_info___MMLocalClass___primitive_ctypes(val_t p0){ } else { nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); } - /* ./../lib/standard//kernel.nit:215 */ + /* ../lib/standard/kernel.nit:235 */ REGB4 = TAG_Bool(UNTAG_Int(REGB3)val[UNTAG_Int(REGB3)]; - /* ./../lib/standard//collection//array.nit:244 */ + /* ../lib/standard/collection/array.nit:281 */ goto label13; label13: while(0); - /* ./primitive_info.nit:68 */ + /* primitive_info.nit:77 */ REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL); if (UNTAG_Bool(REGB3)) { - nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 68); + nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 77); } - fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]); - /* ./../lib/standard//collection//array.nit:241 */ + fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]); + /* ../lib/standard/collection/array.nit:278 */ fra.me.REG[5] = fra.me.REG[2]; REGB3 = REGB2; - /* ./../lib/standard//collection//array.nit:243 */ + /* ../lib/standard/collection/array.nit:280 */ REGB4 = TAG_Int(0); REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/; if (UNTAG_Bool(REGB5)) { } else { nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); } - /* ./../lib/standard//kernel.nit:216 */ + /* ../lib/standard/kernel.nit:236 */ REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4)); - /* ./../lib/standard//collection//array.nit:243 */ + /* ../lib/standard/collection/array.nit:280 */ if (UNTAG_Bool(REGB4)) { REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL); if (UNTAG_Bool(REGB4)) { } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 243); + nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280); } REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]); REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/; @@ -377,45 +416,45 @@ val_t primitive_info___MMLocalClass___primitive_ctypes(val_t p0){ } else { nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); } - /* ./../lib/standard//kernel.nit:215 */ + /* ../lib/standard/kernel.nit:235 */ REGB4 = TAG_Bool(UNTAG_Int(REGB3)val[UNTAG_Int(REGB3)]; - /* ./../lib/standard//collection//array.nit:244 */ + /* ../lib/standard/collection/array.nit:281 */ goto label14; label14: while(0); - /* ./../lib/standard//collection//array.nit:241 */ + /* ../lib/standard/collection/array.nit:278 */ fra.me.REG[6] = fra.me.REG[3]; - /* ./../lib/standard//collection//array.nit:243 */ + /* ../lib/standard/collection/array.nit:280 */ REGB3 = TAG_Int(0); REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/; if (UNTAG_Bool(REGB4)) { } else { nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); } - /* ./../lib/standard//kernel.nit:216 */ + /* ../lib/standard/kernel.nit:236 */ REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3)); - /* ./../lib/standard//collection//array.nit:243 */ + /* ../lib/standard/collection/array.nit:280 */ if (UNTAG_Bool(REGB3)) { REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL); if (UNTAG_Bool(REGB3)) { } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 243); + nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280); } REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]); REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/; @@ -423,116 +462,123 @@ val_t primitive_info___MMLocalClass___primitive_ctypes(val_t p0){ } else { nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); } - /* ./../lib/standard//kernel.nit:215 */ + /* ../lib/standard/kernel.nit:235 */ REGB3 = TAG_Bool(UNTAG_Int(REGB2)val[UNTAG_Int(REGB2)]; - /* ./../lib/standard//collection//array.nit:244 */ + /* ../lib/standard/collection/array.nit:281 */ goto label15; label15: while(0); - /* ./primitive_info.nit:69 */ + /* primitive_info.nit:78 */ fra.me.REG[6] = NEW_PrimitiveInfo_primitive_info___PrimitiveInfo___init(fra.me.REG[4], fra.me.REG[5], fra.me.REG[6]); - /* ./primitive_info.nit:70 */ + /* primitive_info.nit:79 */ CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[6]); - /* ./../lib/standard//kernel.nit:337 */ + /* ../lib/standard/kernel.nit:357 */ REGB2 = TAG_Int(1); - /* ./../lib/standard//kernel.nit:218 */ + /* ../lib/standard/kernel.nit:238 */ REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2)); - /* ./../lib/standard//kernel.nit:337 */ + /* ../lib/standard/kernel.nit:357 */ REGB0 = REGB2; } else { - /* ./../lib/standard//kernel.nit:335 */ + /* ../lib/standard/kernel.nit:355 */ goto label16; } } label16: while(0); - /* ./primitive_info.nit:72 */ + /* primitive_info.nit:81 */ goto label17; label17: while(0); stack_frame_head = fra.me.prev; return fra.me.REG[0]; } +static const char LOCATE_primitive_info___PrimitiveInfo___name[] = "primitive_info::PrimitiveInfo::name"; val_t primitive_info___PrimitiveInfo___name(val_t p0){ struct {struct stack_frame_t me;} fra; val_t REGB0; val_t tmp; fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_primitive_info; - fra.me.line = 78; + fra.me.line = 87; fra.me.meth = LOCATE_primitive_info___PrimitiveInfo___name; fra.me.has_broke = 0; fra.me.REG_size = 1; + fra.me.nitni_local_ref_head = NULL; fra.me.REG[0] = NIT_NULL; fra.me.REG[0] = p0; - /* ./primitive_info.nit:78 */ + /* primitive_info.nit:87 */ REGB0 = TAG_Bool(ATTR_primitive_info___PrimitiveInfo____name(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - nit_abort("Uninitialized attribute %s", "_name", LOCATE_primitive_info, 78); + nit_abort("Uninitialized attribute %s", "_name", LOCATE_primitive_info, 87); } fra.me.REG[0] = ATTR_primitive_info___PrimitiveInfo____name(fra.me.REG[0]); stack_frame_head = fra.me.prev; return fra.me.REG[0]; } +static const char LOCATE_primitive_info___PrimitiveInfo___tagged[] = "primitive_info::PrimitiveInfo::tagged"; val_t primitive_info___PrimitiveInfo___tagged(val_t p0){ struct {struct stack_frame_t me;} fra; val_t REGB0; val_t tmp; fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_primitive_info; - fra.me.line = 81; + fra.me.line = 90; fra.me.meth = LOCATE_primitive_info___PrimitiveInfo___tagged; fra.me.has_broke = 0; fra.me.REG_size = 1; + fra.me.nitni_local_ref_head = NULL; fra.me.REG[0] = NIT_NULL; fra.me.REG[0] = p0; - /* ./primitive_info.nit:81 */ + /* primitive_info.nit:90 */ REGB0 = TAG_Bool(ATTR_primitive_info___PrimitiveInfo____tagged(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - nit_abort("Uninitialized attribute %s", "_tagged", LOCATE_primitive_info, 81); + nit_abort("Uninitialized attribute %s", "_tagged", LOCATE_primitive_info, 90); } REGB0 = ATTR_primitive_info___PrimitiveInfo____tagged(fra.me.REG[0]); stack_frame_head = fra.me.prev; return REGB0; } +static const char LOCATE_primitive_info___PrimitiveInfo___cname[] = "primitive_info::PrimitiveInfo::cname"; val_t primitive_info___PrimitiveInfo___cname(val_t p0){ struct {struct stack_frame_t me;} fra; val_t REGB0; val_t tmp; fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_primitive_info; - fra.me.line = 84; + fra.me.line = 93; fra.me.meth = LOCATE_primitive_info___PrimitiveInfo___cname; fra.me.has_broke = 0; fra.me.REG_size = 1; + fra.me.nitni_local_ref_head = NULL; fra.me.REG[0] = NIT_NULL; fra.me.REG[0] = p0; - /* ./primitive_info.nit:84 */ + /* primitive_info.nit:93 */ REGB0 = TAG_Bool(ATTR_primitive_info___PrimitiveInfo____cname(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { - nit_abort("Uninitialized attribute %s", "_cname", LOCATE_primitive_info, 84); + nit_abort("Uninitialized attribute %s", "_cname", LOCATE_primitive_info, 93); } fra.me.REG[0] = ATTR_primitive_info___PrimitiveInfo____cname(fra.me.REG[0]); stack_frame_head = fra.me.prev; return fra.me.REG[0]; } +static const char LOCATE_primitive_info___PrimitiveInfo___init[] = "primitive_info::PrimitiveInfo::init"; void primitive_info___PrimitiveInfo___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){ int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_primitive_info___PrimitiveInfo].i; struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; @@ -541,10 +587,11 @@ void primitive_info___PrimitiveInfo___init(val_t p0, val_t p1, val_t p2, val_t p if (init_table[itpos0]) return; fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_primitive_info; - fra.me.line = 87; + fra.me.line = 96; fra.me.meth = LOCATE_primitive_info___PrimitiveInfo___init; fra.me.has_broke = 0; fra.me.REG_size = 3; + fra.me.nitni_local_ref_head = NULL; fra.me.REG[0] = NIT_NULL; fra.me.REG[1] = NIT_NULL; fra.me.REG[2] = NIT_NULL; @@ -552,16 +599,17 @@ void primitive_info___PrimitiveInfo___init(val_t p0, val_t p1, val_t p2, val_t p fra.me.REG[1] = p1; REGB0 = p2; fra.me.REG[2] = p3; - /* ./primitive_info.nit:89 */ + /* primitive_info.nit:98 */ ATTR_primitive_info___PrimitiveInfo____name(fra.me.REG[0]) = fra.me.REG[1]; - /* ./primitive_info.nit:90 */ + /* primitive_info.nit:99 */ ATTR_primitive_info___PrimitiveInfo____tagged(fra.me.REG[0]) = REGB0; - /* ./primitive_info.nit:91 */ + /* primitive_info.nit:100 */ ATTR_primitive_info___PrimitiveInfo____cname(fra.me.REG[0]) = fra.me.REG[2]; stack_frame_head = fra.me.prev; init_table[itpos0] = 1; return; } +static const char LOCATE_primitive_info___MMType___cname[] = "primitive_info::MMType::cname"; val_t primitive_info___MMType___cname(val_t p0){ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; val_t REGB0; @@ -570,23 +618,24 @@ val_t primitive_info___MMType___cname(val_t p0){ static val_t once_value_1; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_primitive_info; - fra.me.line = 96; + fra.me.line = 105; fra.me.meth = LOCATE_primitive_info___MMType___cname; fra.me.has_broke = 0; fra.me.REG_size = 2; + fra.me.nitni_local_ref_head = NULL; fra.me.REG[0] = NIT_NULL; fra.me.REG[1] = NIT_NULL; fra.me.REG[0] = p0; - /* ./primitive_info.nit:99 */ + /* primitive_info.nit:108 */ fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[0] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[0])(fra.me.REG[0]); - /* ./primitive_info.nit:100 */ + /* primitive_info.nit:109 */ REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(false); + REGB1 = TAG_Bool(0); REGB0 = REGB1; } else { REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL); @@ -594,7 +643,7 @@ val_t primitive_info___MMType___cname(val_t p0){ } } if (UNTAG_Bool(REGB0)) { - /* ./primitive_info.nit:101 */ + /* primitive_info.nit:110 */ if (!once_value_1) { fra.me.REG[1] = BOX_NativeString("val_t"); REGB0 = TAG_Int(5); @@ -605,10 +654,10 @@ val_t primitive_info___MMType___cname(val_t p0){ fra.me.REG[1] = fra.me.REG[1]; goto label2; } else { - /* ./primitive_info.nit:103 */ + /* primitive_info.nit:112 */ REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL); if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 103); + nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 112); } fra.me.REG[0] = CALL_primitive_info___PrimitiveInfo___cname(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[1] = fra.me.REG[0]; @@ -618,6 +667,7 @@ val_t primitive_info___MMType___cname(val_t p0){ stack_frame_head = fra.me.prev; return fra.me.REG[1]; } +static const char LOCATE_primitive_info___MMType___is_tagged[] = "primitive_info::MMType::is_tagged"; val_t primitive_info___MMType___is_tagged(val_t p0){ struct {struct stack_frame_t me;} fra; val_t REGB0; @@ -626,28 +676,29 @@ val_t primitive_info___MMType___is_tagged(val_t p0){ val_t tmp; fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_primitive_info; - fra.me.line = 107; + fra.me.line = 116; fra.me.meth = LOCATE_primitive_info___MMType___is_tagged; fra.me.has_broke = 0; fra.me.REG_size = 1; + fra.me.nitni_local_ref_head = NULL; fra.me.REG[0] = NIT_NULL; fra.me.REG[0] = p0; - /* ./primitive_info.nit:110 */ + /* primitive_info.nit:119 */ REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]); if (UNTAG_Bool(REGB0)) { - REGB0 = TAG_Bool(false); + REGB0 = TAG_Bool(0); goto label1; } - /* ./primitive_info.nit:111 */ + /* primitive_info.nit:120 */ fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[0] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[0])(fra.me.REG[0]); - /* ./primitive_info.nit:112 */ + /* primitive_info.nit:121 */ REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); if (UNTAG_Bool(REGB1)) { } else { REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL); if (UNTAG_Bool(REGB2)) { - REGB2 = TAG_Bool(false); + REGB2 = TAG_Bool(0); REGB1 = REGB2; } else { REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL); @@ -658,11 +709,11 @@ val_t primitive_info___MMType___is_tagged(val_t p0){ if (UNTAG_Bool(REGB1)) { REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); if (UNTAG_Bool(REGB1)) { - nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 112); + nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 121); } REGB1 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[0])(fra.me.REG[0]); } else { - REGB2 = TAG_Bool(false); + REGB2 = TAG_Bool(0); REGB1 = REGB2; } REGB0 = REGB1; @@ -671,6 +722,7 @@ val_t primitive_info___MMType___is_tagged(val_t p0){ stack_frame_head = fra.me.prev; return REGB0; } +static const char LOCATE_primitive_info___MMType___default_cvalue[] = "primitive_info::MMType::default_cvalue"; val_t primitive_info___MMType___default_cvalue(val_t p0){ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; val_t REGB0; @@ -682,25 +734,26 @@ val_t primitive_info___MMType___default_cvalue(val_t p0){ static val_t once_value_5; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_primitive_info; - fra.me.line = 115; + fra.me.line = 124; fra.me.meth = LOCATE_primitive_info___MMType___default_cvalue; fra.me.has_broke = 0; fra.me.REG_size = 4; + fra.me.nitni_local_ref_head = NULL; fra.me.REG[0] = NIT_NULL; fra.me.REG[1] = NIT_NULL; fra.me.REG[2] = NIT_NULL; fra.me.REG[3] = NIT_NULL; fra.me.REG[0] = p0; - /* ./primitive_info.nit:119 */ + /* primitive_info.nit:128 */ fra.me.REG[1] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[1] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[1])(fra.me.REG[1]); - /* ./primitive_info.nit:120 */ + /* primitive_info.nit:129 */ REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL); if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(false); + REGB1 = TAG_Bool(0); REGB0 = REGB1; } else { REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL); @@ -711,15 +764,15 @@ val_t primitive_info___MMType___default_cvalue(val_t p0){ if (UNTAG_Bool(REGB0)) { REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 120); + nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 129); } REGB0 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[1])(fra.me.REG[1]); } else { - REGB1 = TAG_Bool(false); + REGB1 = TAG_Bool(0); REGB0 = REGB1; } if (UNTAG_Bool(REGB0)) { - /* ./primitive_info.nit:121 */ + /* primitive_info.nit:130 */ REGB0 = TAG_Int(5); fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); if (!once_value_1) { @@ -746,7 +799,7 @@ val_t primitive_info___MMType___default_cvalue(val_t p0){ CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 121); + nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 130); } fra.me.REG[1] = CALL_primitive_info___PrimitiveInfo___cname(fra.me.REG[1])(fra.me.REG[1]); CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); @@ -762,7 +815,7 @@ val_t primitive_info___MMType___default_cvalue(val_t p0){ fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); goto label4; } else { - /* ./primitive_info.nit:123 */ + /* primitive_info.nit:132 */ if (!once_value_5) { fra.me.REG[1] = BOX_NativeString("NIT_NULL"); REGB0 = TAG_Int(8); @@ -778,6 +831,7 @@ val_t primitive_info___MMType___default_cvalue(val_t p0){ stack_frame_head = fra.me.prev; return fra.me.REG[2]; } +static const char LOCATE_primitive_info___MMType___boxtype[] = "primitive_info::MMType::boxtype"; val_t primitive_info___MMType___boxtype(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; val_t REGB0; @@ -791,10 +845,11 @@ val_t primitive_info___MMType___boxtype(val_t p0, val_t p1){ static val_t once_value_7; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_primitive_info; - fra.me.line = 127; + fra.me.line = 136; fra.me.meth = LOCATE_primitive_info___MMType___boxtype; fra.me.has_broke = 0; fra.me.REG_size = 5; + fra.me.nitni_local_ref_head = NULL; fra.me.REG[0] = NIT_NULL; fra.me.REG[1] = NIT_NULL; fra.me.REG[2] = NIT_NULL; @@ -802,16 +857,16 @@ val_t primitive_info___MMType___boxtype(val_t p0, val_t p1){ fra.me.REG[4] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; - /* ./primitive_info.nit:131 */ + /* primitive_info.nit:140 */ fra.me.REG[2] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[2])(fra.me.REG[2]); - /* ./primitive_info.nit:132 */ + /* primitive_info.nit:141 */ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(false); + REGB1 = TAG_Bool(0); REGB0 = REGB1; } else { REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); @@ -819,18 +874,24 @@ val_t primitive_info___MMType___boxtype(val_t p0, val_t p1){ } } if (UNTAG_Bool(REGB0)) { - /* ./primitive_info.nit:133 */ + REGB0 = TAG_Bool(1); + } else { + REGB1 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* primitive_info.nit:142 */ fra.me.REG[3] = fra.me.REG[1]; goto label1; } else { - /* ./primitive_info.nit:134 */ + /* primitive_info.nit:143 */ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 134); + nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 143); } REGB0 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[2])(fra.me.REG[2]); if (UNTAG_Bool(REGB0)) { - /* ./primitive_info.nit:135 */ + /* primitive_info.nit:144 */ REGB0 = TAG_Int(5); fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); if (!once_value_2) { @@ -869,7 +930,7 @@ val_t primitive_info___MMType___boxtype(val_t p0, val_t p1){ fra.me.REG[3] = fra.me.REG[2]; goto label1; } else { - /* ./primitive_info.nit:137 */ + /* primitive_info.nit:146 */ REGB0 = TAG_Int(5); fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); if (!once_value_5) { @@ -913,6 +974,7 @@ val_t primitive_info___MMType___boxtype(val_t p0, val_t p1){ stack_frame_head = fra.me.prev; return fra.me.REG[3]; } +static const char LOCATE_primitive_info___MMType___unboxtype[] = "primitive_info::MMType::unboxtype"; val_t primitive_info___MMType___unboxtype(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; val_t REGB0; @@ -926,10 +988,11 @@ val_t primitive_info___MMType___unboxtype(val_t p0, val_t p1){ static val_t once_value_7; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_primitive_info; - fra.me.line = 141; + fra.me.line = 150; fra.me.meth = LOCATE_primitive_info___MMType___unboxtype; fra.me.has_broke = 0; fra.me.REG_size = 5; + fra.me.nitni_local_ref_head = NULL; fra.me.REG[0] = NIT_NULL; fra.me.REG[1] = NIT_NULL; fra.me.REG[2] = NIT_NULL; @@ -937,16 +1000,16 @@ val_t primitive_info___MMType___unboxtype(val_t p0, val_t p1){ fra.me.REG[4] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; - /* ./primitive_info.nit:145 */ + /* primitive_info.nit:154 */ fra.me.REG[2] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[2])(fra.me.REG[2]); - /* ./primitive_info.nit:146 */ + /* primitive_info.nit:155 */ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(false); + REGB1 = TAG_Bool(0); REGB0 = REGB1; } else { REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); @@ -954,18 +1017,24 @@ val_t primitive_info___MMType___unboxtype(val_t p0, val_t p1){ } } if (UNTAG_Bool(REGB0)) { - /* ./primitive_info.nit:147 */ + REGB0 = TAG_Bool(1); + } else { + REGB1 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* primitive_info.nit:156 */ fra.me.REG[3] = fra.me.REG[1]; goto label1; } else { - /* ./primitive_info.nit:148 */ + /* primitive_info.nit:157 */ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); if (UNTAG_Bool(REGB0)) { - nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 148); + nit_abort("Reciever is null", NULL, LOCATE_primitive_info, 157); } REGB0 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[2])(fra.me.REG[2]); if (UNTAG_Bool(REGB0)) { - /* ./primitive_info.nit:149 */ + /* primitive_info.nit:158 */ REGB0 = TAG_Int(5); fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); if (!once_value_2) { @@ -1004,7 +1073,7 @@ val_t primitive_info___MMType___unboxtype(val_t p0, val_t p1){ fra.me.REG[3] = fra.me.REG[2]; goto label1; } else { - /* ./primitive_info.nit:151 */ + /* primitive_info.nit:160 */ REGB0 = TAG_Int(5); fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); if (!once_value_5) { @@ -1048,3 +1117,770 @@ val_t primitive_info___MMType___unboxtype(val_t p0, val_t p1){ stack_frame_head = fra.me.prev; return fra.me.REG[3]; } +static const char LOCATE_primitive_info___MMMethod___default_extern_name[] = "primitive_info::MMMethod::default_extern_name"; +val_t primitive_info___MMMethod___default_extern_name(val_t p0){ + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t REGB0; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_2; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_primitive_info; + fra.me.line = 166; + fra.me.meth = LOCATE_primitive_info___MMMethod___default_extern_name; + fra.me.has_broke = 0; + fra.me.REG_size = 3; + fra.me.nitni_local_ref_head = NULL; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[0] = p0; + /* primitive_info.nit:168 */ + REGB0 = TAG_Int(3); + fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); + if (!once_value_1) { + fra.me.REG[2] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0); + once_value_1 = fra.me.REG[2]; + register_static_object(&once_value_1); + } else fra.me.REG[2] = once_value_1; + fra.me.REG[2] = fra.me.REG[2]; + CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[2] = CALL_primitive_info___MMMethod___friendly_extern_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); + CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + if (!once_value_2) { + fra.me.REG[2] = BOX_NativeString("___impl"); + REGB0 = TAG_Int(7); + fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0); + once_value_2 = fra.me.REG[2]; + register_static_object(&once_value_2); + } else fra.me.REG[2] = once_value_2; + fra.me.REG[2] = fra.me.REG[2]; + CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]); + goto label3; + label3: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[1]; +} +static const char LOCATE_primitive_info___MMMethod___friendly_extern_name[] = "primitive_info::MMMethod::friendly_extern_name"; +val_t primitive_info___MMMethod___friendly_extern_name(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[5];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_2; /* Once value */ + static val_t once_value_3; /* Once value */ + static val_t once_value_4; /* Once value */ + static val_t once_value_5; /* Once value */ + static val_t once_value_6; /* Once value */ + static val_t once_value_7; /* Once value */ + static val_t once_value_8; /* Once value */ + static val_t once_value_9; /* Once value */ + static val_t once_value_10; /* Once value */ + static val_t once_value_11; /* Once value */ + static val_t once_value_12; /* Once value */ + static val_t once_value_13; /* Once value */ + static val_t once_value_14; /* Once value */ + static val_t once_value_15; /* Once value */ + static val_t once_value_16; /* Once value */ + static val_t once_value_17; /* Once value */ + static val_t once_value_18; /* Once value */ + static val_t once_value_19; /* Once value */ + static val_t once_value_20; /* Once value */ + static val_t once_value_21; /* Once value */ + static val_t once_value_22; /* Once value */ + static val_t once_value_23; /* Once value */ + static val_t once_value_24; /* Once value */ + static val_t once_value_25; /* Once value */ + static val_t once_value_26; /* Once value */ + static val_t once_value_27; /* Once value */ + static val_t once_value_28; /* Once value */ + static val_t once_value_29; /* Once value */ + static val_t once_value_30; /* Once value */ + static val_t once_value_31; /* Once value */ + static val_t once_value_32; /* Once value */ + static val_t once_value_33; /* Once value */ + static val_t once_value_34; /* Once value */ + static val_t once_value_35; /* Once value */ + static val_t once_value_36; /* Once value */ + static val_t once_value_37; /* Once value */ + static val_t once_value_39; /* Once value */ + static val_t once_value_40; /* Once value */ + static val_t once_value_41; /* Once value */ + static val_t once_value_42; /* Once value */ + static val_t once_value_43; /* Once value */ + static val_t once_value_44; /* Once value */ + static val_t once_value_45; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_primitive_info; + fra.me.line = 171; + fra.me.meth = LOCATE_primitive_info___MMMethod___friendly_extern_name; + fra.me.has_broke = 0; + fra.me.REG_size = 6; + fra.me.nitni_local_ref_head = NULL; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[2] = NIT_NULL; + fra.me.REG[3] = NIT_NULL; + fra.me.REG[4] = NIT_NULL; + fra.me.REG[5] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + /* primitive_info.nit:175 */ + fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* primitive_info.nit:177 */ + fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + /* primitive_info.nit:178 */ + if (!once_value_1) { + fra.me.REG[3] = BOX_NativeString("+"); + REGB0 = TAG_Int(1); + fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0); + once_value_1 = fra.me.REG[3]; + register_static_object(&once_value_1); + } else fra.me.REG[3] = once_value_1; + fra.me.REG[3] = fra.me.REG[3]; + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* primitive_info.nit:179 */ + if (!once_value_2) { + fra.me.REG[3] = BOX_NativeString("_plus"); + REGB0 = TAG_Int(5); + fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0); + once_value_2 = fra.me.REG[3]; + register_static_object(&once_value_2); + } else fra.me.REG[3] = once_value_2; + fra.me.REG[3] = fra.me.REG[3]; + } else { + /* primitive_info.nit:180 */ + if (!once_value_3) { + fra.me.REG[4] = BOX_NativeString("-"); + REGB0 = TAG_Int(1); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_3 = fra.me.REG[4]; + register_static_object(&once_value_3); + } else fra.me.REG[4] = once_value_3; + fra.me.REG[4] = fra.me.REG[4]; + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* primitive_info.nit:181 */ + if (!once_value_4) { + fra.me.REG[4] = BOX_NativeString("_minus"); + REGB0 = TAG_Int(6); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_4 = fra.me.REG[4]; + register_static_object(&once_value_4); + } else fra.me.REG[4] = once_value_4; + fra.me.REG[4] = fra.me.REG[4]; + fra.me.REG[3] = fra.me.REG[4]; + } else { + /* primitive_info.nit:182 */ + if (!once_value_5) { + fra.me.REG[4] = BOX_NativeString("*"); + REGB0 = TAG_Int(1); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_5 = fra.me.REG[4]; + register_static_object(&once_value_5); + } else fra.me.REG[4] = once_value_5; + fra.me.REG[4] = fra.me.REG[4]; + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* primitive_info.nit:183 */ + if (!once_value_6) { + fra.me.REG[4] = BOX_NativeString("_star"); + REGB0 = TAG_Int(5); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_6 = fra.me.REG[4]; + register_static_object(&once_value_6); + } else fra.me.REG[4] = once_value_6; + fra.me.REG[4] = fra.me.REG[4]; + fra.me.REG[3] = fra.me.REG[4]; + } else { + /* primitive_info.nit:184 */ + if (!once_value_7) { + fra.me.REG[4] = BOX_NativeString("/"); + REGB0 = TAG_Int(1); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_7 = fra.me.REG[4]; + register_static_object(&once_value_7); + } else fra.me.REG[4] = once_value_7; + fra.me.REG[4] = fra.me.REG[4]; + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* primitive_info.nit:185 */ + if (!once_value_8) { + fra.me.REG[4] = BOX_NativeString("_slash"); + REGB0 = TAG_Int(6); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_8 = fra.me.REG[4]; + register_static_object(&once_value_8); + } else fra.me.REG[4] = once_value_8; + fra.me.REG[4] = fra.me.REG[4]; + fra.me.REG[3] = fra.me.REG[4]; + } else { + /* primitive_info.nit:186 */ + if (!once_value_9) { + fra.me.REG[4] = BOX_NativeString("%"); + REGB0 = TAG_Int(1); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_9 = fra.me.REG[4]; + register_static_object(&once_value_9); + } else fra.me.REG[4] = once_value_9; + fra.me.REG[4] = fra.me.REG[4]; + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* primitive_info.nit:187 */ + if (!once_value_10) { + fra.me.REG[4] = BOX_NativeString("_percent"); + REGB0 = TAG_Int(8); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_10 = fra.me.REG[4]; + register_static_object(&once_value_10); + } else fra.me.REG[4] = once_value_10; + fra.me.REG[4] = fra.me.REG[4]; + fra.me.REG[3] = fra.me.REG[4]; + } else { + /* primitive_info.nit:188 */ + if (!once_value_11) { + fra.me.REG[4] = BOX_NativeString("[]"); + REGB0 = TAG_Int(2); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_11 = fra.me.REG[4]; + register_static_object(&once_value_11); + } else fra.me.REG[4] = once_value_11; + fra.me.REG[4] = fra.me.REG[4]; + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* primitive_info.nit:189 */ + if (!once_value_12) { + fra.me.REG[4] = BOX_NativeString("_index"); + REGB0 = TAG_Int(6); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_12 = fra.me.REG[4]; + register_static_object(&once_value_12); + } else fra.me.REG[4] = once_value_12; + fra.me.REG[4] = fra.me.REG[4]; + fra.me.REG[3] = fra.me.REG[4]; + } else { + /* primitive_info.nit:190 */ + if (!once_value_13) { + fra.me.REG[4] = BOX_NativeString("[]="); + REGB0 = TAG_Int(3); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_13 = fra.me.REG[4]; + register_static_object(&once_value_13); + } else fra.me.REG[4] = once_value_13; + fra.me.REG[4] = fra.me.REG[4]; + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* primitive_info.nit:191 */ + if (!once_value_14) { + fra.me.REG[4] = BOX_NativeString("_index_assign"); + REGB0 = TAG_Int(13); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_14 = fra.me.REG[4]; + register_static_object(&once_value_14); + } else fra.me.REG[4] = once_value_14; + fra.me.REG[4] = fra.me.REG[4]; + fra.me.REG[3] = fra.me.REG[4]; + } else { + /* primitive_info.nit:192 */ + if (!once_value_15) { + fra.me.REG[4] = BOX_NativeString("=="); + REGB0 = TAG_Int(2); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_15 = fra.me.REG[4]; + register_static_object(&once_value_15); + } else fra.me.REG[4] = once_value_15; + fra.me.REG[4] = fra.me.REG[4]; + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* primitive_info.nit:193 */ + if (!once_value_16) { + fra.me.REG[4] = BOX_NativeString("_equal"); + REGB0 = TAG_Int(6); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_16 = fra.me.REG[4]; + register_static_object(&once_value_16); + } else fra.me.REG[4] = once_value_16; + fra.me.REG[4] = fra.me.REG[4]; + fra.me.REG[3] = fra.me.REG[4]; + } else { + /* primitive_info.nit:194 */ + if (!once_value_17) { + fra.me.REG[4] = BOX_NativeString("<"); + REGB0 = TAG_Int(1); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_17 = fra.me.REG[4]; + register_static_object(&once_value_17); + } else fra.me.REG[4] = once_value_17; + fra.me.REG[4] = fra.me.REG[4]; + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* primitive_info.nit:195 */ + if (!once_value_18) { + fra.me.REG[4] = BOX_NativeString("_less"); + REGB0 = TAG_Int(5); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_18 = fra.me.REG[4]; + register_static_object(&once_value_18); + } else fra.me.REG[4] = once_value_18; + fra.me.REG[4] = fra.me.REG[4]; + fra.me.REG[3] = fra.me.REG[4]; + } else { + /* primitive_info.nit:196 */ + if (!once_value_19) { + fra.me.REG[4] = BOX_NativeString(">"); + REGB0 = TAG_Int(1); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_19 = fra.me.REG[4]; + register_static_object(&once_value_19); + } else fra.me.REG[4] = once_value_19; + fra.me.REG[4] = fra.me.REG[4]; + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* primitive_info.nit:197 */ + if (!once_value_20) { + fra.me.REG[4] = BOX_NativeString("_greater"); + REGB0 = TAG_Int(8); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_20 = fra.me.REG[4]; + register_static_object(&once_value_20); + } else fra.me.REG[4] = once_value_20; + fra.me.REG[4] = fra.me.REG[4]; + fra.me.REG[3] = fra.me.REG[4]; + } else { + /* primitive_info.nit:198 */ + if (!once_value_21) { + fra.me.REG[4] = BOX_NativeString("<="); + REGB0 = TAG_Int(2); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_21 = fra.me.REG[4]; + register_static_object(&once_value_21); + } else fra.me.REG[4] = once_value_21; + fra.me.REG[4] = fra.me.REG[4]; + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* primitive_info.nit:199 */ + if (!once_value_22) { + fra.me.REG[4] = BOX_NativeString("_less_or_equal"); + REGB0 = TAG_Int(14); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_22 = fra.me.REG[4]; + register_static_object(&once_value_22); + } else fra.me.REG[4] = once_value_22; + fra.me.REG[4] = fra.me.REG[4]; + fra.me.REG[3] = fra.me.REG[4]; + } else { + /* primitive_info.nit:200 */ + if (!once_value_23) { + fra.me.REG[4] = BOX_NativeString(">="); + REGB0 = TAG_Int(2); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_23 = fra.me.REG[4]; + register_static_object(&once_value_23); + } else fra.me.REG[4] = once_value_23; + fra.me.REG[4] = fra.me.REG[4]; + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* primitive_info.nit:201 */ + if (!once_value_24) { + fra.me.REG[4] = BOX_NativeString("_ge"); + REGB0 = TAG_Int(3); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_24 = fra.me.REG[4]; + register_static_object(&once_value_24); + } else fra.me.REG[4] = once_value_24; + fra.me.REG[4] = fra.me.REG[4]; + fra.me.REG[3] = fra.me.REG[4]; + } else { + /* primitive_info.nit:202 */ + if (!once_value_25) { + fra.me.REG[4] = BOX_NativeString("!="); + REGB0 = TAG_Int(2); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_25 = fra.me.REG[4]; + register_static_object(&once_value_25); + } else fra.me.REG[4] = once_value_25; + fra.me.REG[4] = fra.me.REG[4]; + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* primitive_info.nit:203 */ + if (!once_value_26) { + fra.me.REG[4] = BOX_NativeString("_not_equal"); + REGB0 = TAG_Int(10); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_26 = fra.me.REG[4]; + register_static_object(&once_value_26); + } else fra.me.REG[4] = once_value_26; + fra.me.REG[4] = fra.me.REG[4]; + fra.me.REG[3] = fra.me.REG[4]; + } else { + /* primitive_info.nit:204 */ + if (!once_value_27) { + fra.me.REG[4] = BOX_NativeString(">>"); + REGB0 = TAG_Int(2); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_27 = fra.me.REG[4]; + register_static_object(&once_value_27); + } else fra.me.REG[4] = once_value_27; + fra.me.REG[4] = fra.me.REG[4]; + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* primitive_info.nit:205 */ + if (!once_value_28) { + fra.me.REG[4] = BOX_NativeString("_right"); + REGB0 = TAG_Int(6); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_28 = fra.me.REG[4]; + register_static_object(&once_value_28); + } else fra.me.REG[4] = once_value_28; + fra.me.REG[4] = fra.me.REG[4]; + fra.me.REG[3] = fra.me.REG[4]; + } else { + /* primitive_info.nit:206 */ + if (!once_value_29) { + fra.me.REG[4] = BOX_NativeString("<<"); + REGB0 = TAG_Int(2); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_29 = fra.me.REG[4]; + register_static_object(&once_value_29); + } else fra.me.REG[4] = once_value_29; + fra.me.REG[4] = fra.me.REG[4]; + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* primitive_info.nit:207 */ + if (!once_value_30) { + fra.me.REG[4] = BOX_NativeString("_left"); + REGB0 = TAG_Int(5); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_30 = fra.me.REG[4]; + register_static_object(&once_value_30); + } else fra.me.REG[4] = once_value_30; + fra.me.REG[4] = fra.me.REG[4]; + fra.me.REG[3] = fra.me.REG[4]; + } else { + /* primitive_info.nit:208 */ + if (!once_value_31) { + fra.me.REG[4] = BOX_NativeString("<=>"); + REGB0 = TAG_Int(3); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_31 = fra.me.REG[4]; + register_static_object(&once_value_31); + } else fra.me.REG[4] = once_value_31; + fra.me.REG[4] = fra.me.REG[4]; + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[4])); + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + REGB0 = REGB1; + } + if (UNTAG_Bool(REGB0)) { + /* primitive_info.nit:209 */ + if (!once_value_32) { + fra.me.REG[4] = BOX_NativeString("_starship"); + REGB0 = TAG_Int(9); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); + once_value_32 = fra.me.REG[4]; + register_static_object(&once_value_32); + } else fra.me.REG[4] = once_value_32; + fra.me.REG[4] = fra.me.REG[4]; + fra.me.REG[3] = fra.me.REG[4]; + } else { + /* ../lib/standard/collection/array.nit:24 */ + REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); + } + REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]); + /* primitive_info.nit:210 */ + REGB1 = TAG_Int(1); + /* ../lib/standard/kernel.nit:240 */ + REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1)); + /* primitive_info.nit:210 */ + REGB1 = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[2])(fra.me.REG[2], REGB1); + REGB0 = TAG_Char('='); + REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0)); + if (UNTAG_Bool(REGB2)) { + } else { + /* ../lib/standard/kernel.nit:381 */ + REGB0 = TAG_Bool((REGB1)==(REGB0)); + /* primitive_info.nit:210 */ + REGB2 = REGB0; + } + if (UNTAG_Bool(REGB2)) { + /* primitive_info.nit:211 */ + REGB2 = TAG_Int(3); + fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2); + if (!once_value_33) { + fra.me.REG[5] = BOX_NativeString(""); + REGB2 = TAG_Int(0); + fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2); + once_value_33 = fra.me.REG[5]; + register_static_object(&once_value_33); + } else fra.me.REG[5] = once_value_33; + fra.me.REG[5] = fra.me.REG[5]; + CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + REGB2 = TAG_Int(0); + /* ../lib/standard/collection/array.nit:24 */ + REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24); + } + REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]); + /* primitive_info.nit:211 */ + REGB1 = TAG_Int(1); + /* ../lib/standard/kernel.nit:240 */ + REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1)); + /* primitive_info.nit:211 */ + fra.me.REG[5] = CALL_standard___string___AbstractString___substring(fra.me.REG[2])(fra.me.REG[2], REGB2, REGB1); + CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + if (!once_value_34) { + fra.me.REG[5] = BOX_NativeString("__assign"); + REGB1 = TAG_Int(8); + fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1); + once_value_34 = fra.me.REG[5]; + register_static_object(&once_value_34); + } else fra.me.REG[5] = once_value_34; + fra.me.REG[5] = fra.me.REG[5]; + CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[3] = fra.me.REG[4]; + } else { + /* primitive_info.nit:213 */ + fra.me.REG[3] = fra.me.REG[2]; + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + /* primitive_info.nit:216 */ + REGB1 = TAG_Int(5); + fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1); + if (!once_value_35) { + fra.me.REG[4] = BOX_NativeString(""); + REGB1 = TAG_Int(0); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1); + once_value_35 = fra.me.REG[4]; + register_static_object(&once_value_35); + } else fra.me.REG[4] = once_value_35; + fra.me.REG[4] = fra.me.REG[4]; + CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + if (!once_value_36) { + fra.me.REG[4] = BOX_NativeString("_"); + REGB1 = TAG_Int(1); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1); + once_value_36 = fra.me.REG[4]; + register_static_object(&once_value_36); + } else fra.me.REG[4] = once_value_36; + fra.me.REG[4] = fra.me.REG[4]; + CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + if (!once_value_37) { + fra.me.REG[3] = BOX_NativeString(""); + REGB1 = TAG_Int(0); + fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1); + once_value_37 = fra.me.REG[3]; + register_static_object(&once_value_37); + } else fra.me.REG[3] = once_value_37; + fra.me.REG[3] = fra.me.REG[3]; + CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]); + goto label38; + } else { + /* primitive_info.nit:218 */ + fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]); + if (!once_value_39) { + if (!once_value_40) { + fra.me.REG[4] = BOX_NativeString("init"); + REGB1 = TAG_Int(4); + fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1); + once_value_40 = fra.me.REG[4]; + register_static_object(&once_value_40); + } else fra.me.REG[4] = once_value_40; + fra.me.REG[4] = fra.me.REG[4]; + fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]); + once_value_39 = fra.me.REG[4]; + register_static_object(&once_value_39); + } else fra.me.REG[4] = once_value_39; + fra.me.REG[4] = fra.me.REG[4]; + REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4])); + if (UNTAG_Bool(REGB1)) { + } else { + REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); + REGB1 = REGB2; + } + if (UNTAG_Bool(REGB1)) { + /* primitive_info.nit:219 */ + REGB1 = TAG_Int(3); + fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1); + if (!once_value_41) { + fra.me.REG[3] = BOX_NativeString("new_"); + REGB1 = TAG_Int(4); + fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1); + once_value_41 = fra.me.REG[3]; + register_static_object(&once_value_41); + } else fra.me.REG[3] = once_value_41; + fra.me.REG[3] = fra.me.REG[3]; + CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); + fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]); + CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); + if (!once_value_42) { + fra.me.REG[3] = BOX_NativeString(""); + REGB1 = TAG_Int(0); + fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1); + once_value_42 = fra.me.REG[3]; + register_static_object(&once_value_42); + } else fra.me.REG[3] = once_value_42; + fra.me.REG[3] = fra.me.REG[3]; + CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); + fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[2] = fra.me.REG[4]; + goto label38; + } else { + /* primitive_info.nit:221 */ + REGB1 = TAG_Int(5); + fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1); + if (!once_value_43) { + fra.me.REG[3] = BOX_NativeString("new_"); + REGB1 = TAG_Int(4); + fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1); + once_value_43 = fra.me.REG[3]; + register_static_object(&once_value_43); + } else fra.me.REG[3] = once_value_43; + fra.me.REG[3] = fra.me.REG[3]; + CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); + fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[1])(fra.me.REG[1]); + fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]); + CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]); + if (!once_value_44) { + fra.me.REG[1] = BOX_NativeString("_"); + REGB1 = TAG_Int(1); + fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB1); + once_value_44 = fra.me.REG[1]; + register_static_object(&once_value_44); + } else fra.me.REG[1] = once_value_44; + fra.me.REG[1] = fra.me.REG[1]; + CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]); + fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); + CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]); + if (!once_value_45) { + fra.me.REG[0] = BOX_NativeString(""); + REGB1 = TAG_Int(0); + fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1); + once_value_45 = fra.me.REG[0]; + register_static_object(&once_value_45); + } else fra.me.REG[0] = once_value_45; + fra.me.REG[0] = fra.me.REG[0]; + CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]); + fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[2] = fra.me.REG[4]; + goto label38; + } + } + label38: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[2]; +}