+void nitc___NitCompiler___perform_work(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+ val_t REGB0;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_nitc;
+ fra.me.line = 122;
+ fra.me.meth = LOCATE_nitc___NitCompiler___perform_work;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 3;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ fra.me.REG[2] = CALL_nitc___NitCompiler___opt_dump(fra.me.REG[0])(fra.me.REG[0]);
+ fra.me.REG[2] = CALL_opts___Option___value(fra.me.REG[2])(fra.me.REG[2]);
+ /* ./nitc.nit:124 */
+ if (UNTAG_Bool(fra.me.REG[2])) {
+ /* ./nitc.nit:125 */
+ CALL_nitc___NitCompiler___dump_intermediate_code(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+ }
+ fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]);
+ /* ./nitc.nit:127 */
+ while(1) {
+ REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
+ if (UNTAG_Bool(REGB0)) {
+ fra.me.REG[2] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
+ fra.me.REG[2] = NEW_Program_program___Program___init(fra.me.REG[2]);
+ /* ./nitc.nit:129 */
+ CALL_program___Program___compute_main_method(fra.me.REG[2])(fra.me.REG[2]);
+ /* ./nitc.nit:130 */
+ CALL_table_computation___Program___do_table_computation(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+ /* ./nitc.nit:131 */
+ CALL_compiling___Program___generate_classes_init_to_icode(fra.me.REG[2])(fra.me.REG[2]);
+ /* ./nitc.nit:132 */
+ CALL_compiling___Program___compile_prog_to_c(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+ } else {
+ /* ./nitc.nit:127 */
+ goto label1;
+ }
+ CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);
+ }
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return;
+}
+val_t nitc___NitCompiler___opt_output(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_nitc;
+ fra.me.line = 29;
+ fra.me.meth = LOCATE_nitc___NitCompiler___opt_output;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_output(fra.me.REG[0])!=NIT_NULL);
+ /* ./nitc.nit:29 */
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ fprintf(stderr, "Uninitialized attribute %s", "_opt_output");
+ fprintf(stderr, " (%s:%d)\n", LOCATE_nitc, 29);
+ nit_exit(1);
+ }
+ fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_output(fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[0];
+}
+val_t nitc___NitCompiler___opt_boost(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_nitc;
+ fra.me.line = 30;
+ fra.me.meth = LOCATE_nitc___NitCompiler___opt_boost;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_boost(fra.me.REG[0])!=NIT_NULL);
+ /* ./nitc.nit:30 */
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ fprintf(stderr, "Uninitialized attribute %s", "_opt_boost");
+ fprintf(stderr, " (%s:%d)\n", LOCATE_nitc, 30);
+ nit_exit(1);
+ }
+ fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_boost(fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[0];
+}
+val_t nitc___NitCompiler___opt_no_cc(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_nitc;
+ fra.me.line = 31;
+ fra.me.meth = LOCATE_nitc___NitCompiler___opt_no_cc;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_no_cc(fra.me.REG[0])!=NIT_NULL);
+ /* ./nitc.nit:31 */
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ fprintf(stderr, "Uninitialized attribute %s", "_opt_no_cc");
+ fprintf(stderr, " (%s:%d)\n", LOCATE_nitc, 31);
+ nit_exit(1);
+ }
+ fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_no_cc(fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[0];
+}
+val_t nitc___NitCompiler___opt_global(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_nitc;
+ fra.me.line = 32;
+ fra.me.meth = LOCATE_nitc___NitCompiler___opt_global;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_global(fra.me.REG[0])!=NIT_NULL);
+ /* ./nitc.nit:32 */
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ fprintf(stderr, "Uninitialized attribute %s", "_opt_global");
+ fprintf(stderr, " (%s:%d)\n", LOCATE_nitc, 32);
+ nit_exit(1);
+ }
+ fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_global(fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[0];
+}
+val_t nitc___NitCompiler___opt_clibdir(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_nitc;
+ fra.me.line = 33;
+ fra.me.meth = LOCATE_nitc___NitCompiler___opt_clibdir;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_clibdir(fra.me.REG[0])!=NIT_NULL);
+ /* ./nitc.nit:33 */
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ fprintf(stderr, "Uninitialized attribute %s", "_opt_clibdir");
+ fprintf(stderr, " (%s:%d)\n", LOCATE_nitc, 33);
+ nit_exit(1);
+ }
+ fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_clibdir(fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[0];
+}
+val_t nitc___NitCompiler___opt_bindir(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_nitc;
+ fra.me.line = 34;
+ fra.me.meth = LOCATE_nitc___NitCompiler___opt_bindir;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_bindir(fra.me.REG[0])!=NIT_NULL);
+ /* ./nitc.nit:34 */
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ fprintf(stderr, "Uninitialized attribute %s", "_opt_bindir");
+ fprintf(stderr, " (%s:%d)\n", LOCATE_nitc, 34);
+ nit_exit(1);
+ }
+ fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_bindir(fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[0];
+}
+val_t nitc___NitCompiler___opt_compdir(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_nitc;
+ fra.me.line = 35;
+ fra.me.meth = LOCATE_nitc___NitCompiler___opt_compdir;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_compdir(fra.me.REG[0])!=NIT_NULL);
+ /* ./nitc.nit:35 */
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ fprintf(stderr, "Uninitialized attribute %s", "_opt_compdir");
+ fprintf(stderr, " (%s:%d)\n", LOCATE_nitc, 35);
+ nit_exit(1);
+ }
+ fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_compdir(fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[0];
+}
+val_t nitc___NitCompiler___opt_extension_prefix(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_nitc;
+ fra.me.line = 36;
+ fra.me.meth = LOCATE_nitc___NitCompiler___opt_extension_prefix;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_extension_prefix(fra.me.REG[0])!=NIT_NULL);
+ /* ./nitc.nit:36 */
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ fprintf(stderr, "Uninitialized attribute %s", "_opt_extension_prefix");
+ fprintf(stderr, " (%s:%d)\n", LOCATE_nitc, 36);
+ nit_exit(1);
+ }
+ fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_extension_prefix(fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[0];
+}
+val_t nitc___NitCompiler___opt_dump(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_nitc;
+ fra.me.line = 37;
+ fra.me.meth = LOCATE_nitc___NitCompiler___opt_dump;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ REGB0 = TAG_Bool(ATTR_nitc___NitCompiler____opt_dump(fra.me.REG[0])!=NIT_NULL);
+ /* ./nitc.nit:37 */
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ fprintf(stderr, "Uninitialized attribute %s", "_opt_dump");
+ fprintf(stderr, " (%s:%d)\n", LOCATE_nitc, 37);
+ nit_exit(1);
+ }
+ fra.me.REG[0] = ATTR_nitc___NitCompiler____opt_dump(fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return fra.me.REG[0];
+}
+void nitc___NitCompiler___init(val_t p0, int* init_table){
+ int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_NitCompiler].i;
+ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+ val_t REGB0;
+ val_t tmp;
+ static val_t once_value_1; /* Once value */
+ if (init_table[itpos0]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_nitc;
+ fra.me.line = 39;
+ fra.me.meth = LOCATE_nitc___NitCompiler___init;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 4;
+ 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;
+ fra.me.REG[1] = fra.me.REG[0];
+ /* ./nitc.nit:41 */
+ if (!once_value_1) {
+ fra.me.REG[2] = BOX_NativeString("nitc");
+ REGB0 = TAG_Int(4);
+ fra.me.REG[2] = NEW_String_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;
+ CALL_abstracttool___AbstractCompiler___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], init_table);
+ fra.me.REG[2] = CALL_mmloader___ToolContext___option_context(fra.me.REG[1])(fra.me.REG[1]);
+ REGB0 = TAG_Int(8);
+ fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0);
+ fra.me.REG[3] = CALL_nitc___NitCompiler___opt_output(fra.me.REG[1])(fra.me.REG[1]);
+ /* ./nitc.nit:42 */
+ array___Array___add(fra.me.REG[0], fra.me.REG[3]);
+ fra.me.REG[3] = CALL_nitc___NitCompiler___opt_boost(fra.me.REG[1])(fra.me.REG[1]);
+ array___Array___add(fra.me.REG[0], fra.me.REG[3]);
+ fra.me.REG[3] = CALL_nitc___NitCompiler___opt_no_cc(fra.me.REG[1])(fra.me.REG[1]);
+ array___Array___add(fra.me.REG[0], fra.me.REG[3]);
+ fra.me.REG[3] = CALL_nitc___NitCompiler___opt_global(fra.me.REG[1])(fra.me.REG[1]);
+ array___Array___add(fra.me.REG[0], fra.me.REG[3]);
+ fra.me.REG[3] = CALL_nitc___NitCompiler___opt_clibdir(fra.me.REG[1])(fra.me.REG[1]);
+ array___Array___add(fra.me.REG[0], fra.me.REG[3]);
+ fra.me.REG[3] = CALL_nitc___NitCompiler___opt_bindir(fra.me.REG[1])(fra.me.REG[1]);
+ array___Array___add(fra.me.REG[0], fra.me.REG[3]);
+ fra.me.REG[3] = CALL_nitc___NitCompiler___opt_compdir(fra.me.REG[1])(fra.me.REG[1]);
+ array___Array___add(fra.me.REG[0], fra.me.REG[3]);
+ fra.me.REG[3] = CALL_nitc___NitCompiler___opt_extension_prefix(fra.me.REG[1])(fra.me.REG[1]);
+ array___Array___add(fra.me.REG[0], fra.me.REG[3]);
+ fra.me.REG[1] = CALL_nitc___NitCompiler___opt_dump(fra.me.REG[1])(fra.me.REG[1]);
+ array___Array___add(fra.me.REG[0], fra.me.REG[1]);
+ CALL_opts___OptionContext___add_option(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ init_table[itpos0] = 1;
+ return;
+}
+void nitc___NitCompiler___dump_intermediate_code(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t tmp;
+ 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 */
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_nitc;
+ fra.me.line = 97;
+ fra.me.meth = LOCATE_nitc___NitCompiler___dump_intermediate_code;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 10;
+ 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[6] = NIT_NULL;
+ fra.me.REG[7] = NIT_NULL;
+ fra.me.REG[8] = NIT_NULL;
+ fra.me.REG[9] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]);
+ /* ./nitc.nit:99 */
+ while(1) {
+ REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]);
+ if (UNTAG_Bool(REGB0)) {
+ fra.me.REG[2] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]);
+ fra.me.REG[3] = CALL_abstractmetamodel___MMModule___local_classes(fra.me.REG[2])(fra.me.REG[2]);
+ fra.me.REG[3] = CALL_abstract_collection___Collection___iterator(fra.me.REG[3])(fra.me.REG[3]);
+ /* ./nitc.nit:100 */
+ while(1) {
+ REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[3])(fra.me.REG[3]);
+ if (UNTAG_Bool(REGB0)) {
+ fra.me.REG[4] = CALL_abstract_collection___Iterator___item(fra.me.REG[3])(fra.me.REG[3]);
+ REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_MMConcreteClass, ID_MMConcreteClass)) /*cast MMConcreteClass*/;
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ /* ./nitc.nit:101 */
+ if (UNTAG_Bool(REGB0)) {
+ goto label1;
+ }
+ fra.me.REG[4] = CALL_abstractmetamodel___MMLocalClass___local_local_properties(fra.me.REG[4])(fra.me.REG[4]);
+ fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[4])(fra.me.REG[4]);
+ /* ./nitc.nit:102 */
+ while(1) {
+ REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]);
+ if (UNTAG_Bool(REGB0)) {
+ fra.me.REG[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]);
+ fra.me.REG[6] = NIT_NULL;
+ REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[5], COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
+ /* ./nitc.nit:104 */
+ if (UNTAG_Bool(REGB0)) {
+ fra.me.REG[7] = CALL_icode_base___MMAttribute___iroutine(fra.me.REG[5])(fra.me.REG[5]);
+ fra.me.REG[6] = fra.me.REG[7];
+ /* ./nitc.nit:105 */
+ } else {
+ REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[5], COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
+ /* ./nitc.nit:106 */
+ if (UNTAG_Bool(REGB0)) {
+ fra.me.REG[7] = CALL_icode_base___MMMethod___iroutine(fra.me.REG[5])(fra.me.REG[5]);
+ fra.me.REG[6] = fra.me.REG[7];
+ /* ./nitc.nit:107 */
+ }
+ }
+ REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
+ /* ./nitc.nit:109 */
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(false);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ if (UNTAG_Bool(REGB0)) {
+ goto label2;
+ }
+ REGB0 = TAG_Int(3);
+ fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB0);
+ /* ./nitc.nit:110 */
+ if (!once_value_3) {
+ fra.me.REG[8] = BOX_NativeString("**** Property ");
+ REGB0 = TAG_Int(14);
+ fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
+ once_value_3 = fra.me.REG[8];
+ register_static_object(&once_value_3);
+ } else fra.me.REG[8] = once_value_3;
+ array___Array___add(fra.me.REG[7], fra.me.REG[8]);
+ fra.me.REG[8] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[5])(fra.me.REG[5]);
+ array___Array___add(fra.me.REG[7], fra.me.REG[8]);
+ if (!once_value_4) {
+ fra.me.REG[8] = BOX_NativeString(" ****");
+ REGB0 = TAG_Int(5);
+ fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
+ once_value_4 = fra.me.REG[8];
+ register_static_object(&once_value_4);
+ } else fra.me.REG[8] = once_value_4;
+ array___Array___add(fra.me.REG[7], fra.me.REG[8]);
+ fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
+ CALL_file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7]);
+ fra.me.REG[7] = NEW_ICodeDumper_icode_dump___ICodeDumper___init();
+ REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
+ /* ./nitc.nit:112 */
+ if (UNTAG_Bool(REGB0)) {
+ fprintf(stderr, "Reciever is null");
+ fprintf(stderr, " (%s:%d)\n", LOCATE_nitc, 112);
+ nit_exit(1);
+ }
+ CALL_icode_dump___IRoutine___dump(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
+ REGB0 = TAG_Int(3);
+ fra.me.REG[8] = NEW_Array_array___Array___with_capacity(REGB0);
+ /* ./nitc.nit:113 */
+ if (!once_value_5) {
+ fra.me.REG[9] = BOX_NativeString("**** OPTIMIZE ");
+ REGB0 = TAG_Int(14);
+ fra.me.REG[9] = NEW_String_string___String___with_native(fra.me.REG[9], REGB0);
+ once_value_5 = fra.me.REG[9];
+ register_static_object(&once_value_5);
+ } else fra.me.REG[9] = once_value_5;
+ array___Array___add(fra.me.REG[8], fra.me.REG[9]);
+ fra.me.REG[5] = CALL_abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[5])(fra.me.REG[5]);
+ array___Array___add(fra.me.REG[8], fra.me.REG[5]);
+ if (!once_value_6) {
+ fra.me.REG[5] = BOX_NativeString(" ****");
+ REGB0 = TAG_Int(5);
+ fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB0);
+ once_value_6 = fra.me.REG[5];
+ register_static_object(&once_value_6);
+ } else fra.me.REG[5] = once_value_6;
+ array___Array___add(fra.me.REG[8], fra.me.REG[5]);
+ fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
+ CALL_file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8]);
+ REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
+ /* ./nitc.nit:114 */
+ if (UNTAG_Bool(REGB0)) {
+ fprintf(stderr, "Reciever is null");
+ fprintf(stderr, " (%s:%d)\n", LOCATE_nitc, 114);
+ nit_exit(1);
+ }
+ CALL_analysis___IRoutine___optimize(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
+ fra.me.REG[8] = NEW_ICodeDumper_icode_dump___ICodeDumper___init();
+ fra.me.REG[7] = fra.me.REG[8];
+ REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
+ /* ./nitc.nit:116 */
+ if (UNTAG_Bool(REGB0)) {
+ fprintf(stderr, "Reciever is null");
+ fprintf(stderr, " (%s:%d)\n", LOCATE_nitc, 116);
+ nit_exit(1);
+ }
+ CALL_icode_dump___IRoutine___dump(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
+ label2: while(0);
+ } else {
+ /* ./nitc.nit:102 */
+ goto label7;
+ }
+ CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]);
+ }
+ label7: while(0);
+ label1: while(0);
+ } else {
+ /* ./nitc.nit:100 */
+ goto label8;
+ }
+ CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]);
+ }
+ label8: while(0);
+ } else {
+ /* ./nitc.nit:99 */
+ goto label9;
+ }
+ CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]);