X-Git-Url: http://nitlanguage.org diff --git a/c_src/opts._sep.c b/c_src/opts._sep.c index 8d093dd..8c21842 100644 --- a/c_src/opts._sep.c +++ b/c_src/opts._sep.c @@ -1,699 +1,1781 @@ /* 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; +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; + /* ./../lib/opts.nit:16 */ + REGB0 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_names", LOCATE_opts, 16); + } + 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; + /* ./../lib/opts.nit:22 */ + REGB0 = TAG_Bool(ATTR_opts___Option____helptext(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_helptext", LOCATE_opts, 22); + } + 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___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; + /* ./../lib/opts.nit:25 */ + REGB0 = TAG_Bool(ATTR_opts___Option____mandatory(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_mandatory", LOCATE_opts, 25); + } + 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___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; +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___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; +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; + /* ./../lib/opts.nit:32 */ + 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*/; + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_opts, 32); + } + 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; + /* ./../lib/opts.nit:34 */ + fra.me.REG[0] = ATTR_opts___Option____default_value(fra.me.REG[0]); + 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; } -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; +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; + /* ./../lib/opts.nit:40 */ + REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + 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)) { + /* ./../lib/opts.nit:41 */ + fra.me.REG[4] = NEW_Array_array___Array___init(); + ATTR_opts___Option____names(fra.me.REG[0]) = fra.me.REG[4]; + } else { + /* ./../lib/opts.nit:43 */ + REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); + if (UNTAG_Bool(REGB0)) { + nit_abort("Reciever is null", NULL, LOCATE_opts, 43); + } + 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]; + /* ./../lib/opts.nit:46 */ + REGB0 = TAG_Bool(false); + 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 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 = 51; + fra.me.meth = LOCATE_opts___Option___add_aliases; + 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:51 */ + REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_Array, ID_Array)) /*cast Array[String]*/; + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_opts, 51); + } + /* ./../lib/opts.nit:52 */ + REGB0 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_names", LOCATE_opts, 52); + } + fra.me.REG[0] = ATTR_opts___Option____names(fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add_all(fra.me.REG[0])(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; +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; + /* ./../lib/opts.nit:55 */ + REGB0 = TAG_Int(2); + fra.me.REG[0] = CALL_opts___Option___pretty(fra.me.REG[0])(fra.me.REG[0], REGB0); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +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] = fra.me.REG[1]; + fra.me.REG[1] = NEW_Buffer_string___Buffer___from(fra.me.REG[1]); + /* ./../lib/opts.nit:61 */ + REGB1 = TAG_Bool(ATTR_opts___Option____names(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_names", LOCATE_opts, 61); + } + 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] = fra.me.REG[3]; + 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; + fra.me.REG[3] = fra.me.REG[3]; + CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]); + /* ./../lib/standard//kernel.nit:217 */ + REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1)); + /* ./../lib/opts.nit:64 */ + REGB0 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:214 */ + 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] = fra.me.REG[3]; + 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]); + } + /* ./../lib/opts.nit:65 */ + fra.me.REG[0] = CALL_opts___Option___helptext(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]); + /* ./../lib/opts.nit:67 */ + fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]); + 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; + /* ./../lib/opts.nit:72 */ + fra.me.REG[0] = CALL_opts___Option___default_value(fra.me.REG[0])(fra.me.REG[0]); + /* ./../lib/opts.nit:73 */ + 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); + REGB0 = REGB1; + } else { + REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], 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); + 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; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(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; + fra.me.REG[0] = fra.me.REG[0]; + CALL_abstract_collection___SimpleCollection___add(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]); + goto label3; + } + /* ./../lib/opts.nit:74 */ + 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[0] = fra.me.REG[0]; + 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 = 77; + fra.me.meth = LOCATE_opts___Option___read_param; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + /* ./../lib/opts.nit:77 */ + nit_abort("Deferred method called", NULL, LOCATE_opts, 77); + stack_frame_head = fra.me.prev; 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 pvft[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 = 83; + 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:83 */ + 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___Option___to_s(val_t self) { - struct trace_t trace = {NULL, "opts::Option::to_s (bin/../lib/opts.nit:53,2--54:35)"}; - val_t variable0; - trace.prev = tracehead; tracehead = &trace; - variable0 = ((opts___Option___pretty_t)CALL( self,COLOR_opts___Option___pretty))( self, TAG_Int(2)) /*Option::pretty*/; - goto return_label2; - return_label2: while(false); - tracehead = trace.prev; - return variable0; -} -val_t opts___Option___pretty(val_t self, val_t param0) { - struct trace_t trace = {NULL, "opts::Option::pretty (bin/../lib/opts.nit:56,2--66:13)"}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - trace.prev = tracehead; tracehead = &trace; - variable0 = param0; - variable2 = NEW_string___String___with_native(BOX_NativeString(" "), TAG_Int(2)); /*new String*/ - variable1 = variable2; - variable2 = ATTR_opts___Option____names( self) /*Option::_names*/; - variable3 = NEW_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/ - variable2 = ((string___Collection___join_t)CALL(variable2,COLOR_string___Collection___join))(variable2, variable3) /*Array::join*/; - ((string___String___append_t)CALL( variable1 /*text*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*text*/, variable2) /*String::append*/; - variable2 = NEW_string___String___with_native(BOX_NativeString(" "), TAG_Int(2)); /*new String*/ - ((string___String___append_t)CALL( variable1 /*text*/,COLOR_abstract_collection___IndexedCollection___append))( variable1 /*text*/, variable2) /*String::append*/; - variable3 = ((array___AbstractArray___length_t)CALL( variable1 /*text*/,COLOR_abstract_collection___Collection___length))( variable1 /*text*/) /*String::length*/; - variable3 = TAG_Int(UNTAG_Int( variable0 /*off*/)-UNTAG_Int(variable3)); - variable2 = variable3; - variable3 = TAG_Bool(UNTAG_Int( variable2 /*rest*/)>UNTAG_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"); - nit_exit(1); - tracehead = trace.prev; +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 = 85; + 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; + /* ./../lib/opts.nit:85 */ + fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +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 = 87; + 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; + /* ./../lib/opts.nit:87 */ + fra.me.REG[0] = CALL_opts___Option___helptext(fra.me.REG[0])(fra.me.REG[0]); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[0]; +} +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 = 94; + 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; + /* ./../lib/opts.nit:94 */ + REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_Array, ID_Array)) /*cast Array[String]*/; + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_opts, 94); + } + 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; } -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; +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 = 96; + 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; + /* ./../lib/opts.nit:96 */ + REGB0 = TAG_Bool(true); + CALL_opts___Option___value__eq(fra.me.REG[0])(fra.me.REG[0], REGB0); + stack_frame_head = fra.me.prev; 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___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 = 103; + 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; + /* ./../lib/opts.nit:103 */ + REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_Array, ID_Array)) /*cast Array[String]*/; + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_opts, 103); + } + 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___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___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 = 105; + 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; + /* ./../lib/opts.nit:105 */ + fra.me.REG[1] = CALL_opts___Option___value(fra.me.REG[0])(fra.me.REG[0]); + REGB0 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB0 = TAG_Int(UNTAG_Int(fra.me.REG[1])+UNTAG_Int(REGB0)); + /* ./../lib/opts.nit:105 */ + CALL_opts___Option___value__eq(fra.me.REG[0])(fra.me.REG[0], REGB0); + stack_frame_head = fra.me.prev; 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; +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 = 111; + fra.me.meth = LOCATE_opts___OptionParameter___convert; + fra.me.has_broke = 0; + fra.me.REG_size = 0; + /* ./../lib/opts.nit:111 */ + nit_abort("Deferred method called", NULL, LOCATE_opts, 111); + stack_frame_head = fra.me.prev; return NIT_NULL; } -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___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 = 113; + 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; + /* ./../lib/opts.nit:115 */ + REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]); + if (UNTAG_Bool(REGB0)) { + /* ./../lib/opts.nit:116 */ + 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]); + CALL_opts___Option___value__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); + /* ./../lib/opts.nit:117 */ + CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]); + } + stack_frame_head = fra.me.prev; 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___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 = 123; + 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:123 */ + 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; } -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; +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 = 130; + 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; + /* ./../lib/opts.nit:130 */ + REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_Array, ID_Array)) /*cast Array[String]*/; + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_opts, 130); + } + 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___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 = 132; + 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:132 */ + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[1]; +} +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 = 140; + 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; + /* ./../lib/opts.nit:140 */ + REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[3], COLOR_Array, ID_Array)) /*cast Array[String]*/; + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_opts, 140); + } + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]); + /* ./../lib/opts.nit:142 */ + REGB2 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:214 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2)); + /* ./../lib/opts.nit:142 */ + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Assert failed", NULL, LOCATE_opts, 142); + } + /* ./../lib/opts.nit:143 */ + fra.me.REG[4] = CALL_array___Collection___to_a(fra.me.REG[1])(fra.me.REG[1]); + ATTR_opts___OptionEnum____values(fra.me.REG[0]) = fra.me.REG[4]; + /* ./../lib/opts.nit:144 */ + REGB2 = TAG_Int(5); + fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB2); + 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; + fra.me.REG[5] = fra.me.REG[5]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(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; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(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] = fra.me.REG[2]; + fra.me.REG[2] = CALL_string___Collection___join(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(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; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(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___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*/)=UNTAG_Int(REGB1)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label1; + label1: while(0); + /* ./../lib/opts.nit:153 */ + goto label2; + label2: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[1]; +} +val_t opts___OptionEnum___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 REGB2; + val_t tmp; + static val_t once_value_1; /* Once value */ + static val_t once_value_3; /* Once value */ + static val_t once_value_5; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 155; + fra.me.meth = LOCATE_opts___OptionEnum___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; + /* ./../lib/opts.nit:157 */ + 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); + 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 { + /* ./../lib/standard//kernel.nit:207 */ + REGB1 = TAG_Bool((fra.me.REG[1])==(NIT_NULL)); + /* ./../lib/opts.nit:157 */ + REGB0 = REGB1; + } + } + REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); + if (UNTAG_Bool(REGB0)) { + /* ./../lib/opts.nit:158 */ + REGB0 = TAG_Int(3); + fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0); + 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; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); + REGB0 = TAG_Bool(ATTR_opts___OptionEnum____values(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_values", LOCATE_opts, 158); } - variable6 = variable7; - if (!UNTAG_Bool(variable6)) { fprintf(stderr, "Assert 'index' failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);} - variable6 = variable3; - variable6 = ATTR_array___Array____items(variable6) /*Array::_items*/; - variable6 = UNBOX_NativeArray(variable6)[UNTAG_Int( variable5 /*index*/)]; - goto return_label17; - return_label17: while(false); - variable3 = variable6; - variable4 = variable3; - ((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_label16; - } else { /*if*/ - variable0 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/ - goto return_label16; - } - return_label16: while(false); - tracehead = trace.prev; - return variable0; -} -void opts___OptionInt___init(val_t self, val_t param0, val_t param1, val_t param2, int* init_table) { - struct trace_t trace = {NULL, "opts::OptionInt::init (bin/../lib/opts.nit:159,2--84)"}; - val_t variable0; - val_t variable1; - val_t variable2; - trace.prev = tracehead; tracehead = &trace; - variable0 = param0; - variable1 = param1; - /* check if pvft[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____values(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 { + nit_abort("Cast failed", NULL, LOCATE_opts, 158); + } + /* ./../lib/standard//collection//array.nit:243 */ + REGB0 = fra.me.REG[0]; + /* ./../lib/standard//collection//array.nit:245 */ + REGB1 = TAG_Int(0); + /* ./../lib/standard//kernel.nit:213 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1)); + /* ./../lib/standard//collection//array.nit:245 */ + if (UNTAG_Bool(REGB1)) { + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; + /* ./../lib/standard//collection//array.nit:246 */ + goto label2; + label2: while(0); + /* ./../lib/opts.nit:158 */ + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(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; + fra.me.REG[2] = fra.me.REG[2]; + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(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:160 */ + 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[2] = fra.me.REG[2]; + fra.me.REG[1] = fra.me.REG[2]; + goto label4; + } + label4: while(0); + stack_frame_head = fra.me.prev; + return fra.me.REG[1]; +} +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 = 169; + 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; + /* ./../lib/opts.nit:169 */ + REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_Array, ID_Array)) /*cast Array[String]*/; + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_opts, 169); + } + 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___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 = 171; + 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; + /* ./../lib/opts.nit:171 */ + REGB0 = CALL_string___AbstractString___to_i(fra.me.REG[1])(fra.me.REG[1]); + goto label1; + label1: while(0); + stack_frame_head = fra.me.prev; + return REGB0; +} +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 = 178; + 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; + /* ./../lib/opts.nit:178 */ + REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_Array, ID_Array)) /*cast Array[String]*/; + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_opts, 178); + } + /* ./../lib/opts.nit:180 */ + fra.me.REG[3] = NEW_Array_array___Array___init(); + ATTR_opts___OptionArray____values(fra.me.REG[0]) = fra.me.REG[3]; + /* ./../lib/opts.nit:181 */ + REGB0 = TAG_Bool(ATTR_opts___OptionArray____values(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_values", LOCATE_opts, 181); + } + 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___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 = 185; + 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; + /* ./../lib/opts.nit:187 */ + REGB0 = TAG_Bool(ATTR_opts___OptionArray____values(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_values", LOCATE_opts, 187); + } + fra.me.REG[2] = ATTR_opts___OptionArray____values(fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); + /* ./../lib/opts.nit:188 */ + REGB0 = TAG_Bool(ATTR_opts___OptionArray____values(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_values", LOCATE_opts, 188); + } + 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]; +} +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 = 193; + 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; + /* ./../lib/opts.nit:193 */ + REGB0 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_options", LOCATE_opts, 193); + } + 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 = 194; + 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; + /* ./../lib/opts.nit:194 */ + REGB0 = TAG_Bool(ATTR_opts___OptionContext____rest(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_rest", LOCATE_opts, 194); + } + 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[5];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t REGB3; + val_t REGB4; + val_t REGB5; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 198; + fra.me.meth = LOCATE_opts___OptionContext___usage; + 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; + /* ./../lib/opts.nit:200 */ + REGB0 = TAG_Int(1); + /* ./../lib/opts.nit:201 */ + REGB1 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_options", LOCATE_opts, 201); + } + fra.me.REG[1] = ATTR_opts___OptionContext____options(fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:234 */ + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:235 */ + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[1]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/opts.nit:202 */ + REGB2 = TAG_Int(3); + /* ./../lib/opts.nit:203 */ + fra.me.REG[3] = CALL_opts___Option___names(fra.me.REG[3])(fra.me.REG[3]); + /* ./../lib/standard//collection//array.nit:234 */ + REGB3 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:235 */ + REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); + if (UNTAG_Bool(REGB4)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235); + } + REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[3]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); + if (UNTAG_Bool(REGB4)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]); + /* ./../lib/standard//kernel.nit:212 */ + REGB4 = TAG_Bool(UNTAG_Int(REGB3)val[UNTAG_Int(REGB3)]; + /* ./../lib/standard//collection//array.nit:23 */ + REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL); + if (UNTAG_Bool(REGB4)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]); + /* ./../lib/opts.nit:204 */ + REGB5 = TAG_Int(2); + /* ./../lib/standard//kernel.nit:215 */ + REGB5 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB5)); + REGB5 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5)); + /* ./../lib/opts.nit:204 */ + REGB2 = REGB5; + /* ./../lib/standard//collection//array.nit:239 */ + REGB5 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB3 = REGB5; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label1; + } + } + label1: while(0); + /* ./../lib/standard//kernel.nit:212 */ + REGB3 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB1)]; + /* ./../lib/opts.nit:210 */ + fra.me.REG[4] = CALL_opts___Option___pretty(fra.me.REG[4])(fra.me.REG[4], REGB0); + CALL_file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]); + /* ./../lib/standard//collection//array.nit:239 */ + REGB2 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB1 = REGB2; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label3; } - continue_23: while(0); - ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/; - } - break_23: while(0); - 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 = ((opts___Option___pretty_t)CALL( variable2 /*i*/,COLOR_opts___Option___pretty))( variable2 /*i*/, variable0 /*lmax*/) /*Option::pretty*/; - ((file___Object___print_t)CALL( self,COLOR_file___Object___print))( self, variable3) /*OptionContext::print*/; - continue_25: while(0); - ((array___ArrayIterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*ArrayIterator::next*/; - } - break_25: while(0); - tracehead = trace.prev; + } + label3: while(0); + stack_frame_head = fra.me.prev; return; } -void opts___OptionContext___parse(val_t self, val_t param0) { - struct trace_t trace = {NULL, "opts::OptionContext::parse (bin/../lib/opts.nit:204,2--208:17)"}; - val_t variable0; - val_t variable1; - val_t variable2; - trace.prev = tracehead; tracehead = &trace; - variable0 = param0; - variable2 = ((abstract_collection___Collection___iterator_t)CALL( variable0 /*argv*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*argv*/) /*Collection::iterator*/; - variable1 = variable2; - ((opts___OptionContext___parse_intern_t)CALL( self,COLOR_opts___OptionContext___parse_intern))( self, variable1 /*it*/) /*OptionContext::parse_intern*/; - tracehead = trace.prev; +void opts___OptionContext___parse(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 = 214; + fra.me.meth = LOCATE_opts___OptionContext___parse; + 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:217 */ + fra.me.REG[1] = CALL_abstract_collection___Collection___iterator(fra.me.REG[1])(fra.me.REG[1]); + /* ./../lib/opts.nit:218 */ + CALL_opts___OptionContext___parse_intern(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); + stack_frame_head = fra.me.prev; return; } -void opts___OptionContext___parse_intern(val_t self, val_t param0) { - struct trace_t trace = {NULL, "opts::OptionContext::parse_intern (bin/../lib/opts.nit:211,2--230:12)"}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - val_t variable4; - val_t variable5; - trace.prev = tracehead; tracehead = &trace; - variable0 = param0; - variable1 = TAG_Bool(true); - ((opts___OptionContext___build_t)CALL( self,COLOR_opts___OptionContext___build))( self) /*OptionContext::build*/; - variable3 = ATTR_opts___OptionContext____rest( self) /*OptionContext::_rest*/; - variable2 = variable3; - while (true) { /*while*/ - variable3 = variable1 /*parseargs*/; - if (UNTAG_Bool(variable3)) { /* and */ - variable3 = ((abstract_collection___Iterator___is_ok_t)CALL( variable0 /*it*/,COLOR_abstract_collection___Iterator___is_ok))( variable0 /*it*/) /*Iterator::is_ok*/; +void opts___OptionContext___parse_intern(val_t p0, val_t p1){ + struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t tmp; + static val_t once_value_1; /* Once value */ + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 221; + fra.me.meth = LOCATE_opts___OptionContext___parse_intern; + 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; + /* ./../lib/opts.nit:223 */ + REGB0 = TAG_Bool(true); + /* ./../lib/opts.nit:224 */ + CALL_opts___OptionContext___build(fra.me.REG[0])(fra.me.REG[0]); + /* ./../lib/opts.nit:225 */ + REGB1 = TAG_Bool(ATTR_opts___OptionContext____rest(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_rest", LOCATE_opts, 225); + } + fra.me.REG[2] = ATTR_opts___OptionContext____rest(fra.me.REG[0]); + /* ./../lib/opts.nit:227 */ + while(1) { + if (UNTAG_Bool(REGB0)) { + REGB1 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[1])(fra.me.REG[1]); + } else { + REGB2 = TAG_Bool(false); + REGB1 = REGB2; } - if (!UNTAG_Bool(variable3)) break; /* while*/ - variable4 = ((abstract_collection___Iterator___item_t)CALL( variable0 /*it*/,COLOR_abstract_collection___Iterator___item))( variable0 /*it*/) /*Iterator::item*/; - variable3 = variable4; - variable4 = NEW_string___String___with_native(BOX_NativeString("--"), TAG_Int(2)); /*new String*/ - variable4 = TAG_Bool(( variable3 /*str*/ == variable4) || (( variable3 /*str*/ != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL( variable3 /*str*/,COLOR_kernel___Object_____eqeq))( variable3 /*str*/, variable4) /*String::==*/))); - if (UNTAG_Bool(variable4)) { /*if*/ - ((abstract_collection___Iterator___next_t)CALL( variable0 /*it*/,COLOR_abstract_collection___Iterator___next))( variable0 /*it*/) /*Iterator::next*/; - variable4 = ((array___Iterator___to_a_t)CALL( variable0 /*it*/,COLOR_array___Iterator___to_a))( variable0 /*it*/) /*Iterator::to_a*/; - ((abstract_collection___SimpleCollection___add_all_t)CALL( variable2 /*rest*/,COLOR_abstract_collection___SimpleCollection___add_all))( variable2 /*rest*/, variable4) /*Array::add_all*/; - variable1 = TAG_Bool(false) /*parseargs=*/; - } else { /*if*/ - variable4 = ATTR_opts___OptionContext____optmap( self) /*OptionContext::_optmap*/; - variable4 = ((abstract_collection___Map___has_key_t)CALL(variable4,COLOR_abstract_collection___Map___has_key))(variable4, variable3 /*str*/) /*Map::has_key*/; - if (UNTAG_Bool(variable4)) { /*if*/ - variable5 = ATTR_opts___OptionContext____optmap( self) /*OptionContext::_optmap*/; - variable5 = ((abstract_collection___Map_____bra_t)CALL(variable5,COLOR_abstract_collection___Map_____bra))(variable5, variable3 /*str*/) /*Map::[]*/; - variable4 = variable5; - ((abstract_collection___Iterator___next_t)CALL( variable0 /*it*/,COLOR_abstract_collection___Iterator___next))( variable0 /*it*/) /*Iterator::next*/; - ((opts___Option___read_param_t)CALL( variable4 /*opt*/,COLOR_opts___Option___read_param))( variable4 /*opt*/, variable0 /*it*/) /*Option::read_param*/; - } else { /*if*/ - variable4 = ((abstract_collection___Iterator___item_t)CALL( variable0 /*it*/,COLOR_abstract_collection___Iterator___item))( variable0 /*it*/) /*Iterator::item*/; - ((array___AbstractArray___add_t)CALL( variable2 /*rest*/,COLOR_abstract_collection___SimpleCollection___add))( variable2 /*rest*/, variable4) /*Array::add*/; - ((abstract_collection___Iterator___next_t)CALL( variable0 /*it*/,COLOR_abstract_collection___Iterator___next))( variable0 /*it*/) /*Iterator::next*/; + if (UNTAG_Bool(REGB1)) { + /* ./../lib/opts.nit:228 */ + fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]); + /* ./../lib/opts.nit:229 */ + if (!once_value_1) { + fra.me.REG[4] = BOX_NativeString("--"); + REGB1 = TAG_Int(2); + fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1); + once_value_1 = fra.me.REG[4]; + register_static_object(&once_value_1); + } else fra.me.REG[4] = once_value_1; + 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_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); + REGB1 = REGB2; } + if (UNTAG_Bool(REGB1)) { + /* ./../lib/opts.nit:230 */ + CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]); + /* ./../lib/opts.nit:231 */ + fra.me.REG[4] = CALL_array___Iterator___to_a(fra.me.REG[1])(fra.me.REG[1]); + CALL_abstract_collection___SimpleCollection___add_all(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]); + /* ./../lib/opts.nit:232 */ + REGB1 = TAG_Bool(false); + REGB0 = REGB1; + } else { + /* ./../lib/opts.nit:234 */ + REGB1 = TAG_Bool(ATTR_opts___OptionContext____optmap(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_optmap", LOCATE_opts, 234); + } + fra.me.REG[4] = ATTR_opts___OptionContext____optmap(fra.me.REG[0]); + REGB1 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); + if (UNTAG_Bool(REGB1)) { + /* ./../lib/opts.nit:235 */ + REGB1 = TAG_Bool(ATTR_opts___OptionContext____optmap(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_optmap", LOCATE_opts, 235); + } + fra.me.REG[4] = ATTR_opts___OptionContext____optmap(fra.me.REG[0]); + fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); + /* ./../lib/opts.nit:236 */ + CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]); + /* ./../lib/opts.nit:237 */ + CALL_opts___Option___read_param(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); + } else { + /* ./../lib/opts.nit:239 */ + fra.me.REG[3] = CALL_abstract_collection___Iterator___item(fra.me.REG[1])(fra.me.REG[1]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); + /* ./../lib/opts.nit:240 */ + CALL_abstract_collection___Iterator___next(fra.me.REG[1])(fra.me.REG[1]); + } + } + } else { + /* ./../lib/opts.nit:227 */ + goto label2; } - continue_28: while(0); } - break_28: while(0); - tracehead = trace.prev; + label2: while(0); + stack_frame_head = fra.me.prev; return; } -void opts___OptionContext___add_option(val_t self, val_t param0) { - struct trace_t trace = {NULL, "opts::OptionContext::add_option (bin/../lib/opts.nit:236,2--240:19)"}; - val_t variable0; - val_t variable1; - val_t variable2; - val_t variable3; - trace.prev = tracehead; tracehead = &trace; - /* check if pval[UNTAG_Int(REGB0)]; + /* ./../lib/opts.nit:249 */ + REGB1 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_options", LOCATE_opts, 249); + } + fra.me.REG[4] = ATTR_opts___OptionContext____options(fra.me.REG[0]); + CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); + /* ./../lib/standard//collection//array.nit:239 */ + REGB1 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB0 = REGB1; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label1; + } + } + label1: while(0); + stack_frame_head = fra.me.prev; return; } -void opts___OptionContext___init(val_t self, int* init_table) { - struct trace_t trace = {NULL, "opts::OptionContext::init (bin/../lib/opts.nit:244,2--248:26)"}; - val_t variable0; - trace.prev = tracehead; tracehead = &trace; - if (init_table[VAL2OBJ( self)->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 = 253; + 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; + /* ./../lib/opts.nit:255 */ + fra.me.REG[1] = NEW_Array_array___Array___init(); + ATTR_opts___OptionContext____options(fra.me.REG[0]) = fra.me.REG[1]; + /* ./../lib/opts.nit:256 */ + fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init(); + ATTR_opts___OptionContext____optmap(fra.me.REG[0]) = fra.me.REG[1]; + /* ./../lib/opts.nit:257 */ + fra.me.REG[1] = NEW_Array_array___Array___init(); + 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[7];} fra; + val_t REGB0; + val_t REGB1; + val_t REGB2; + val_t tmp; + fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; + fra.me.file = LOCATE_opts; + fra.me.line = 260; + fra.me.meth = LOCATE_opts___OptionContext___build; + fra.me.has_broke = 0; + fra.me.REG_size = 8; + 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[0] = p0; + /* ./../lib/opts.nit:262 */ + REGB0 = TAG_Bool(ATTR_opts___OptionContext____options(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB0)) { + } else { + nit_abort("Uninitialized attribute %s", "_options", LOCATE_opts, 262); + } + fra.me.REG[1] = ATTR_opts___OptionContext____options(fra.me.REG[0]); + /* ./../lib/standard//collection//array.nit:234 */ + REGB0 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:235 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[1]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL); + if (UNTAG_Bool(REGB1)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]); + /* ./../lib/standard//kernel.nit:212 */ + REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; + /* ./../lib/opts.nit:263 */ + fra.me.REG[4] = CALL_opts___Option___names(fra.me.REG[3])(fra.me.REG[3]); + /* ./../lib/standard//collection//array.nit:234 */ + REGB1 = TAG_Int(0); + /* ./../lib/standard//collection//array.nit:235 */ + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]); + /* ./../lib/standard//collection//array.nit:236 */ + fra.me.REG[5] = ATTR_array___Array____items(fra.me.REG[4]); + /* ./../lib/standard//collection//array.nit:237 */ + while(1) { + /* ./../lib/standard//collection//array.nit:23 */ + REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23); + } + REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[4]); + /* ./../lib/standard//kernel.nit:212 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB1)val[UNTAG_Int(REGB1)]; + /* ./../lib/opts.nit:264 */ + REGB2 = TAG_Bool(ATTR_opts___OptionContext____optmap(fra.me.REG[0])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_optmap", LOCATE_opts, 264); + } + fra.me.REG[7] = ATTR_opts___OptionContext____optmap(fra.me.REG[0]); + CALL_abstract_collection___Map_____braeq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6], fra.me.REG[3]); + /* ./../lib/standard//collection//array.nit:239 */ + REGB2 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB1 = REGB2; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label1; + } + } + label1: while(0); + /* ./../lib/standard//collection//array.nit:239 */ + REGB1 = TAG_Int(1); + /* ./../lib/standard//kernel.nit:215 */ + REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); + /* ./../lib/standard//collection//array.nit:239 */ + REGB0 = REGB1; + } else { + /* ./../lib/standard//collection//array.nit:237 */ + goto label2; } - break_34: while(0); - continue_33: while(0); - ((array___ArrayIterator___next_t)CALL(variable0,COLOR_abstract_collection___Iterator___next))(variable0) /*ArrayIterator::next*/; } - break_33: while(0); - tracehead = trace.prev; + label2: while(0); + stack_frame_head = fra.me.prev; return; }