+/* method parser_work#Prod#collect_text for (self: Prod): String */
+val* parser_work__Prod__collect_text(val* self) {
+val* var /* : String */;
+val* var1 /* : TextCollectorVisitor */;
+val* var_v /* var v: TextCollectorVisitor */;
+val* var2 /* : String */;
+val* var4 /* : String */;
+static val* varonce;
+val* var5 /* : String */;
+char* var6 /* : NativeString */;
+long var7 /* : Int */;
+val* var8 /* : FlatString */;
+short int var9 /* : Bool */;
+short int var10 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var12 /* : Bool */;
+short int var13 /* : Bool */;
+short int var14 /* : Bool */;
+val* var15 /* : String */;
+val* var17 /* : String */;
+var1 = NEW_parser_work__TextCollectorVisitor(&type_parser_work__TextCollectorVisitor);
+{
+((void (*)(val*))(var1->class->vft[COLOR_kernel__Object__init]))(var1) /* init on <var1:TextCollectorVisitor>*/;
+}
+var_v = var1;
+{
+parser_nodes__Visitor__enter_visit(var_v, self); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:TextCollectorVisitor>*/
+}
+{
+{ /* Inline parser_work#TextCollectorVisitor#text (var_v) on <var_v:TextCollectorVisitor> */
+var4 = var_v->attrs[COLOR_parser_work__TextCollectorVisitor___text].val; /* _text on <var_v:TextCollectorVisitor> */
+if (unlikely(var4 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser_work.nit", 253);
+show_backtrace(1);
+}
+var2 = var4;
+RET_LABEL3:(void)0;
+}
+}
+if (varonce) {
+var5 = varonce;
+} else {
+var6 = "";
+var7 = 0;
+var8 = string__NativeString__to_s_with_length(var6, var7);
+var5 = var8;
+varonce = var5;
+}
+{
+{ /* Inline kernel#Object#!= (var2,var5) on <var2:String> */
+var_other = var5;
+{
+var13 = ((short int (*)(val*, val*))(var2->class->vft[COLOR_kernel__Object___61d_61d]))(var2, var_other) /* == on <var2:String>*/;
+var12 = var13;
+}
+var14 = !var12;
+var10 = var14;
+goto RET_LABEL11;
+RET_LABEL11:(void)0;
+}
+var9 = var10;
+}
+if (unlikely(!var9)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser_work.nit", 180);
+show_backtrace(1);
+}
+{
+{ /* Inline parser_work#TextCollectorVisitor#text (var_v) on <var_v:TextCollectorVisitor> */
+var17 = var_v->attrs[COLOR_parser_work__TextCollectorVisitor___text].val; /* _text on <var_v:TextCollectorVisitor> */
+if (unlikely(var17 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser_work.nit", 253);
+show_backtrace(1);
+}
+var15 = var17;
+RET_LABEL16:(void)0;
+}
+}
+var = var15;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method parser_work#Prod#collect_text for (self: Object): String */
+val* VIRTUAL_parser_work__Prod__collect_text(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+var1 = parser_work__Prod__collect_text(self);
+var = var1;
+RET_LABEL:;
+return var;
+}