+val* var1 /* : OptionCount */;
+var1 = self->attrs[COLOR_toolcontext__ToolContext___opt_verbose].val; /* _opt_verbose on <self:ToolContext> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_verbose");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 258);
+show_backtrace(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method toolcontext#ToolContext#opt_verbose for (self: Object): OptionCount */
+val* VIRTUAL_toolcontext__ToolContext__opt_verbose(val* self) {
+val* var /* : OptionCount */;
+val* var1 /* : OptionCount */;
+val* var3 /* : OptionCount */;
+{ /* Inline toolcontext#ToolContext#opt_verbose (self) on <self:Object(ToolContext)> */
+var3 = self->attrs[COLOR_toolcontext__ToolContext___opt_verbose].val; /* _opt_verbose on <self:Object(ToolContext)> */
+if (unlikely(var3 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_verbose");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 258);
+show_backtrace(1);
+}
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method toolcontext#ToolContext#opt_stop_on_first_error for (self: ToolContext): OptionBool */
+val* toolcontext__ToolContext__opt_stop_on_first_error(val* self) {
+val* var /* : OptionBool */;
+val* var1 /* : OptionBool */;
+var1 = self->attrs[COLOR_toolcontext__ToolContext___opt_stop_on_first_error].val; /* _opt_stop_on_first_error on <self:ToolContext> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stop_on_first_error");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 261);
+show_backtrace(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method toolcontext#ToolContext#opt_stop_on_first_error for (self: Object): OptionBool */
+val* VIRTUAL_toolcontext__ToolContext__opt_stop_on_first_error(val* self) {
+val* var /* : OptionBool */;
+val* var1 /* : OptionBool */;
+val* var3 /* : OptionBool */;
+{ /* Inline toolcontext#ToolContext#opt_stop_on_first_error (self) on <self:Object(ToolContext)> */
+var3 = self->attrs[COLOR_toolcontext__ToolContext___opt_stop_on_first_error].val; /* _opt_stop_on_first_error on <self:Object(ToolContext)> */
+if (unlikely(var3 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stop_on_first_error");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 261);
+show_backtrace(1);
+}
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method toolcontext#ToolContext#opt_no_color for (self: ToolContext): OptionBool */
+val* toolcontext__ToolContext__opt_no_color(val* self) {
+val* var /* : OptionBool */;
+val* var1 /* : OptionBool */;
+var1 = self->attrs[COLOR_toolcontext__ToolContext___opt_no_color].val; /* _opt_no_color on <self:ToolContext> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_color");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 264);
+show_backtrace(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method toolcontext#ToolContext#opt_no_color for (self: Object): OptionBool */
+val* VIRTUAL_toolcontext__ToolContext__opt_no_color(val* self) {
+val* var /* : OptionBool */;
+val* var1 /* : OptionBool */;
+val* var3 /* : OptionBool */;
+{ /* Inline toolcontext#ToolContext#opt_no_color (self) on <self:Object(ToolContext)> */
+var3 = self->attrs[COLOR_toolcontext__ToolContext___opt_no_color].val; /* _opt_no_color on <self:Object(ToolContext)> */
+if (unlikely(var3 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_color");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 264);
+show_backtrace(1);
+}
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method toolcontext#ToolContext#opt_bash_completion for (self: ToolContext): OptionBool */
+val* toolcontext__ToolContext__opt_bash_completion(val* self) {
+val* var /* : OptionBool */;
+val* var1 /* : OptionBool */;
+var1 = self->attrs[COLOR_toolcontext__ToolContext___opt_bash_completion].val; /* _opt_bash_completion on <self:ToolContext> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_bash_completion");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 267);
+show_backtrace(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method toolcontext#ToolContext#opt_bash_completion for (self: Object): OptionBool */
+val* VIRTUAL_toolcontext__ToolContext__opt_bash_completion(val* self) {
+val* var /* : OptionBool */;
+val* var1 /* : OptionBool */;
+val* var3 /* : OptionBool */;
+{ /* Inline toolcontext#ToolContext#opt_bash_completion (self) on <self:Object(ToolContext)> */
+var3 = self->attrs[COLOR_toolcontext__ToolContext___opt_bash_completion].val; /* _opt_bash_completion on <self:Object(ToolContext)> */
+if (unlikely(var3 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_bash_completion");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 267);
+show_backtrace(1);
+}
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method toolcontext#ToolContext#opt_stub_man for (self: ToolContext): OptionBool */
+val* toolcontext__ToolContext__opt_stub_man(val* self) {
+val* var /* : OptionBool */;
+val* var1 /* : OptionBool */;
+var1 = self->attrs[COLOR_toolcontext__ToolContext___opt_stub_man].val; /* _opt_stub_man on <self:ToolContext> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stub_man");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 270);
+show_backtrace(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method toolcontext#ToolContext#opt_stub_man for (self: Object): OptionBool */
+val* VIRTUAL_toolcontext__ToolContext__opt_stub_man(val* self) {
+val* var /* : OptionBool */;
+val* var1 /* : OptionBool */;
+val* var3 /* : OptionBool */;
+{ /* Inline toolcontext#ToolContext#opt_stub_man (self) on <self:Object(ToolContext)> */
+var3 = self->attrs[COLOR_toolcontext__ToolContext___opt_stub_man].val; /* _opt_stub_man on <self:Object(ToolContext)> */
+if (unlikely(var3 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stub_man");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 270);
+show_backtrace(1);
+}
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method toolcontext#ToolContext#verbose_level for (self: ToolContext): Int */
+long toolcontext__ToolContext__verbose_level(val* self) {
+long var /* : Int */;
+long var1 /* : Int */;
+var1 = self->attrs[COLOR_toolcontext__ToolContext___verbose_level].l; /* _verbose_level on <self:ToolContext> */
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method toolcontext#ToolContext#verbose_level for (self: Object): Int */
+long VIRTUAL_toolcontext__ToolContext__verbose_level(val* self) {
+long var /* : Int */;
+long var1 /* : Int */;
+long var3 /* : Int */;
+{ /* Inline toolcontext#ToolContext#verbose_level (self) on <self:Object(ToolContext)> */
+var3 = self->attrs[COLOR_toolcontext__ToolContext___verbose_level].l; /* _verbose_level on <self:Object(ToolContext)> */
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method toolcontext#ToolContext#verbose_level= for (self: ToolContext, Int) */
+void toolcontext__ToolContext__verbose_level_61d(val* self, long p0) {
+self->attrs[COLOR_toolcontext__ToolContext___verbose_level].l = p0; /* _verbose_level on <self:ToolContext> */
+RET_LABEL:;
+}
+/* method toolcontext#ToolContext#verbose_level= for (self: Object, Int) */
+void VIRTUAL_toolcontext__ToolContext__verbose_level_61d(val* self, long p0) {
+{ /* Inline toolcontext#ToolContext#verbose_level= (self,p0) on <self:Object(ToolContext)> */
+self->attrs[COLOR_toolcontext__ToolContext___verbose_level].l = p0; /* _verbose_level on <self:Object(ToolContext)> */
+RET_LABEL1:(void)0;
+}
+RET_LABEL:;
+}
+/* method toolcontext#ToolContext#init for (self: ToolContext) */
+void toolcontext__ToolContext__init(val* self) {
+val* var /* : OptionContext */;
+val* var2 /* : OptionContext */;
+val* var3 /* : OptionCount */;
+val* var5 /* : OptionCount */;
+val* var6 /* : OptionArray */;
+val* var8 /* : OptionArray */;
+val* var9 /* : OptionBool */;
+val* var11 /* : OptionBool */;
+val* var12 /* : OptionBool */;
+val* var14 /* : OptionBool */;
+val* var15 /* : OptionBool */;
+val* var17 /* : OptionBool */;
+val* var18 /* : OptionBool */;
+val* var20 /* : OptionBool */;
+val* var21 /* : OptionString */;
+val* var23 /* : OptionString */;
+val* var24 /* : OptionBool */;
+val* var26 /* : OptionBool */;
+val* var27 /* : OptionBool */;
+val* var29 /* : OptionBool */;
+val* var30 /* : OptionBool */;
+val* var32 /* : OptionBool */;
+val* var33 /* : OptionCount */;
+val* var35 /* : OptionCount */;
+val* var36 /* : OptionBool */;
+val* var38 /* : OptionBool */;
+val* var39 /* : OptionBool */;
+val* var41 /* : OptionBool */;
+val* var42 /* : Array[Option] */;
+long var43 /* : Int */;
+val* var44 /* : NativeArray[Option] */;
+{
+{ /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
+var2 = self->attrs[COLOR_toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
+if (unlikely(var2 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231);
+show_backtrace(1);
+}
+var = var2;
+RET_LABEL1:(void)0;
+}
+}
+{
+{ /* Inline toolcontext#ToolContext#opt_warn (self) on <self:ToolContext> */
+var5 = self->attrs[COLOR_toolcontext__ToolContext___opt_warn].val; /* _opt_warn on <self:ToolContext> */
+if (unlikely(var5 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warn");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 234);
+show_backtrace(1);
+}
+var3 = var5;
+RET_LABEL4:(void)0;
+}
+}
+{
+{ /* Inline toolcontext#ToolContext#opt_warning (self) on <self:ToolContext> */
+var8 = self->attrs[COLOR_toolcontext__ToolContext___opt_warning].val; /* _opt_warning on <self:ToolContext> */
+if (unlikely(var8 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warning");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 237);
+show_backtrace(1);
+}
+var6 = var8;
+RET_LABEL7:(void)0;
+}
+}
+{
+{ /* Inline toolcontext#ToolContext#opt_quiet (self) on <self:ToolContext> */
+var11 = self->attrs[COLOR_toolcontext__ToolContext___opt_quiet].val; /* _opt_quiet on <self:ToolContext> */
+if (unlikely(var11 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_quiet");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 240);
+show_backtrace(1);
+}
+var9 = var11;
+RET_LABEL10:(void)0;
+}
+}
+{
+{ /* Inline toolcontext#ToolContext#opt_stop_on_first_error (self) on <self:ToolContext> */
+var14 = self->attrs[COLOR_toolcontext__ToolContext___opt_stop_on_first_error].val; /* _opt_stop_on_first_error on <self:ToolContext> */
+if (unlikely(var14 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stop_on_first_error");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 261);
+show_backtrace(1);
+}
+var12 = var14;
+RET_LABEL13:(void)0;
+}
+}
+{
+{ /* Inline toolcontext#ToolContext#opt_no_color (self) on <self:ToolContext> */
+var17 = self->attrs[COLOR_toolcontext__ToolContext___opt_no_color].val; /* _opt_no_color on <self:ToolContext> */
+if (unlikely(var17 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_color");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 264);
+show_backtrace(1);
+}
+var15 = var17;
+RET_LABEL16:(void)0;
+}
+}
+{
+{ /* Inline toolcontext#ToolContext#opt_log (self) on <self:ToolContext> */
+var20 = self->attrs[COLOR_toolcontext__ToolContext___opt_log].val; /* _opt_log on <self:ToolContext> */
+if (unlikely(var20 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 243);
+show_backtrace(1);
+}
+var18 = var20;
+RET_LABEL19:(void)0;
+}
+}
+{
+{ /* Inline toolcontext#ToolContext#opt_log_dir (self) on <self:ToolContext> */
+var23 = self->attrs[COLOR_toolcontext__ToolContext___opt_log_dir].val; /* _opt_log_dir on <self:ToolContext> */
+if (unlikely(var23 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log_dir");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 246);
+show_backtrace(1);
+}
+var21 = var23;
+RET_LABEL22:(void)0;
+}
+}
+{
+{ /* Inline toolcontext#ToolContext#opt_help (self) on <self:ToolContext> */
+var26 = self->attrs[COLOR_toolcontext__ToolContext___opt_help].val; /* _opt_help on <self:ToolContext> */
+if (unlikely(var26 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_help");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 249);
+show_backtrace(1);
+}
+var24 = var26;
+RET_LABEL25:(void)0;
+}
+}
+{
+{ /* Inline toolcontext#ToolContext#opt_version (self) on <self:ToolContext> */
+var29 = self->attrs[COLOR_toolcontext__ToolContext___opt_version].val; /* _opt_version on <self:ToolContext> */
+if (unlikely(var29 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_version");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 252);
+show_backtrace(1);
+}
+var27 = var29;
+RET_LABEL28:(void)0;
+}
+}
+{
+{ /* Inline toolcontext#ToolContext#opt_set_dummy_tool (self) on <self:ToolContext> */
+var32 = self->attrs[COLOR_toolcontext__ToolContext___opt_set_dummy_tool].val; /* _opt_set_dummy_tool on <self:ToolContext> */
+if (unlikely(var32 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_set_dummy_tool");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 255);
+show_backtrace(1);
+}
+var30 = var32;
+RET_LABEL31:(void)0;
+}
+}
+{
+{ /* Inline toolcontext#ToolContext#opt_verbose (self) on <self:ToolContext> */
+var35 = self->attrs[COLOR_toolcontext__ToolContext___opt_verbose].val; /* _opt_verbose on <self:ToolContext> */
+if (unlikely(var35 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_verbose");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 258);
+show_backtrace(1);
+}
+var33 = var35;
+RET_LABEL34:(void)0;
+}
+}
+{
+{ /* Inline toolcontext#ToolContext#opt_bash_completion (self) on <self:ToolContext> */
+var38 = self->attrs[COLOR_toolcontext__ToolContext___opt_bash_completion].val; /* _opt_bash_completion on <self:ToolContext> */
+if (unlikely(var38 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_bash_completion");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 267);
+show_backtrace(1);
+}
+var36 = var38;
+RET_LABEL37:(void)0;
+}
+}
+{
+{ /* Inline toolcontext#ToolContext#opt_stub_man (self) on <self:ToolContext> */
+var41 = self->attrs[COLOR_toolcontext__ToolContext___opt_stub_man].val; /* _opt_stub_man on <self:ToolContext> */
+if (unlikely(var41 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stub_man");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 270);
+show_backtrace(1);
+}
+var39 = var41;
+RET_LABEL40:(void)0;
+}
+}
+var42 = NEW_array__Array(&type_array__Arrayopts__Option);
+{ /* var42 = array_instance Array[Option] */
+var43 = 13;
+var44 = NEW_array__NativeArray(var43, &type_array__NativeArrayopts__Option);
+((struct instance_array__NativeArray*)var44)->values[0] = (val*) var3;
+((struct instance_array__NativeArray*)var44)->values[1] = (val*) var6;
+((struct instance_array__NativeArray*)var44)->values[2] = (val*) var9;
+((struct instance_array__NativeArray*)var44)->values[3] = (val*) var12;
+((struct instance_array__NativeArray*)var44)->values[4] = (val*) var15;
+((struct instance_array__NativeArray*)var44)->values[5] = (val*) var18;
+((struct instance_array__NativeArray*)var44)->values[6] = (val*) var21;
+((struct instance_array__NativeArray*)var44)->values[7] = (val*) var24;
+((struct instance_array__NativeArray*)var44)->values[8] = (val*) var27;
+((struct instance_array__NativeArray*)var44)->values[9] = (val*) var30;
+((struct instance_array__NativeArray*)var44)->values[10] = (val*) var33;
+((struct instance_array__NativeArray*)var44)->values[11] = (val*) var36;
+((struct instance_array__NativeArray*)var44)->values[12] = (val*) var39;
+{
+((void (*)(val*, val*, long))(var42->class->vft[COLOR_array__Array__with_native]))(var42, var44, var43) /* with_native on <var42:Array[Option]>*/;
+}
+}
+{
+opts__OptionContext__add_option(var, var42); /* Direct call opts#OptionContext#add_option on <var:OptionContext>*/
+}
+RET_LABEL:;
+}
+/* method toolcontext#ToolContext#init for (self: Object) */
+void VIRTUAL_toolcontext__ToolContext__init(val* self) {
+toolcontext__ToolContext__init(self); /* Direct call toolcontext#ToolContext#init on <self:Object(ToolContext)>*/
+RET_LABEL:;
+}
+/* method toolcontext#ToolContext#tooldescription for (self: ToolContext): String */
+val* toolcontext__ToolContext__tooldescription(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+var1 = self->attrs[COLOR_toolcontext__ToolContext___tooldescription].val; /* _tooldescription on <self:ToolContext> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tooldescription");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 281);
+show_backtrace(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method toolcontext#ToolContext#tooldescription for (self: Object): String */
+val* VIRTUAL_toolcontext__ToolContext__tooldescription(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+val* var3 /* : String */;
+{ /* Inline toolcontext#ToolContext#tooldescription (self) on <self:Object(ToolContext)> */
+var3 = self->attrs[COLOR_toolcontext__ToolContext___tooldescription].val; /* _tooldescription on <self:Object(ToolContext)> */
+if (unlikely(var3 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tooldescription");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 281);
+show_backtrace(1);
+}
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method toolcontext#ToolContext#tooldescription= for (self: ToolContext, String) */
+void toolcontext__ToolContext__tooldescription_61d(val* self, val* p0) {
+self->attrs[COLOR_toolcontext__ToolContext___tooldescription].val = p0; /* _tooldescription on <self:ToolContext> */
+RET_LABEL:;
+}
+/* method toolcontext#ToolContext#tooldescription= for (self: Object, String) */
+void VIRTUAL_toolcontext__ToolContext__tooldescription_61d(val* self, val* p0) {
+{ /* Inline toolcontext#ToolContext#tooldescription= (self,p0) on <self:Object(ToolContext)> */
+self->attrs[COLOR_toolcontext__ToolContext___tooldescription].val = p0; /* _tooldescription on <self:Object(ToolContext)> */
+RET_LABEL1:(void)0;
+}
+RET_LABEL:;
+}
+/* method toolcontext#ToolContext#accept_no_arguments for (self: ToolContext): Bool */
+short int toolcontext__ToolContext__accept_no_arguments(val* self) {
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+var1 = self->attrs[COLOR_toolcontext__ToolContext___accept_no_arguments].s; /* _accept_no_arguments on <self:ToolContext> */
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method toolcontext#ToolContext#accept_no_arguments for (self: Object): Bool */
+short int VIRTUAL_toolcontext__ToolContext__accept_no_arguments(val* self) {
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+short int var3 /* : Bool */;
+{ /* Inline toolcontext#ToolContext#accept_no_arguments (self) on <self:Object(ToolContext)> */
+var3 = self->attrs[COLOR_toolcontext__ToolContext___accept_no_arguments].s; /* _accept_no_arguments on <self:Object(ToolContext)> */
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method toolcontext#ToolContext#usage for (self: ToolContext) */
+void toolcontext__ToolContext__usage(val* self) {
+val* var /* : String */;
+val* var2 /* : String */;
+val* var3 /* : OptionContext */;
+val* var5 /* : OptionContext */;
+{
+{ /* Inline toolcontext#ToolContext#tooldescription (self) on <self:ToolContext> */
+var2 = self->attrs[COLOR_toolcontext__ToolContext___tooldescription].val; /* _tooldescription on <self:ToolContext> */
+if (unlikely(var2 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tooldescription");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 281);
+show_backtrace(1);
+}
+var = var2;
+RET_LABEL1:(void)0;
+}
+}
+{
+file__Object__print(self, var); /* Direct call file#Object#print on <self:ToolContext>*/
+}
+{
+{ /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
+var5 = self->attrs[COLOR_toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
+if (unlikely(var5 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231);
+show_backtrace(1);
+}
+var3 = var5;
+RET_LABEL4:(void)0;
+}
+}
+{
+opts__OptionContext__usage(var3); /* Direct call opts#OptionContext#usage on <var3:OptionContext>*/
+}
+RET_LABEL:;
+}
+/* method toolcontext#ToolContext#usage for (self: Object) */
+void VIRTUAL_toolcontext__ToolContext__usage(val* self) {
+toolcontext__ToolContext__usage(self); /* Direct call toolcontext#ToolContext#usage on <self:Object(ToolContext)>*/
+RET_LABEL:;
+}
+/* method toolcontext#ToolContext#process_options for (self: ToolContext, Sequence[String]) */
+void toolcontext__ToolContext__process_options(val* self, val* p0) {
+val* var_args /* var args: Sequence[String] */;
+val* var /* : OptionCount */;
+val* var2 /* : OptionCount */;
+long var3 /* : Int */;
+short int var5 /* : Bool */;
+int cltype;
+int idtype;
+const struct type* type_struct;
+const char* var_class_name;
+val* var6 /* : nullable Object */;
+val* var7 /* : OptionContext */;
+val* var9 /* : OptionContext */;
+val* var10 /* : OptionBool */;
+val* var12 /* : OptionBool */;
+val* var13 /* : nullable Object */;
+val* var15 /* : nullable Object */;
+short int var16 /* : Bool */;
+long var17 /* : Int */;
+val* var19 /* : OptionBool */;
+val* var21 /* : OptionBool */;
+val* var22 /* : nullable Object */;
+val* var24 /* : nullable Object */;
+short int var25 /* : Bool */;
+val* var26 /* : String */;
+long var27 /* : Int */;
+val* var29 /* : OptionBool */;
+val* var31 /* : OptionBool */;
+val* var32 /* : nullable Object */;
+val* var34 /* : nullable Object */;
+short int var35 /* : Bool */;
+val* var36 /* : BashCompletion */;
+val* var_bash_completion /* var bash_completion: BashCompletion */;
+val* var37 /* : Sys */;
+val* var39 /* : Sys */;
+val* var40 /* : OStream */;
+val* var42 /* : OStream */;
+long var43 /* : Int */;
+val* var45 /* : OptionBool */;
+val* var47 /* : OptionBool */;
+val* var48 /* : nullable Object */;
+val* var50 /* : nullable Object */;
+short int var51 /* : Bool */;
+static val* varonce;
+val* var52 /* : String */;
+char* var53 /* : NativeString */;
+long var54 /* : Int */;
+val* var55 /* : FlatString */;
+val* var56 /* : String */;
+val* var57 /* : String */;
+static val* varonce58;
+val* var59 /* : String */;
+char* var60 /* : NativeString */;
+long var61 /* : Int */;
+val* var62 /* : FlatString */;
+val* var63 /* : String */;
+val* var65 /* : String */;
+static val* varonce66;
+val* var67 /* : String */;
+char* var68 /* : NativeString */;
+long var69 /* : Int */;
+val* var70 /* : FlatString */;
+val* var71 /* : Array[Text] */;
+long var72 /* : Int */;
+val* var73 /* : nullable Object */;
+static val* varonce74;
+val* var75 /* : String */;
+char* var76 /* : NativeString */;
+long var77 /* : Int */;
+val* var78 /* : FlatString */;
+val* var79 /* : String */;
+static val* varonce80;
+val* var81 /* : String */;
+char* var82 /* : NativeString */;
+long var83 /* : Int */;
+val* var84 /* : FlatString */;
+val* var85 /* : Array[Object] */;
+long var86 /* : Int */;
+val* var87 /* : NativeArray[Object] */;
+val* var88 /* : String */;
+val* var89 /* : OptionContext */;
+val* var91 /* : OptionContext */;
+val* var92 /* : Array[Option] */;
+val* var94 /* : Array[Option] */;
+val* var_ /* var : Array[Option] */;
+val* var95 /* : ArrayIterator[nullable Object] */;
+val* var_96 /* var : ArrayIterator[Option] */;
+short int var97 /* : Bool */;
+val* var98 /* : nullable Object */;
+val* var_o /* var o: Option */;
+short int var99 /* : Bool */;
+short int var_first /* var first: Bool */;
+val* var100 /* : Array[String] */;
+val* var102 /* : Array[String] */;
+val* var_103 /* var : Array[String] */;
+val* var104 /* : ArrayIterator[nullable Object] */;
+val* var_105 /* var : ArrayIterator[String] */;
+short int var106 /* : Bool */;
+val* var107 /* : nullable Object */;
+val* var_n /* var n: String */;
+short int var108 /* : Bool */;
+static val* varonce109;
+val* var110 /* : String */;
+char* var111 /* : NativeString */;
+long var112 /* : Int */;
+val* var113 /* : FlatString */;
+val* var114 /* : Array[Object] */;
+long var115 /* : Int */;
+val* var116 /* : NativeArray[Object] */;
+static val* varonce117;
+val* var118 /* : String */;
+char* var119 /* : NativeString */;
+long var120 /* : Int */;
+val* var121 /* : FlatString */;
+static val* varonce122;
+val* var123 /* : String */;
+char* var124 /* : NativeString */;
+long var125 /* : Int */;
+val* var126 /* : FlatString */;
+val* var127 /* : Array[Object] */;
+long var128 /* : Int */;
+val* var129 /* : NativeArray[Object] */;
+val* var130 /* : String */;
+val* var131 /* : Array[Object] */;
+long var132 /* : Int */;
+val* var133 /* : NativeArray[Object] */;
+static val* varonce135;
+val* var136 /* : String */;
+char* var137 /* : NativeString */;
+long var138 /* : Int */;
+val* var139 /* : FlatString */;
+static val* varonce140;
+val* var141 /* : String */;
+char* var142 /* : NativeString */;
+long var143 /* : Int */;
+val* var144 /* : FlatString */;
+val* var145 /* : String */;
+val* var147 /* : String */;
+val* var148 /* : Array[Object] */;
+long var149 /* : Int */;
+val* var150 /* : NativeArray[Object] */;
+val* var151 /* : String */;
+static val* varonce152;
+val* var153 /* : String */;
+char* var154 /* : NativeString */;
+long var155 /* : Int */;
+val* var156 /* : FlatString */;
+static val* varonce159;
+val* var160 /* : String */;
+char* var161 /* : NativeString */;
+long var162 /* : Int */;
+val* var163 /* : FlatString */;
+long var164 /* : Int */;
+val* var166 /* : OptionContext */;
+val* var168 /* : OptionContext */;
+val* var169 /* : Array[String] */;
+val* var_errors /* var errors: Array[String] */;
+short int var170 /* : Bool */;
+short int var171 /* : Bool */;
+val* var_172 /* var : Array[String] */;
+val* var173 /* : ArrayIterator[nullable Object] */;
+val* var_174 /* var : ArrayIterator[String] */;
+short int var175 /* : Bool */;
+val* var176 /* : nullable Object */;
+val* var_e /* var e: String */;
+static val* varonce177;
+val* var178 /* : String */;
+char* var179 /* : NativeString */;
+long var180 /* : Int */;
+val* var181 /* : FlatString */;
+val* var182 /* : Array[Object] */;
+long var183 /* : Int */;
+val* var184 /* : NativeArray[Object] */;
+val* var185 /* : String */;
+val* var188 /* : String */;
+val* var190 /* : String */;
+static val* varonce191;
+val* var192 /* : String */;
+char* var193 /* : NativeString */;
+long var194 /* : Int */;
+val* var195 /* : FlatString */;
+long var196 /* : Int */;
+short int var198 /* : Bool */;
+val* var199 /* : OptionContext */;
+val* var201 /* : OptionContext */;
+val* var202 /* : Array[String] */;
+val* var204 /* : Array[String] */;
+short int var205 /* : Bool */;
+short int var_206 /* var : Bool */;
+short int var207 /* : Bool */;
+short int var209 /* : Bool */;
+short int var210 /* : Bool */;
+val* var211 /* : String */;
+val* var213 /* : String */;
+static val* varonce214;
+val* var215 /* : String */;
+char* var216 /* : NativeString */;
+long var217 /* : Int */;
+val* var218 /* : FlatString */;
+long var219 /* : Int */;
+val* var221 /* : OptionCount */;
+val* var223 /* : OptionCount */;
+val* var224 /* : nullable Object */;
+val* var226 /* : nullable Object */;
+long var228 /* : Int */;
+val* var229 /* : OptionBool */;
+val* var231 /* : OptionBool */;
+val* var232 /* : nullable Object */;
+val* var234 /* : nullable Object */;
+short int var235 /* : Bool */;
+val* var236 /* : OptionCount */;
+val* var238 /* : OptionCount */;
+long var239 /* : Int */;
+short int var241 /* : Bool */;
+int cltype242;
+int idtype243;
+const struct type* type_struct244;
+const char* var_class_name245;
+val* var246 /* : nullable Object */;
+val* var247 /* : OptionString */;
+val* var249 /* : OptionString */;
+val* var250 /* : nullable Object */;
+val* var252 /* : nullable Object */;
+val* var253 /* : null */;
+short int var254 /* : Bool */;
+short int var255 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var257 /* : Bool */;
+short int var258 /* : Bool */;
+short int var259 /* : Bool */;
+val* var260 /* : OptionString */;
+val* var262 /* : OptionString */;
+val* var263 /* : nullable Object */;
+val* var265 /* : nullable Object */;
+val* var267 /* : OptionBool */;
+val* var269 /* : OptionBool */;
+val* var270 /* : nullable Object */;
+val* var272 /* : nullable Object */;
+short int var273 /* : Bool */;
+val* var274 /* : String */;
+val* var276 /* : String */;
+val* var277 /* : nullable String */;
+var_args = p0;
+{
+{ /* Inline toolcontext#ToolContext#opt_warn (self) on <self:ToolContext> */
+var2 = self->attrs[COLOR_toolcontext__ToolContext___opt_warn].val; /* _opt_warn on <self:ToolContext> */
+if (unlikely(var2 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warn");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 234);
+show_backtrace(1);
+}
+var = var2;
+RET_LABEL1:(void)0;
+}
+}
+var3 = 1;
+{
+{ /* Inline opts#Option#value= (var,var3) on <var:OptionCount> */
+/* Covariant cast for argument 0 (value) <var3:Int> isa VALUE */
+/* <var3:Int> isa VALUE */
+type_struct = var->type->resolution_table->types[COLOR_opts__Option_VTVALUE];
+cltype = type_struct->color;
+idtype = type_struct->id;
+if(cltype >= (&type_kernel__Int)->table_size) {
+var5 = 0;
+} else {
+var5 = (&type_kernel__Int)->type_table[cltype] == idtype;
+}
+if (unlikely(!var5)) {
+var_class_name = type_kernel__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", "../lib/opts.nit", 40);
+show_backtrace(1);
+}
+var6 = BOX_kernel__Int(var3); /* autobox from Int to nullable Object */
+var->attrs[COLOR_opts__Option___value].val = var6; /* _value on <var:OptionCount> */
+RET_LABEL4:(void)0;
+}
+}
+{
+{ /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
+var9 = self->attrs[COLOR_toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
+if (unlikely(var9 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231);
+show_backtrace(1);
+}
+var7 = var9;
+RET_LABEL8:(void)0;
+}
+}
+{
+opts__OptionContext__parse(var7, var_args); /* Direct call opts#OptionContext#parse on <var7:OptionContext>*/
+}
+{
+{ /* Inline toolcontext#ToolContext#opt_help (self) on <self:ToolContext> */
+var12 = self->attrs[COLOR_toolcontext__ToolContext___opt_help].val; /* _opt_help on <self:ToolContext> */
+if (unlikely(var12 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_help");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 249);
+show_backtrace(1);
+}
+var10 = var12;
+RET_LABEL11:(void)0;
+}
+}
+{
+{ /* Inline opts#Option#value (var10) on <var10:OptionBool> */
+var15 = var10->attrs[COLOR_opts__Option___value].val; /* _value on <var10:OptionBool> */
+var13 = var15;
+RET_LABEL14:(void)0;
+}
+}
+var16 = ((struct instance_kernel__Bool*)var13)->value; /* autounbox from nullable Object to Bool */;
+if (var16){
+{
+toolcontext__ToolContext__usage(self); /* Direct call toolcontext#ToolContext#usage on <self:ToolContext>*/
+}
+var17 = 0;
+{
+{ /* Inline kernel#Object#exit (self,var17) on <self:ToolContext> */
+exit(var17);
+RET_LABEL18:(void)0;
+}
+}
+} else {
+}
+{
+{ /* Inline toolcontext#ToolContext#opt_version (self) on <self:ToolContext> */
+var21 = self->attrs[COLOR_toolcontext__ToolContext___opt_version].val; /* _opt_version on <self:ToolContext> */
+if (unlikely(var21 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_version");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 252);
+show_backtrace(1);
+}
+var19 = var21;
+RET_LABEL20:(void)0;
+}
+}
+{
+{ /* Inline opts#Option#value (var19) on <var19:OptionBool> */
+var24 = var19->attrs[COLOR_opts__Option___value].val; /* _value on <var19:OptionBool> */
+var22 = var24;
+RET_LABEL23:(void)0;
+}
+}
+var25 = ((struct instance_kernel__Bool*)var22)->value; /* autounbox from nullable Object to Bool */;
+if (var25){
+{
+var26 = toolcontext__ToolContext__version(self);
+}
+{
+file__Object__print(self, var26); /* Direct call file#Object#print on <self:ToolContext>*/
+}
+var27 = 0;
+{
+{ /* Inline kernel#Object#exit (self,var27) on <self:ToolContext> */
+exit(var27);
+RET_LABEL28:(void)0;
+}
+}
+} else {
+}
+{
+{ /* Inline toolcontext#ToolContext#opt_bash_completion (self) on <self:ToolContext> */
+var31 = self->attrs[COLOR_toolcontext__ToolContext___opt_bash_completion].val; /* _opt_bash_completion on <self:ToolContext> */
+if (unlikely(var31 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_bash_completion");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 267);
+show_backtrace(1);
+}
+var29 = var31;
+RET_LABEL30:(void)0;
+}
+}
+{
+{ /* Inline opts#Option#value (var29) on <var29:OptionBool> */
+var34 = var29->attrs[COLOR_opts__Option___value].val; /* _value on <var29:OptionBool> */
+var32 = var34;
+RET_LABEL33:(void)0;
+}
+}
+var35 = ((struct instance_kernel__Bool*)var32)->value; /* autounbox from nullable Object to Bool */;
+if (var35){
+var36 = NEW_toolcontext__BashCompletion(&type_toolcontext__BashCompletion);
+{
+toolcontext__BashCompletion__init(var36, self); /* Direct call toolcontext#BashCompletion#init on <var36:BashCompletion>*/
+}
+var_bash_completion = var36;
+{
+{ /* Inline kernel#Object#sys (self) on <self:ToolContext> */
+var39 = glob_sys;
+var37 = var39;
+goto RET_LABEL38;
+RET_LABEL38:(void)0;
+}
+}
+{
+{ /* Inline file#Sys#stdout (var37) on <var37:Sys> */
+var42 = var37->attrs[COLOR_file__Sys___stdout].val; /* _stdout on <var37:Sys> */
+if (unlikely(var42 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stdout");
+PRINT_ERROR(" (%s:%d)\n", "../lib/standard/file.nit", 634);
+show_backtrace(1);
+}
+var40 = var42;
+RET_LABEL41:(void)0;
+}
+}
+{
+template__Template__write_to(var_bash_completion, var40); /* Direct call template#Template#write_to on <var_bash_completion:BashCompletion>*/
+}
+var43 = 0;
+{
+{ /* Inline kernel#Object#exit (self,var43) on <self:ToolContext> */
+exit(var43);
+RET_LABEL44:(void)0;
+}
+}
+} else {
+}
+{
+{ /* Inline toolcontext#ToolContext#opt_stub_man (self) on <self:ToolContext> */
+var47 = self->attrs[COLOR_toolcontext__ToolContext___opt_stub_man].val; /* _opt_stub_man on <self:ToolContext> */
+if (unlikely(var47 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stub_man");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 270);
+show_backtrace(1);
+}
+var45 = var47;
+RET_LABEL46:(void)0;
+}
+}
+{
+{ /* Inline opts#Option#value (var45) on <var45:OptionBool> */
+var50 = var45->attrs[COLOR_opts__Option___value].val; /* _value on <var45:OptionBool> */
+var48 = var50;
+RET_LABEL49:(void)0;
+}
+}
+var51 = ((struct instance_kernel__Bool*)var48)->value; /* autounbox from nullable Object to Bool */;
+if (var51){
+if (varonce) {
+var52 = varonce;
+} else {
+var53 = "% ";
+var54 = 2;
+var55 = string__NativeString__to_s_with_length(var53, var54);
+var52 = var55;
+varonce = var52;
+}
+{
+var56 = toolcontext__ToolContext__toolname(self);
+}
+{
+var57 = string__FlatString__to_upper(var56);
+}
+if (varonce58) {
+var59 = varonce58;
+} else {
+var60 = "(1)\n\n# NAME\n\n";
+var61 = 13;
+var62 = string__NativeString__to_s_with_length(var60, var61);
+var59 = var62;
+varonce58 = var59;
+}
+{
+{ /* Inline toolcontext#ToolContext#tooldescription (self) on <self:ToolContext> */
+var65 = self->attrs[COLOR_toolcontext__ToolContext___tooldescription].val; /* _tooldescription on <self:ToolContext> */
+if (unlikely(var65 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tooldescription");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 281);
+show_backtrace(1);
+}
+var63 = var65;
+RET_LABEL64:(void)0;
+}
+}
+if (varonce66) {
+var67 = varonce66;
+} else {
+var68 = "\n";
+var69 = 1;
+var70 = string__NativeString__to_s_with_length(var68, var69);
+var67 = var70;
+varonce66 = var67;
+}
+{
+var71 = string_search__Text__split(var63, var67);
+}
+var72 = 1;
+{
+var73 = array__Array___91d_93d(var71, var72);
+}
+if (varonce74) {
+var75 = varonce74;
+} else {
+var76 = "\n\n# SYNOPSYS\n\n";
+var77 = 14;
+var78 = string__NativeString__to_s_with_length(var76, var77);
+var75 = var78;
+varonce74 = var75;
+}
+{
+var79 = toolcontext__ToolContext__toolname(self);
+}
+if (varonce80) {
+var81 = varonce80;
+} else {
+var82 = " [*options*]...\n\n# OPTIONS\n";
+var83 = 27;
+var84 = string__NativeString__to_s_with_length(var82, var83);
+var81 = var84;
+varonce80 = var81;
+}
+var85 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var85 = array_instance Array[Object] */
+var86 = 7;
+var87 = NEW_array__NativeArray(var86, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var87)->values[0] = (val*) var52;
+((struct instance_array__NativeArray*)var87)->values[1] = (val*) var57;
+((struct instance_array__NativeArray*)var87)->values[2] = (val*) var59;
+((struct instance_array__NativeArray*)var87)->values[3] = (val*) var73;
+((struct instance_array__NativeArray*)var87)->values[4] = (val*) var75;
+((struct instance_array__NativeArray*)var87)->values[5] = (val*) var79;
+((struct instance_array__NativeArray*)var87)->values[6] = (val*) var81;
+{
+((void (*)(val*, val*, long))(var85->class->vft[COLOR_array__Array__with_native]))(var85, var87, var86) /* with_native on <var85:Array[Object]>*/;
+}
+}
+{
+var88 = ((val* (*)(val*))(var85->class->vft[COLOR_string__Object__to_s]))(var85) /* to_s on <var85:Array[Object]>*/;
+}
+{
+file__Object__print(self, var88); /* Direct call file#Object#print on <self:ToolContext>*/
+}
+{
+{ /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
+var91 = self->attrs[COLOR_toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
+if (unlikely(var91 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231);
+show_backtrace(1);
+}
+var89 = var91;
+RET_LABEL90:(void)0;
+}
+}
+{
+{ /* Inline opts#OptionContext#options (var89) on <var89:OptionContext> */
+var94 = var89->attrs[COLOR_opts__OptionContext___options].val; /* _options on <var89:OptionContext> */
+if (unlikely(var94 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _options");
+PRINT_ERROR(" (%s:%d)\n", "../lib/opts.nit", 243);
+show_backtrace(1);
+}
+var92 = var94;
+RET_LABEL93:(void)0;
+}
+}
+var_ = var92;
+{
+var95 = array__AbstractArrayRead__iterator(var_);
+}
+var_96 = var95;
+for(;;) {
+{
+var97 = array__ArrayIterator__is_ok(var_96);
+}
+if (var97){
+{
+var98 = array__ArrayIterator__item(var_96);
+}
+var_o = var98;
+var99 = 1;
+var_first = var99;
+{
+{ /* Inline opts#Option#names (var_o) on <var_o:Option> */
+var102 = var_o->attrs[COLOR_opts__Option___names].val; /* _names on <var_o:Option> */
+if (unlikely(var102 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
+PRINT_ERROR(" (%s:%d)\n", "../lib/opts.nit", 19);
+show_backtrace(1);
+}
+var100 = var102;
+RET_LABEL101:(void)0;
+}
+}
+var_103 = var100;
+{
+var104 = array__AbstractArrayRead__iterator(var_103);
+}
+var_105 = var104;
+for(;;) {
+{
+var106 = array__ArrayIterator__is_ok(var_105);
+}
+if (var106){
+{
+var107 = array__ArrayIterator__item(var_105);
+}
+var_n = var107;
+if (var_first){
+var108 = 0;
+var_first = var108;
+} else {
+if (varonce109) {
+var110 = varonce109;
+} else {
+var111 = ", ";
+var112 = 2;
+var113 = string__NativeString__to_s_with_length(var111, var112);
+var110 = var113;
+varonce109 = var110;
+}
+var114 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var114 = array_instance Array[Object] */
+var115 = 1;
+var116 = NEW_array__NativeArray(var115, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var116)->values[0] = (val*) var110;
+{
+((void (*)(val*, val*, long))(var114->class->vft[COLOR_array__Array__with_native]))(var114, var116, var115) /* with_native on <var114:Array[Object]>*/;
+}
+}
+{
+file__Object__printn(self, var114); /* Direct call file#Object#printn on <self:ToolContext>*/
+}
+}
+if (varonce117) {
+var118 = varonce117;
+} else {
+var119 = "`";
+var120 = 1;
+var121 = string__NativeString__to_s_with_length(var119, var120);
+var118 = var121;
+varonce117 = var118;
+}
+if (varonce122) {
+var123 = varonce122;
+} else {
+var124 = "`";
+var125 = 1;
+var126 = string__NativeString__to_s_with_length(var124, var125);
+var123 = var126;
+varonce122 = var123;
+}
+var127 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var127 = array_instance Array[Object] */
+var128 = 3;
+var129 = NEW_array__NativeArray(var128, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var129)->values[0] = (val*) var118;
+((struct instance_array__NativeArray*)var129)->values[1] = (val*) var_n;
+((struct instance_array__NativeArray*)var129)->values[2] = (val*) var123;
+{
+((void (*)(val*, val*, long))(var127->class->vft[COLOR_array__Array__with_native]))(var127, var129, var128) /* with_native on <var127:Array[Object]>*/;
+}
+}
+{
+var130 = ((val* (*)(val*))(var127->class->vft[COLOR_string__Object__to_s]))(var127) /* to_s on <var127:Array[Object]>*/;
+}
+var131 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var131 = array_instance Array[Object] */
+var132 = 1;
+var133 = NEW_array__NativeArray(var132, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var133)->values[0] = (val*) var130;
+{
+((void (*)(val*, val*, long))(var131->class->vft[COLOR_array__Array__with_native]))(var131, var133, var132) /* with_native on <var131:Array[Object]>*/;
+}
+}
+{
+file__Object__printn(self, var131); /* Direct call file#Object#printn on <self:ToolContext>*/
+}
+{
+array__ArrayIterator__next(var_105); /* Direct call array#ArrayIterator#next on <var_105:ArrayIterator[String]>*/
+}
+} else {
+goto BREAK_label;
+}
+}
+BREAK_label: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_105) on <var_105:ArrayIterator[String]> */
+RET_LABEL134:(void)0;
+}
+}
+if (varonce135) {
+var136 = varonce135;
+} else {
+var137 = "";
+var138 = 0;
+var139 = string__NativeString__to_s_with_length(var137, var138);
+var136 = var139;
+varonce135 = var136;