X-Git-Url: http://nitlanguage.org diff --git a/c_src/opts._sep.c b/c_src/opts._sep.c index 8d093dd..e2478c5 100644 --- a/c_src/opts._sep.c +++ b/c_src/opts._sep.c @@ -1,699 +1,1566 @@ /* This C file is generated by NIT to compile module opts. */ #include "opts._sep.h" -val_t opts___Option___names(val_t self) { - struct trace_t trace = {NULL, "opts::Option::names (bin/../lib/opts.nit:16,2--17:35)"}; - trace.prev = tracehead; tracehead = &trace; - tracehead = trace.prev; - return ATTR_opts___Option____names( self) /*Option::_names*/; -} -val_t opts___Option___helptext(val_t self) { - struct trace_t trace = {NULL, "opts::Option::helptext (bin/../lib/opts.nit:22,2--23:32)"}; - trace.prev = tracehead; tracehead = &trace; - tracehead = trace.prev; - return ATTR_opts___Option____helptext( self) /*Option::_helptext*/; -} -val_t opts___Option___mandatory(val_t self) { - struct trace_t trace = {NULL, "opts::Option::mandatory (bin/../lib/opts.nit:25,2--26:40)"}; - trace.prev = tracehead; tracehead = &trace; - tracehead = trace.prev; - return ATTR_opts___Option____mandatory( self) /*Option::_mandatory*/; -} -void opts___Option___mandatory__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, "opts::Option::mandatory= (bin/../lib/opts.nit:25,2--26:40)"}; - trace.prev = tracehead; tracehead = &trace; - ATTR_opts___Option____mandatory( self) /*Option::_mandatory*/ = param0; - tracehead = trace.prev; - return; +val_t opts___Option___to_s(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_opts; + fra.me.line = 54; + fra.me.meth = LOCATE_opts___Option___to_s; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + REGB0 = TAG_Int(2); + fra.me.REG[0] = CALL_opts___Option___pretty(fra.me.REG[0])(fra.me.REG[0], REGB0); + /* ./../lib/opts.nit:55 */ + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +val_t opts___Option___names(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_opts; + fra.me.line = 16; + fra.me.meth = LOCATE_opts___Option___names; + 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_opts___Option____names(fra.me.REG[0])!=NIT_NULL); + /* ./../lib/opts.nit:16 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_names"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 16); + nit_exit(1); + } + fra.me.REG[0] = ATTR_opts___Option____names(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +val_t opts___Option___helptext(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_opts; + fra.me.line = 22; + fra.me.meth = LOCATE_opts___Option___helptext; + 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_opts___Option____helptext(fra.me.REG[0])!=NIT_NULL); + /* ./../lib/opts.nit:22 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_helptext"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 22); + nit_exit(1); + } + fra.me.REG[0] = ATTR_opts___Option____helptext(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; } -val_t opts___Option___context(val_t self) { - struct trace_t trace = {NULL, "opts::Option::context (bin/../lib/opts.nit:28,2--29:47)"}; - trace.prev = tracehead; tracehead = &trace; - tracehead = trace.prev; - return ATTR_opts___Option____context( self) /*Option::_context*/; -} -void opts___Option___context__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, "opts::Option::context= (bin/../lib/opts.nit:28,2--29:47)"}; - trace.prev = tracehead; tracehead = &trace; - ATTR_opts___Option____context( self) /*Option::_context*/ = param0; - tracehead = trace.prev; +val_t opts___Option___mandatory(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_opts; + fra.me.line = 25; + fra.me.meth = LOCATE_opts___Option___mandatory; + 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_opts___Option____mandatory(fra.me.REG[0])!=NIT_NULL); + /* ./../lib/opts.nit:25 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_mandatory"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 25); + nit_exit(1); + } + REGB0 = ATTR_opts___Option____mandatory(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return REGB0; +} +void opts___Option___mandatory__eq(val_t p0, val_t p1){ + 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_opts; + fra.me.line = 25; + fra.me.meth = LOCATE_opts___Option___mandatory__eq; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + REGB0 = p1; + /* ./../lib/opts.nit:25 */ + ATTR_opts___Option____mandatory(fra.me.REG[0]) = REGB0; + stack_frame_head = fra.me.prev; return; } -val_t opts___Option___value(val_t self) { - struct trace_t trace = {NULL, "opts::Option::value (bin/../lib/opts.nit:31,2--32:37)"}; - trace.prev = tracehead; tracehead = &trace; - tracehead = trace.prev; - return ATTR_opts___Option____value( self) /*Option::_value*/; -} -void opts___Option___value__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, "opts::Option::value= (bin/../lib/opts.nit:31,2--32:37)"}; - trace.prev = tracehead; tracehead = &trace; - ATTR_opts___Option____value( self) /*Option::_value*/ = param0; - tracehead = trace.prev; +void opts___Option___value__eq(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 28; + fra.me.meth = LOCATE_opts___Option___value__eq; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + /* ./../lib/opts.nit:28 */ + ATTR_opts___Option____value(fra.me.REG[0]) = fra.me.REG[1]; + stack_frame_head = fra.me.prev; return; } -val_t opts___Option___default_value(val_t self) { - struct trace_t trace = {NULL, "opts::Option::default_value (bin/../lib/opts.nit:34,2--35:45)"}; - trace.prev = tracehead; tracehead = &trace; - tracehead = trace.prev; - return ATTR_opts___Option____default_value( self) /*Option::_default_value*/; -} -void opts___Option___default_value__eq(val_t self, val_t param0) { - struct trace_t trace = {NULL, "opts::Option::default_value= (bin/../lib/opts.nit:34,2--35:45)"}; - trace.prev = tracehead; tracehead = &trace; - ATTR_opts___Option____default_value( self) /*Option::_default_value*/ = param0; - tracehead = trace.prev; +val_t opts___Option___value(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_opts; + fra.me.line = 31; + fra.me.meth = LOCATE_opts___Option___value; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[0] = ATTR_opts___Option____value(fra.me.REG[0]); + REGB0 = TAG_Bool((fra.me.REG[0]==NIT_NULL) || VAL_ISA(fra.me.REG[0], COLOR_Object, ID_Object)) /*cast VALUE*/; + /* ./../lib/opts.nit:32 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Cast failed"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 32); + nit_exit(1); + } + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +val_t opts___Option___default_value(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_opts; + fra.me.line = 34; + fra.me.meth = LOCATE_opts___Option___default_value; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[0] = ATTR_opts___Option____default_value(fra.me.REG[0]); + /* ./../lib/opts.nit:34 */ + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void opts___Option___default_value__eq(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 34; + fra.me.meth = LOCATE_opts___Option___default_value__eq; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + /* ./../lib/opts.nit:34 */ + ATTR_opts___Option____default_value(fra.me.REG[0]) = fra.me.REG[1]; + stack_frame_head = fra.me.prev; return; } -void opts___Option___init_opt(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) { - struct trace_t trace = {NULL, "opts::Option::init_opt (bin/../lib/opts.nit:37,2--47:26)"}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - trace.prev = tracehead; tracehead = &trace; - variable0 = param0; - variable1 = param1; - variable2 = param2; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Option].i]) return; - variable3 = TAG_Bool(( variable2 /*names*/ == NIT_NULL /*null*/) || (( variable2 /*names*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable2 /*names*/,COLOR_kernel___Object_____eqeq))( variable2 /*names*/, NIT_NULL /*null*/) /*Array::==*/))); - if (UNTAG_Bool(variable3)) { /*if*/ - variable3 = NEW_array___Array___init(); /*new Array[String]*/ - ATTR_opts___Option____names( self) /*Option::_names*/ = variable3; - } else { /*if*/ - variable3 = ((array___Collection___to_a_t)CALL( variable2 /*names*/,COLOR_array___Collection___to_a))( variable2 /*names*/) /*Array::to_a*/; - ATTR_opts___Option____names( self) /*Option::_names*/ = variable3; - } - ATTR_opts___Option____helptext( self) /*Option::_helptext*/ = variable0 /*help*/; - ATTR_opts___Option____mandatory( self) /*Option::_mandatory*/ = TAG_Bool(false); - ATTR_opts___Option____default_value( self) /*Option::_default_value*/ = variable1 /*default*/; - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Option].i] = 1; - tracehead = trace.prev; +void opts___Option___init_opt(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){ + int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Option].i; + struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + if (init_table[itpos0]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 37; + fra.me.meth = LOCATE_opts___Option___init_opt; + fra.me.has_broke = 0; + fra.me.REG_size = 5; + 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; + fra.me.REG[1] = p1; + fra.me.REG[2] = p2; + fra.me.REG[3] = p3; + REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + /* ./../lib/opts.nit:40 */ + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); + REGB0 = REGB1; + } + } + if (UNTAG_Bool(REGB0)) { + fra.me.REG[4] = NEW_Array_array___Array___init(); + /* ./../lib/opts.nit:41 */ + ATTR_opts___Option____names(fra.me.REG[0]) = fra.me.REG[4]; + } else { + REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + /* ./../lib/opts.nit:43 */ + if (UNTAG_Bool(REGB0)) { + fprintf(stderr, "Reciever is null"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 43); + nit_exit(1); + } + fra.me.REG[3] = CALL_array___Collection___to_a(fra.me.REG[3])(fra.me.REG[3]); + ATTR_opts___Option____names(fra.me.REG[0]) = fra.me.REG[3]; + } + /* ./../lib/opts.nit:45 */ + ATTR_opts___Option____helptext(fra.me.REG[0]) = fra.me.REG[1]; + REGB0 = TAG_Bool(false); + /* ./../lib/opts.nit:46 */ + ATTR_opts___Option____mandatory(fra.me.REG[0]) = REGB0; + /* ./../lib/opts.nit:47 */ + ATTR_opts___Option____default_value(fra.me.REG[0]) = fra.me.REG[2]; + /* ./../lib/opts.nit:48 */ + ATTR_opts___Option____value(fra.me.REG[0]) = fra.me.REG[2]; + stack_frame_head = fra.me.prev; + init_table[itpos0] = 1; return; } -void opts___Option___add_aliases(val_t self, val_t param0) { - struct trace_t trace = {NULL, "opts::Option::add_aliases (bin/../lib/opts.nit:50,2--51:59)"}; - val_t variable0; - val_t variable1; - trace.prev = tracehead; tracehead = &trace; - /* check if pUNTAG_Int( TAG_Int(0))); - if (UNTAG_Bool(variable3)) { /*if*/ - variable3 = NEW_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/ - variable3 = ((string___String_____star_t)CALL(variable3,COLOR_string___String_____star))(variable3, variable2 /*rest*/) /*String::**/; - ((string___String___append_t)CALL( variable1 /*text*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*text*/, variable3) /*String::append*/; - } - variable3 = ((opts___Option___helptext_t)CALL( self,COLOR_opts___Option___helptext))( self) /*Option::helptext*/; - ((string___String___append_t)CALL( variable1 /*text*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*text*/, variable3) /*String::append*/; - variable1 = variable1 /*text*/; - goto return_label3; - return_label3: while(false); - tracehead = trace.prev; - return variable1; -} -val_t opts___Option___pretty_default(val_t self) { - struct trace_t trace = {NULL, "opts::Option::pretty_default (bin/../lib/opts.nit:69,2--74:11)"}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - val_t variable4; - val_t variable5; - val_t variable6; - trace.prev = tracehead; tracehead = &trace; - variable0 = ((opts___Option___default_value_t)CALL( self,COLOR_opts___Option___default_value))( self) /*Option::default_value*/; - variable0 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable0 == NIT_NULL /*null*/) || ((variable0 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable0, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable0,COLOR_kernel___Object_____eqeq))(variable0, NIT_NULL /*null*/) /*Object::==*/))))))); - if (UNTAG_Bool(variable0)) { /*if*/ - variable0 = NEW_string___String___init(); /*new String*/ - variable1 = NEW_string___String___with_native(BOX_NativeString(" ("), TAG_Int(2)); /*new String*/ - variable2 = variable1; - ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/; - variable3 = ((opts___Option___default_value_t)CALL( self,COLOR_opts___Option___default_value))( self) /*Option::default_value*/; - variable4 = variable3; - variable4 = ((string___String___to_s_t)CALL(variable4,COLOR_string___Object___to_s))(variable4) /*String::to_s*/; - ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable4) /*String::append*/; - variable5 = NEW_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/ - variable6 = variable5; - ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable6) /*String::append*/; - goto return_label4; - } - variable0 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - goto return_label4; - return_label4: while(false); - tracehead = trace.prev; - return variable0; -} -void opts___Option___read_param(val_t self, val_t param0) { - struct trace_t trace = {NULL, "opts::Option::read_param (bin/../lib/opts.nit:77,2--78:46)"}; - trace.prev = tracehead; tracehead = &trace; - fprintf(stderr, "Deferred method read_param called (bin/../lib/opts.nit:77,2)\n"); +val_t opts___Option___pretty(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + val_t REGB0; + val_t REGB1; + 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 */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 57; + fra.me.meth = LOCATE_opts___Option___pretty; + 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; + REGB0 = p1; + /* ./../lib/opts.nit:60 */ + if (!once_value_1) { + fra.me.REG[1] = BOX_NativeString(" "); + REGB1 = TAG_Int(2); + fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB1); + once_value_1 = fra.me.REG[1]; + register_static_object(&once_value_1); + } else fra.me.REG[1] = once_value_1; + fra.me.REG[1] = NEW_Buffer_string___Buffer___from(fra.me.REG[1]); + REGB1 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL); + /* ./../lib/opts.nit:61 */ + if (UNTAG_Bool(REGB1)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_names"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 61); + nit_exit(1); + } + fra.me.REG[2] = ATTR_opts___Option____names(fra.me.REG[0]); + if (!once_value_2) { + fra.me.REG[3] = BOX_NativeString(", "); + REGB1 = TAG_Int(2); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1); + 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] = CALL_string___Collection___join(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./../lib/opts.nit:62 */ + if (!once_value_3) { + fra.me.REG[3] = BOX_NativeString(" "); + REGB1 = TAG_Int(2); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB1); + once_value_3 = fra.me.REG[3]; + register_static_object(&once_value_3); + } else fra.me.REG[3] = once_value_3; + CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL); + /* ./../lib/standard//collection//array.nit:23 */ + if (UNTAG_Bool(REGB1)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_length"); + fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23); + nit_exit(1); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]); + REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1)); + REGB0 = TAG_Int(0); + REGB0 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0)); + /* ./../lib/opts.nit:64 */ + if (UNTAG_Bool(REGB0)) { + if (!once_value_4) { + fra.me.REG[3] = BOX_NativeString(" "); + REGB0 = TAG_Int(1); + fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0); + once_value_4 = fra.me.REG[3]; + register_static_object(&once_value_4); + } else fra.me.REG[3] = once_value_4; + fra.me.REG[3] = CALL_string___String_____star(fra.me.REG[3])(fra.me.REG[3], REGB1); + CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + } + fra.me.REG[0] = CALL_opts___Option___helptext(fra.me.REG[0])(fra.me.REG[0]); + /* ./../lib/opts.nit:65 */ + CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]); + /* ./../lib/opts.nit:67 */ + goto label5; + label5: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[1]; +} +val_t opts___Option___pretty_default(val_t p0){ + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_2; /* Once value */ + static val_t once_value_4; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 70; + fra.me.meth = LOCATE_opts___Option___pretty_default; + 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] = CALL_opts___Option___default_value(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + /* ./../lib/opts.nit:72 */ + if (UNTAG_Bool(REGB0)) { + } else { + REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL); + REGB0 = REGB1; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + REGB0 = TAG_Int(3); + fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0); + /* ./../lib/opts.nit:73 */ + if (!once_value_1) { + fra.me.REG[2] = BOX_NativeString(" ("); + REGB0 = TAG_Int(2); + 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; + array___Array___add(fra.me.REG[1], fra.me.REG[2]); + fra.me.REG[0] = CALL_opts___Option___default_value(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); + array___Array___add(fra.me.REG[1], fra.me.REG[0]); + if (!once_value_2) { + fra.me.REG[0] = BOX_NativeString(")"); + REGB0 = TAG_Int(1); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_2 = fra.me.REG[0]; + register_static_object(&once_value_2); + } else fra.me.REG[0] = once_value_2; + array___Array___add(fra.me.REG[1], fra.me.REG[0]); + fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]); + goto label3; + } + /* ./../lib/opts.nit:75 */ + if (!once_value_4) { + fra.me.REG[0] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0); + once_value_4 = fra.me.REG[0]; + register_static_object(&once_value_4); + } else fra.me.REG[0] = once_value_4; + fra.me.REG[1] = fra.me.REG[0]; + goto label3; + label3: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[1]; +} +void opts___Option___read_param(val_t p0, val_t p1){ + 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_opts; + fra.me.line = 78; + fra.me.meth = LOCATE_opts___Option___read_param; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + /* ./../lib/opts.nit:78 */ + fprintf(stderr, "Deferred method called"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 78); nit_exit(1); - tracehead = trace.prev; + stack_frame_head = fra.me.prev; return; } -void opts___OptionText___init(val_t self, val_t param0, int* init_table) { - struct trace_t trace = {NULL, "opts::OptionText::init (bin/../lib/opts.nit:83,2--48)"}; - val_t variable0; - trace.prev = tracehead; tracehead = &trace; - variable0 = param0; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionText].i]) return; - ((opts___Option___init_opt_t)CALL( self,COLOR_opts___Option___init_opt))( self, variable0 /*text*/, NIT_NULL /*null*/, NIT_NULL /*null*/, init_table /*YYY*/) /*OptionText::init_opt*/; - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionText].i] = 1; - tracehead = trace.prev; +val_t opts___OptionText___to_s(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_opts; + fra.me.line = 88; + fra.me.meth = LOCATE_opts___OptionText___to_s; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[0] = CALL_opts___Option___helptext(fra.me.REG[0])(fra.me.REG[0]); + /* ./../lib/opts.nit:88 */ + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +val_t opts___OptionText___pretty(val_t p0, val_t p1){ + 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_opts; + fra.me.line = 86; + fra.me.meth = LOCATE_opts___OptionText___pretty; + fra.me.has_broke = 0; + fra.me.REG_size = 1; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[0] = p0; + REGB0 = p1; + fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); + /* ./../lib/opts.nit:86 */ + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void opts___OptionText___init(val_t p0, val_t p1, int* init_table){ + int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_OptionText].i; + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t tmp; + if (init_table[itpos1]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 84; + fra.me.meth = LOCATE_opts___OptionText___init; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + /* ./../lib/opts.nit:84 */ + CALL_opts___Option___init_opt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], NIT_NULL, NIT_NULL, init_table); + stack_frame_head = fra.me.prev; + init_table[itpos1] = 1; return; } -val_t opts___OptionText___pretty(val_t self, val_t param0) { - struct trace_t trace = {NULL, "opts::OptionText::pretty (bin/../lib/opts.nit:85,2--38)"}; - val_t variable0; - val_t variable1; - trace.prev = tracehead; tracehead = &trace; - variable0 = param0; - variable1 = ((opts___OptionText___to_s_t)CALL( self,COLOR_string___Object___to_s))( self) /*OptionText::to_s*/; - goto return_label6; - return_label6: while(false); - tracehead = trace.prev; - return variable1; -} -val_t opts___OptionText___to_s(val_t self) { - struct trace_t trace = {NULL, "opts::OptionText::to_s (bin/../lib/opts.nit:87,2--35)"}; - val_t variable0; - trace.prev = tracehead; tracehead = &trace; - variable0 = ((opts___Option___helptext_t)CALL( self,COLOR_opts___Option___helptext))( self) /*OptionText::helptext*/; - goto return_label7; - return_label7: while(false); - tracehead = trace.prev; - return variable0; -} -void opts___OptionBool___init(val_t self, val_t param0, val_t param1, int* init_table) { - struct trace_t trace = {NULL, "opts::OptionBool::init (bin/../lib/opts.nit:94,2--68)"}; - val_t variable0; - val_t variable1; - trace.prev = tracehead; tracehead = &trace; - variable0 = param0; - /* check if pvft[INIT_TABLE_POS_OptionBool].i]) return; - ((opts___Option___init_opt_t)CALL( self,COLOR_opts___Option___init_opt))( self, variable0 /*help*/, TAG_Bool(false), variable1 /*names*/, init_table /*YYY*/) /*OptionBool::init_opt*/; - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionBool].i] = 1; - tracehead = trace.prev; +void opts___OptionBool___read_param(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 97; + fra.me.meth = LOCATE_opts___OptionBool___read_param; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + REGB0 = TAG_Bool(true); + /* ./../lib/opts.nit:97 */ + CALL_opts___Option___value__eq(fra.me.REG[0])(fra.me.REG[0], REGB0); + stack_frame_head = fra.me.prev; return; } -void opts___OptionBool___read_param(val_t self, val_t param0) { - struct trace_t trace = {NULL, "opts::OptionBool::read_param (bin/../lib/opts.nit:96,2--42)"}; - val_t variable0; - trace.prev = tracehead; tracehead = &trace; - variable0 = param0; - ((opts___Option___value__eq_t)CALL( self,COLOR_opts___Option___value__eq))( self, TAG_Bool(true)) /*OptionBool::value=*/; - tracehead = trace.prev; +void opts___OptionBool___init(val_t p0, val_t p1, val_t p2, int* init_table){ + int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_OptionBool].i; + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t REGB0; + val_t tmp; + if (init_table[itpos2]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 95; + fra.me.meth = LOCATE_opts___OptionBool___init; + 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] = p2; + REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_Array, ID_Array)) /*cast Array[String]*/; + /* ./../lib/opts.nit:95 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Cast failed"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 95); + nit_exit(1); + } + REGB0 = TAG_Bool(false); + CALL_opts___Option___init_opt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0, fra.me.REG[2], init_table); + stack_frame_head = fra.me.prev; + init_table[itpos2] = 1; return; } -val_t opts___OptionParameter___convert(val_t self, val_t param0) { - struct trace_t trace = {NULL, "opts::OptionParameter::convert (bin/../lib/opts.nit:102,2--43)"}; - trace.prev = tracehead; tracehead = &trace; - fprintf(stderr, "Deferred method convert called (bin/../lib/opts.nit:102,2)\n"); - nit_exit(1); - tracehead = trace.prev; - return NIT_NULL; +void opts___OptionCount___read_param(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 106; + fra.me.meth = LOCATE_opts___OptionCount___read_param; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Int(1); + REGB0 = TAG_Int(UNTAG_Int(fra.me.REG[1])+UNTAG_Int(REGB0)); + /* ./../lib/opts.nit:106 */ + CALL_opts___Option___value__eq(fra.me.REG[0])(fra.me.REG[0], REGB0); + stack_frame_head = fra.me.prev; + return; } -void opts___OptionParameter___read_param(val_t self, val_t param0) { - struct trace_t trace = {NULL, "opts::OptionParameter::read_param (bin/../lib/opts.nit:104,2--109:10)"}; - val_t variable0; - val_t variable1; - trace.prev = tracehead; tracehead = &trace; - variable0 = param0; - variable1 = ((opts___Option___context_t)CALL( self,COLOR_opts___Option___context))( self) /*OptionParameter::context*/; - variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*OptionContext::==*/))))))); - if (!UNTAG_Bool(variable1)) { fprintf(stderr, "Assert failed: bin/../lib/opts.nit:106,3--24\n"); nit_exit(1);} - variable1 = ((abstract_collection___Iterator___is_ok_t)CALL( variable0 /*it*/,COLOR_abstract_collection___Iterator___is_ok))( variable0 /*it*/) /*Iterator::is_ok*/; - if (UNTAG_Bool(variable1)) { /*if*/ - variable1 = ((abstract_collection___Iterator___item_t)CALL( variable0 /*it*/,COLOR_abstract_collection___Iterator___item))( variable0 /*it*/) /*Iterator::item*/; - variable1 = ((opts___OptionParameter___convert_t)CALL( self,COLOR_opts___OptionParameter___convert))( self, variable1) /*OptionParameter::convert*/; - ((opts___Option___value__eq_t)CALL( self,COLOR_opts___Option___value__eq))( self, variable1) /*OptionParameter::value=*/; - ((abstract_collection___Iterator___next_t)CALL( variable0 /*it*/,COLOR_abstract_collection___Iterator___next))( variable0 /*it*/) /*Iterator::next*/; - } - tracehead = trace.prev; +void opts___OptionCount___init(val_t p0, val_t p1, val_t p2, int* init_table){ + int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_OptionCount].i; + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t REGB0; + val_t tmp; + if (init_table[itpos3]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 104; + fra.me.meth = LOCATE_opts___OptionCount___init; + 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] = p2; + REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_Array, ID_Array)) /*cast Array[String]*/; + /* ./../lib/opts.nit:104 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Cast failed"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 104); + nit_exit(1); + } + REGB0 = TAG_Int(0); + CALL_opts___Option___init_opt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0, fra.me.REG[2], init_table); + stack_frame_head = fra.me.prev; + init_table[itpos3] = 1; return; } -void opts___OptionParameter___init_opt(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) { - struct trace_t trace = {NULL, "opts::OptionParameter::init_opt (bin/../lib/opts.nit:115,2--32)"}; - val_t variable0; - val_t variable1; - val_t variable2; - trace.prev = tracehead; tracehead = &trace; - variable0 = param0; - variable1 = param1; - variable2 = param2; - if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionParameter].i]) return; - ((opts___Option___init_opt_t)CALL( self,COLOR_opts___Option___init_opt))( self, param0, param1, param2, init_table /*YYY*/) /*Option::init_opt*/; - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionParameter].i] = 1; - tracehead = trace.prev; +void opts___OptionParameter___read_param(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_opts; + fra.me.line = 114; + fra.me.meth = LOCATE_opts___OptionParameter___read_param; + 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; + REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]); + /* ./../lib/opts.nit:116 */ + 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] = CALL_opts___OptionParameter___convert(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); + /* ./../lib/opts.nit:117 */ + CALL_opts___Option___value__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); + /* ./../lib/opts.nit:118 */ + CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]); + } + stack_frame_head = fra.me.prev; return; } -void opts___OptionString___init(val_t self, val_t param0, val_t param1, int* init_table) { - struct trace_t trace = {NULL, "opts::OptionString::init (bin/../lib/opts.nit:122,2--67)"}; - val_t variable0; - val_t variable1; - trace.prev = tracehead; tracehead = &trace; - variable0 = param0; - /* check if pvft[INIT_TABLE_POS_OptionString].i]) return; - ((opts___OptionParameter___init_opt_t)CALL( self,COLOR_opts___OptionParameter___init_opt))( self, variable0 /*help*/, NIT_NULL /*null*/, variable1 /*names*/, init_table /*YYY*/) /*OptionString::init_opt*/; - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionString].i] = 1; - tracehead = trace.prev; +val_t opts___OptionParameter___convert(val_t p0, val_t p1){ + 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_opts; + fra.me.line = 112; + fra.me.meth = LOCATE_opts___OptionParameter___convert; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + /* ./../lib/opts.nit:112 */ + fprintf(stderr, "Deferred method called"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 112); + nit_exit(1); + stack_frame_head = fra.me.prev; + return NIT_NULL; +} +void opts___OptionParameter___init_opt(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){ + int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_OptionParameter].i; + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + val_t tmp; + if (init_table[itpos4]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 124; + fra.me.meth = LOCATE_opts___OptionParameter___init_opt; + 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] = p1; + fra.me.REG[2] = p2; + fra.me.REG[3] = p3; + /* ./../lib/opts.nit:124 */ + CALL_opts___Option___init_opt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3], init_table); + stack_frame_head = fra.me.prev; + init_table[itpos4] = 1; return; } -val_t opts___OptionString___convert(val_t self, val_t param0) { - struct trace_t trace = {NULL, "opts::OptionString::convert (bin/../lib/opts.nit:124,2--38)"}; - val_t variable0; - val_t variable1; - trace.prev = tracehead; tracehead = &trace; - variable0 = param0; - variable1 = variable0 /*str*/; - goto return_label13; - return_label13: while(false); - tracehead = trace.prev; - return variable1; -} -void opts___OptionEnum___init(val_t self, val_t param0, val_t param1, val_t param2, val_t param3, int* init_table) { - struct trace_t trace = {NULL, "opts::OptionEnum::init (bin/../lib/opts.nit:132,2--136:55)"}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - val_t variable4; - val_t variable5; - val_t variable6; - val_t variable7; - val_t variable8; - val_t variable9; - val_t variable10; - val_t variable11; - val_t variable12; - val_t variable13; - trace.prev = tracehead; tracehead = &trace; - variable0 = param0; - variable1 = param1; - variable2 = param2; - /* check if pvft[INIT_TABLE_POS_OptionEnum].i]) return; - variable4 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*enum*/ == NIT_NULL /*null*/) || (( variable0 /*enum*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable0 /*enum*/,COLOR_kernel___Object_____eqeq))( variable0 /*enum*/, NIT_NULL /*null*/) /*Array::==*/))))); - variable5 = variable4; - if (UNTAG_Bool(variable5)) { /* and */ - variable5 = ((array___AbstractArray___length_t)CALL( variable0 /*enum*/,COLOR_abstract_collection___Collection___length))( variable0 /*enum*/) /*Array::length*/; - variable5 = TAG_Bool(UNTAG_Int(variable5)>UNTAG_Int( TAG_Int(0))); - } - variable4 = variable5; - if (!UNTAG_Bool(variable4)) { fprintf(stderr, "Assert failed: bin/../lib/opts.nit:134,3--41\n"); nit_exit(1);} - variable4 = ((array___Collection___to_a_t)CALL( variable0 /*enum*/,COLOR_array___Collection___to_a))( variable0 /*enum*/) /*Array::to_a*/; - ATTR_opts___OptionEnum____enum( self) /*OptionEnum::_enum*/ = variable4; - variable4 = NEW_string___String___init(); /*new String*/ - variable5 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - variable6 = variable5; - ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable6) /*String::append*/; - variable7 = variable1 /*help*/; - ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable7) /*String::append*/; - variable8 = NEW_string___String___with_native(BOX_NativeString(" <"), TAG_Int(2)); /*new String*/ - variable9 = variable8; - ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable9) /*String::append*/; - variable10 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/ - variable10 = ((string___Collection___join_t)CALL( variable0 /*enum*/,COLOR_string___Collection___join))( variable0 /*enum*/, variable10) /*Array::join*/; - variable11 = variable10; - ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable11) /*String::append*/; - variable12 = NEW_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)); /*new String*/ - variable13 = variable12; - ((string___String___append_t)CALL(variable4,COLOR_abstract_collection___IndexedCollection___append))(variable4, variable13) /*String::append*/; - ((opts___OptionParameter___init_opt_t)CALL( self,COLOR_opts___OptionParameter___init_opt))( self, variable4, variable2 /*default*/, variable3 /*names*/, init_table /*YYY*/) /*OptionEnum::init_opt*/; - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionEnum].i] = 1; - tracehead = trace.prev; +val_t opts___OptionString___convert(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 133; + fra.me.meth = LOCATE_opts___OptionString___convert; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + /* ./../lib/opts.nit:133 */ + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[1]; +} +void opts___OptionString___init(val_t p0, val_t p1, val_t p2, int* init_table){ + int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_OptionString].i; + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t REGB0; + val_t tmp; + if (init_table[itpos5]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 131; + fra.me.meth = LOCATE_opts___OptionString___init; + 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] = p2; + REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_Array, ID_Array)) /*cast Array[String]*/; + /* ./../lib/opts.nit:131 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Cast failed"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 131); + nit_exit(1); + } + CALL_opts___OptionParameter___init_opt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], NIT_NULL, fra.me.REG[2], init_table); + stack_frame_head = fra.me.prev; + init_table[itpos5] = 1; return; } -val_t opts___OptionEnum___convert(val_t self, val_t param0) { - struct trace_t trace = {NULL, "opts::OptionEnum::convert (bin/../lib/opts.nit:139,2--142:11)"}; - val_t variable0; - val_t variable1; - val_t variable2; - trace.prev = tracehead; tracehead = &trace; - variable0 = param0; - variable2 = ATTR_opts___OptionEnum____enum( self) /*OptionEnum::_enum*/; - variable2 = ((array___AbstractArray___index_of_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___index_of))(variable2, variable0 /*str*/) /*Array::index_of*/; - variable1 = variable2; - variable1 = variable1 /*id*/; - goto return_label15; - return_label15: while(false); - tracehead = trace.prev; - return variable1; -} -val_t opts___OptionEnum___pretty_default(val_t self) { - struct trace_t trace = {NULL, "opts::OptionEnum::pretty_default (bin/../lib/opts.nit:145,2--150:12)"}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - val_t variable4; - val_t variable5; - val_t variable6; - val_t variable7; - trace.prev = tracehead; tracehead = &trace; - variable0 = ((opts___Option___default_value_t)CALL( self,COLOR_opts___Option___default_value))( self) /*OptionEnum::default_value*/; - variable0 = TAG_Bool((variable0)!=( NIT_NULL /*null*/)); - if (UNTAG_Bool(variable0)) { /*if*/ - variable0 = NEW_string___String___init(); /*new String*/ - variable1 = NEW_string___String___with_native(BOX_NativeString(" ("), TAG_Int(2)); /*new String*/ - variable2 = variable1; - ((string___String___append_t)CALL(variable0,COLOR_abstract_collection___IndexedCollection___append))(variable0, variable2) /*String::append*/; - variable3 = ATTR_opts___OptionEnum____enum( self) /*OptionEnum::_enum*/; - variable4 = ((opts___Option___default_value_t)CALL( self,COLOR_opts___Option___default_value))( self) /*OptionEnum::default_value*/; - variable5 = variable4; - variable6 = TAG_Bool(UNTAG_Int( variable5 /*index*/)>=UNTAG_Int( TAG_Int(0))); - variable7 = variable6; - if (UNTAG_Bool(variable7)) { /* and */ - variable7 = variable3; - variable7 = ATTR_array___AbstractArray____length(variable7) /*Array::_length*/; - variable7 = TAG_Bool(UNTAG_Int( variable5 /*index*/)vft[INIT_TABLE_POS_OptionInt].i]) return; - ((opts___OptionParameter___init_opt_t)CALL( self,COLOR_opts___OptionParameter___init_opt))( self, variable0 /*help*/, variable1 /*default*/, variable2 /*names*/, init_table /*YYY*/) /*OptionInt::init_opt*/; - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionInt].i] = 1; - tracehead = trace.prev; + fra.me.REG[2] = ATTR_opts___OptionEnum____enum(fra.me.REG[0]); + fra.me.REG[0] = CALL_opts___Option___default_value(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Bool((fra.me.REG[0]!=NIT_NULL) && VAL_ISA(fra.me.REG[0], COLOR_Int, ID_Int)) /*cast VALUE*/; + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Cast failed"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 157); + nit_exit(1); + } + REGB0 = fra.me.REG[0]; + REGB1 = TAG_Int(0); + REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1)); + /* ./../lib/standard//collection//array.nit:233 */ + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_length"); + fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233); + nit_exit(1); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; + /* ./../lib/standard//collection//array.nit:234 */ + goto label2; + label2: while(0); + /* ./../lib/opts.nit:157 */ + array___Array___add(fra.me.REG[1], fra.me.REG[2]); + if (!once_value_3) { + fra.me.REG[2] = BOX_NativeString(")"); + REGB0 = TAG_Int(1); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); + once_value_3 = fra.me.REG[2]; + register_static_object(&once_value_3); + } else fra.me.REG[2] = once_value_3; + array___Array___add(fra.me.REG[1], fra.me.REG[2]); + fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]); + goto label4; + } else { + /* ./../lib/opts.nit:159 */ + if (!once_value_5) { + fra.me.REG[2] = BOX_NativeString(""); + REGB0 = TAG_Int(0); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0); + once_value_5 = fra.me.REG[2]; + register_static_object(&once_value_5); + } else fra.me.REG[2] = once_value_5; + fra.me.REG[1] = fra.me.REG[2]; + goto label4; + } + label4: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[1]; +} +val_t opts___OptionEnum___convert(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 148; + fra.me.meth = LOCATE_opts___OptionEnum___convert; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + REGB0 = TAG_Bool(ATTR_opts___OptionEnum____enum(fra.me.REG[0])!=NIT_NULL); + /* ./../lib/opts.nit:150 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_enum"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 150); + nit_exit(1); + } + fra.me.REG[0] = ATTR_opts___OptionEnum____enum(fra.me.REG[0]); + REGB0 = CALL_abstract_collection___SequenceRead___index_of(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + /* ./../lib/opts.nit:151 */ + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +void opts___OptionEnum___init(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){ + int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_OptionEnum].i; + 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 */ + if (init_table[itpos6]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 141; + fra.me.meth = LOCATE_opts___OptionEnum___init; + fra.me.has_broke = 0; + fra.me.REG_size = 6; + 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; + fra.me.REG[2] = p2; + REGB0 = p3; + fra.me.REG[3] = p4; + REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[String]*/; + /* ./../lib/opts.nit:141 */ + if (UNTAG_Bool(REGB1)) { + } else { + fprintf(stderr, "Cast failed"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 141); + nit_exit(1); + } + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL); + /* ./../lib/standard//collection//array.nit:23 */ + if (UNTAG_Bool(REGB1)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_length"); + fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23); + nit_exit(1); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]); + REGB2 = TAG_Int(0); + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2)); + /* ./../lib/opts.nit:143 */ + if (UNTAG_Bool(REGB2)) { + } else { + fprintf(stderr, "Assert failed"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 143); + nit_exit(1); + } + fra.me.REG[4] = CALL_array___Collection___to_a(fra.me.REG[1])(fra.me.REG[1]); + /* ./../lib/opts.nit:144 */ + ATTR_opts___OptionEnum____enum(fra.me.REG[0]) = fra.me.REG[4]; + REGB2 = TAG_Int(5); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB2); + /* ./../lib/opts.nit:145 */ + if (!once_value_1) { + fra.me.REG[5] = BOX_NativeString(""); + REGB2 = TAG_Int(0); + fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB2); + once_value_1 = fra.me.REG[5]; + register_static_object(&once_value_1); + } else fra.me.REG[5] = once_value_1; + array___Array___add(fra.me.REG[4], fra.me.REG[5]); + array___Array___add(fra.me.REG[4], fra.me.REG[2]); + if (!once_value_2) { + fra.me.REG[2] = BOX_NativeString(" <"); + REGB2 = TAG_Int(2); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2); + once_value_2 = fra.me.REG[2]; + register_static_object(&once_value_2); + } else fra.me.REG[2] = once_value_2; + array___Array___add(fra.me.REG[4], fra.me.REG[2]); + if (!once_value_3) { + fra.me.REG[2] = BOX_NativeString(", "); + REGB2 = TAG_Int(2); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2); + once_value_3 = fra.me.REG[2]; + register_static_object(&once_value_3); + } else fra.me.REG[2] = once_value_3; + fra.me.REG[2] = CALL_string___Collection___join(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + array___Array___add(fra.me.REG[4], fra.me.REG[2]); + if (!once_value_4) { + fra.me.REG[2] = BOX_NativeString(">"); + REGB2 = TAG_Int(1); + fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB2); + once_value_4 = fra.me.REG[2]; + register_static_object(&once_value_4); + } else fra.me.REG[2] = once_value_4; + array___Array___add(fra.me.REG[4], fra.me.REG[2]); + fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]); + CALL_opts___OptionParameter___init_opt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], REGB0, fra.me.REG[3], init_table); + stack_frame_head = fra.me.prev; + init_table[itpos6] = 1; return; } -val_t opts___OptionInt___convert(val_t self, val_t param0) { - struct trace_t trace = {NULL, "opts::OptionInt::convert (bin/../lib/opts.nit:161,2--43)"}; - val_t variable0; - val_t variable1; - trace.prev = tracehead; tracehead = &trace; - variable0 = param0; - variable1 = ((string___String___to_i_t)CALL( variable0 /*str*/,COLOR_string___String___to_i))( variable0 /*str*/) /*String::to_i*/; - goto return_label19; - return_label19: while(false); - tracehead = trace.prev; - return variable1; -} -void opts___OptionArray___init(val_t self, val_t param0, val_t param1, int* init_table) { - struct trace_t trace = {NULL, "opts::OptionArray::init (bin/../lib/opts.nit:168,2--171:31)"}; - val_t variable0; - val_t variable1; - val_t variable2; - trace.prev = tracehead; tracehead = &trace; - variable0 = param0; - /* check if pvft[INIT_TABLE_POS_OptionArray].i]) return; - variable2 = NEW_array___Array___init(); /*new Array[String]*/ - ATTR_opts___OptionArray____values( self) /*OptionArray::_values*/ = variable2; - variable2 = ATTR_opts___OptionArray____values( self) /*OptionArray::_values*/; - ((opts___OptionParameter___init_opt_t)CALL( self,COLOR_opts___OptionParameter___init_opt))( self, variable0 /*help*/, variable2, variable1 /*names*/, init_table /*YYY*/) /*OptionArray::init_opt*/; - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionArray].i] = 1; - tracehead = trace.prev; +val_t opts___OptionInt___convert(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 170; + fra.me.meth = LOCATE_opts___OptionInt___convert; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = p1; + REGB0 = CALL_string___AbstractString___to_i(fra.me.REG[1])(fra.me.REG[1]); + /* ./../lib/opts.nit:170 */ + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +void opts___OptionInt___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){ + int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_OptionInt].i; + struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + val_t REGB0; + val_t REGB1; + val_t tmp; + if (init_table[itpos7]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 168; + fra.me.meth = LOCATE_opts___OptionInt___init; + 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; + REGB0 = p2; + fra.me.REG[2] = p3; + REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_Array, ID_Array)) /*cast Array[String]*/; + /* ./../lib/opts.nit:168 */ + if (UNTAG_Bool(REGB1)) { + } else { + fprintf(stderr, "Cast failed"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 168); + nit_exit(1); + } + CALL_opts___OptionParameter___init_opt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0, fra.me.REG[2], init_table); + stack_frame_head = fra.me.prev; + init_table[itpos7] = 1; return; } -val_t opts___OptionArray___convert(val_t self, val_t param0) { - struct trace_t trace = {NULL, "opts::OptionArray::convert (bin/../lib/opts.nit:175,2--178:16)"}; - val_t variable0; - val_t variable1; - trace.prev = tracehead; tracehead = &trace; - variable0 = param0; - variable1 = ATTR_opts___OptionArray____values( self) /*OptionArray::_values*/; - ((array___AbstractArray___add_t)CALL(variable1,COLOR_abstract_collection___SimpleCollection___add))(variable1, variable0 /*str*/) /*Array::add*/; - variable1 = ATTR_opts___OptionArray____values( self) /*OptionArray::_values*/; - goto return_label21; - return_label21: while(false); - tracehead = trace.prev; - return variable1; -} -val_t opts___OptionContext___options(val_t self) { - struct trace_t trace = {NULL, "opts::OptionContext::options (bin/../lib/opts.nit:183,2--37)"}; - trace.prev = tracehead; tracehead = &trace; - tracehead = trace.prev; - return ATTR_opts___OptionContext____options( self) /*OptionContext::_options*/; -} -val_t opts___OptionContext___rest(val_t self) { - struct trace_t trace = {NULL, "opts::OptionContext::rest (bin/../lib/opts.nit:184,2--34)"}; - trace.prev = tracehead; tracehead = &trace; - tracehead = trace.prev; - return ATTR_opts___OptionContext____rest( self) /*OptionContext::_rest*/; -} -void opts___OptionContext___usage(val_t self) { - struct trace_t trace = {NULL, "opts::OptionContext::usage (bin/../lib/opts.nit:188,2--200:22)"}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - val_t variable4; - val_t variable5; - val_t variable6; - trace.prev = tracehead; tracehead = &trace; - variable0 = TAG_Int(1); - variable1 = ATTR_opts___OptionContext____options( self) /*OptionContext::_options*/; - variable1 = ((array___AbstractArray___iterator_t)CALL(variable1,COLOR_abstract_collection___Collection___iterator))(variable1) /*Array::iterator*/; - while (true) { /*for*/ - variable2 = ((array___ArrayIterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable2)) break; /*for*/ - variable2 = ((array___ArrayIterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*ArrayIterator::item*/; - variable3 = TAG_Int(3); - variable4 = ((opts___Option___names_t)CALL( variable2 /*i*/,COLOR_opts___Option___names))( variable2 /*i*/) /*Option::names*/; - variable4 = ((array___AbstractArray___iterator_t)CALL(variable4,COLOR_abstract_collection___Collection___iterator))(variable4) /*Array::iterator*/; - while (true) { /*for*/ - variable5 = ((array___ArrayIterator___is_ok_t)CALL(variable4,COLOR_abstract_collection___Iterator___is_ok))(variable4) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable5)) break; /*for*/ - variable5 = ((array___ArrayIterator___item_t)CALL(variable4,COLOR_abstract_collection___Iterator___item))(variable4) /*ArrayIterator::item*/; - variable6 = ((array___AbstractArray___length_t)CALL( variable5 /*n*/,COLOR_abstract_collection___Collection___length))( variable5 /*n*/) /*String::length*/; - variable6 = TAG_Int(UNTAG_Int(variable6)+UNTAG_Int( TAG_Int(2))); - variable3 = TAG_Int(UNTAG_Int(variable3)+UNTAG_Int(variable6)) /*l*/; - continue_24: while(0); - ((array___ArrayIterator___next_t)CALL(variable4,COLOR_abstract_collection___Iterator___next))(variable4) /*ArrayIterator::next*/; +val_t opts___OptionArray___convert(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_opts; + fra.me.line = 184; + fra.me.meth = LOCATE_opts___OptionArray___convert; + 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; + REGB0 = TAG_Bool(ATTR_opts___OptionArray____values(fra.me.REG[0])!=NIT_NULL); + /* ./../lib/opts.nit:186 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_values"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 186); + nit_exit(1); + } + fra.me.REG[2] = ATTR_opts___OptionArray____values(fra.me.REG[0]); + array___Array___add(fra.me.REG[2], fra.me.REG[1]); + REGB0 = TAG_Bool(ATTR_opts___OptionArray____values(fra.me.REG[0])!=NIT_NULL); + /* ./../lib/opts.nit:187 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_values"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 187); + nit_exit(1); + } + fra.me.REG[0] = ATTR_opts___OptionArray____values(fra.me.REG[0]); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void opts___OptionArray___init(val_t p0, val_t p1, val_t p2, int* init_table){ + int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_OptionArray].i; + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + val_t REGB0; + val_t tmp; + if (init_table[itpos8]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 177; + fra.me.meth = LOCATE_opts___OptionArray___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] = p1; + fra.me.REG[2] = p2; + REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_Array, ID_Array)) /*cast Array[String]*/; + /* ./../lib/opts.nit:177 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Cast failed"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 177); + nit_exit(1); + } + fra.me.REG[3] = NEW_Array_array___Array___init(); + /* ./../lib/opts.nit:179 */ + ATTR_opts___OptionArray____values(fra.me.REG[0]) = fra.me.REG[3]; + REGB0 = TAG_Bool(ATTR_opts___OptionArray____values(fra.me.REG[0])!=NIT_NULL); + /* ./../lib/opts.nit:180 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_values"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 180); + nit_exit(1); + } + fra.me.REG[3] = ATTR_opts___OptionArray____values(fra.me.REG[0]); + CALL_opts___OptionParameter___init_opt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3], fra.me.REG[2], init_table); + stack_frame_head = fra.me.prev; + init_table[itpos8] = 1; + return; +} +val_t opts___OptionContext___options(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_opts; + fra.me.line = 192; + fra.me.meth = LOCATE_opts___OptionContext___options; + 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_opts___OptionContext____options(fra.me.REG[0])!=NIT_NULL); + /* ./../lib/opts.nit:192 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_options"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 192); + nit_exit(1); + } + fra.me.REG[0] = ATTR_opts___OptionContext____options(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +val_t opts___OptionContext___rest(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_opts; + fra.me.line = 193; + fra.me.meth = LOCATE_opts___OptionContext___rest; + 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_opts___OptionContext____rest(fra.me.REG[0])!=NIT_NULL); + /* ./../lib/opts.nit:193 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_rest"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 193); + nit_exit(1); + } + fra.me.REG[0] = ATTR_opts___OptionContext____rest(fra.me.REG[0]); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +void opts___OptionContext___usage(val_t p0){ + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t REGB3; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 197; + fra.me.meth = LOCATE_opts___OptionContext___usage; + 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; + REGB0 = TAG_Int(1); + REGB1 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[0])!=NIT_NULL); + /* ./../lib/opts.nit:200 */ + if (UNTAG_Bool(REGB1)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_options"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 200); + nit_exit(1); + } + fra.me.REG[1] = ATTR_opts___OptionContext____options(fra.me.REG[0]); + fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]); + while(1) { + REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]); + if (UNTAG_Bool(REGB1)) { + fra.me.REG[2] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]); + REGB1 = TAG_Int(3); + fra.me.REG[2] = CALL_opts___Option___names(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[2] = CALL_abstract_collection___Collection___iterator(fra.me.REG[2])(fra.me.REG[2]); + /* ./../lib/opts.nit:202 */ + while(1) { + REGB2 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[2])(fra.me.REG[2]); + if (UNTAG_Bool(REGB2)) { + fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[2])(fra.me.REG[2]); + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); + /* ./../lib/standard//collection//array.nit:23 */ + if (UNTAG_Bool(REGB2)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_length"); + fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23); + nit_exit(1); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]); + REGB3 = TAG_Int(2); + REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3)); + REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3)); + REGB1 = REGB3; + /* ./../lib/opts.nit:203 */ + } else { + /* ./../lib/opts.nit:202 */ + goto label1; + } + CALL_abstract_collection___Iterator___next(fra.me.REG[2])(fra.me.REG[2]); + } + label1: while(0); + REGB3 = TAG_Bool(UNTAG_Int(REGB0)vft[INIT_TABLE_POS_OptionContext].i]) return; - variable0 = NEW_array___Array___init(); /*new Array[Option]*/ - ATTR_opts___OptionContext____options( self) /*OptionContext::_options*/ = variable0; - variable0 = NEW_hash___HashMap___init(); /*new HashMap[String, Option]*/ - ATTR_opts___OptionContext____optmap( self) /*OptionContext::_optmap*/ = variable0; - variable0 = NEW_array___Array___init(); /*new Array[String]*/ - ATTR_opts___OptionContext____rest( self) /*OptionContext::_rest*/ = variable0; - init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_OptionContext].i] = 1; - tracehead = trace.prev; +void opts___OptionContext___init(val_t p0, int* init_table){ + int itpos9 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_OptionContext].i; + struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; + val_t tmp; + if (init_table[itpos9]) return; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 252; + fra.me.meth = LOCATE_opts___OptionContext___init; + fra.me.has_broke = 0; + fra.me.REG_size = 2; + fra.me.REG[0] = NIT_NULL; + fra.me.REG[1] = NIT_NULL; + fra.me.REG[0] = p0; + fra.me.REG[1] = NEW_Array_array___Array___init(); + /* ./../lib/opts.nit:254 */ + ATTR_opts___OptionContext____options(fra.me.REG[0]) = fra.me.REG[1]; + fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init(); + /* ./../lib/opts.nit:255 */ + ATTR_opts___OptionContext____optmap(fra.me.REG[0]) = fra.me.REG[1]; + fra.me.REG[1] = NEW_Array_array___Array___init(); + /* ./../lib/opts.nit:256 */ + ATTR_opts___OptionContext____rest(fra.me.REG[0]) = fra.me.REG[1]; + stack_frame_head = fra.me.prev; + init_table[itpos9] = 1; return; } -void opts___OptionContext___build(val_t self) { - struct trace_t trace = {NULL, "opts::OptionContext::build (bin/../lib/opts.nit:251,2--255:18)"}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - val_t variable4; - trace.prev = tracehead; tracehead = &trace; - variable0 = ATTR_opts___OptionContext____options( self) /*OptionContext::_options*/; - variable0 = ((array___AbstractArray___iterator_t)CALL(variable0,COLOR_abstract_collection___Collection___iterator))(variable0) /*Array::iterator*/; - while (true) { /*for*/ - variable1 = ((array___ArrayIterator___is_ok_t)CALL(variable0,COLOR_abstract_collection___Iterator___is_ok))(variable0) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable1)) break; /*for*/ - variable1 = ((array___ArrayIterator___item_t)CALL(variable0,COLOR_abstract_collection___Iterator___item))(variable0) /*ArrayIterator::item*/; - variable2 = ((opts___Option___names_t)CALL( variable1 /*o*/,COLOR_opts___Option___names))( variable1 /*o*/) /*Option::names*/; - variable2 = ((array___AbstractArray___iterator_t)CALL(variable2,COLOR_abstract_collection___Collection___iterator))(variable2) /*Array::iterator*/; - while (true) { /*for*/ - variable3 = ((array___ArrayIterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*ArrayIterator::is_ok*/; - if (!UNTAG_Bool(variable3)) break; /*for*/ - variable3 = ((array___ArrayIterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*ArrayIterator::item*/; - variable4 = ATTR_opts___OptionContext____optmap( self) /*OptionContext::_optmap*/; - ((abstract_collection___Map_____braeq_t)CALL(variable4,COLOR_abstract_collection___Map_____braeq))(variable4, variable3 /*n*/, variable1 /*o*/) /*Map::[]=*/; - continue_34: while(0); - ((array___ArrayIterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*ArrayIterator::next*/; +void opts___OptionContext___build(val_t p0){ + struct {struct stack_frame_t me; val_t MORE_REG[5];} fra; + val_t REGB0; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 259; + fra.me.meth = LOCATE_opts___OptionContext___build; + fra.me.has_broke = 0; + fra.me.REG_size = 6; + 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; + REGB0 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[0])!=NIT_NULL); + /* ./../lib/opts.nit:261 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_options"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 261); + nit_exit(1); + } + fra.me.REG[1] = ATTR_opts___OptionContext____options(fra.me.REG[0]); + fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]); + 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_opts___Option___names(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]); + /* ./../lib/opts.nit:262 */ + 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(ATTR_opts___OptionContext____optmap(fra.me.REG[0])!=NIT_NULL); + /* ./../lib/opts.nit:263 */ + if (UNTAG_Bool(REGB0)) { + } else { + fprintf(stderr, "Uninitialized attribute %s", "_optmap"); + fprintf(stderr, " (%s:%d)\n", LOCATE_opts, 263); + nit_exit(1); + } + fra.me.REG[5] = ATTR_opts___OptionContext____optmap(fra.me.REG[0]); + CALL_abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[2]); + } else { + /* ./../lib/opts.nit:262 */ + goto label1; + } + CALL_abstract_collection___Iterator___next(fra.me.REG[3])(fra.me.REG[3]); + } + label1: while(0); + } else { + /* ./../lib/opts.nit:261 */ + goto label2; } - break_34: while(0); - continue_33: while(0); - ((array___ArrayIterator___next_t)CALL(variable0,COLOR_abstract_collection___Iterator___next))(variable0) /*ArrayIterator::next*/; + CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]); } - break_33: while(0); - tracehead = trace.prev; + label2: while(0); + stack_frame_head = fra.me.prev; return; }