+ /* Register variable[15]: Local variable */
+ variable[15] = variable[4] /*nodearraylist6*/;
+ /* Register variable[16]: Result */
+ variable[16] = TAG_Bool(( variable[15] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[15] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction651___action, LOCATE_parser, 22483); nit_exit(1);}
+ /* Register variable[16]: Result */
+ variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode6*/ == NIT_NULL /*null*/) || (( variable[15] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)( variable[15] /*listnode6*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[16])) { /*if*/
+ /* Register variable[16]: Result */
+ variable[16] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode7*/)( variable[11] /*listnode7*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[16])) { /*if*/
+ variable[11] = variable[15] /*listnode6*/ /*listnode7=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode7*/)( variable[11] /*listnode7*/, variable[15] /*listnode6*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[16]: Local variable */
+ /* Register variable[17]: Result */
+ variable[17] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[12] /*pexprnode2*/, variable[13] /*tidnode3*/, variable[10] /*listnode5*/, variable[11] /*listnode7*/) /*new ACallExpr*/;
+ variable[16] = variable[17];
+ variable[3] = variable[16] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[17]: Result */
+ variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(106)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1334: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction651___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22500, LOCATE_parser___ReduceAction651___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction651].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1335: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction651].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction652___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22504, LOCATE_parser___ReduceAction652___action};
+ val_t variable[15];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ /* Register variable[9]: Result */
+ variable[9] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[8] = variable[9];
+ /* Register variable[9]: Local variable */
+ /* Register variable[10]: Result */
+ variable[10] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr() /*new AImplicitSelfExpr*/;
+ variable[9] = variable[10];
+ /* Register variable[10]: Local variable */
+ variable[10] = variable[6] /*nodearraylist1*/;
+ /* Register variable[11]: Result */
+ variable[11] = TAG_Bool(( variable[10] /*tidnode3*/==NIT_NULL) || VAL_ISA( variable[10] /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+ if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction652___action, LOCATE_parser, 22515); nit_exit(1);}
+ /* Register variable[11]: Local variable */
+ variable[11] = variable[5] /*nodearraylist2*/;
+ /* Register variable[12]: Result */
+ variable[12] = TAG_Bool(( variable[11] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction652___action, LOCATE_parser, 22517); nit_exit(1);}
+ /* Register variable[12]: Result */
+ variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ == NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)( variable[11] /*listnode4*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[12])) { /*if*/
+ /* Register variable[12]: Result */
+ variable[12] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[12])) { /*if*/
+ variable[7] = variable[11] /*listnode4*/ /*listnode5=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/, variable[11] /*listnode4*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[12]: Local variable */
+ variable[12] = variable[4] /*nodearraylist3*/;
+ /* Register variable[13]: Result */
+ variable[13] = TAG_Bool(( variable[12] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction652___action, LOCATE_parser, 22526); nit_exit(1);}
+ /* Register variable[13]: Result */
+ variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ == NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)( variable[12] /*listnode6*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[13])) { /*if*/
+ /* Register variable[13]: Result */
+ variable[13] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode7*/)( variable[8] /*listnode7*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[13])) { /*if*/
+ variable[8] = variable[12] /*listnode6*/ /*listnode7=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode7*/)( variable[8] /*listnode7*/, variable[12] /*listnode6*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[13]: Local variable */
+ /* Register variable[14]: Result */
+ variable[14] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[9] /*pexprnode2*/, variable[10] /*tidnode3*/, variable[7] /*listnode5*/, variable[8] /*listnode7*/) /*new ACallExpr*/;
+ variable[13] = variable[14];
+ variable[3] = variable[13] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[14]: Result */
+ variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(106)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1336: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction652___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22543, LOCATE_parser___ReduceAction652___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction652].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1337: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction652].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction653___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22547, LOCATE_parser___ReduceAction653___action};
+ val_t variable[7];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ variable[5] = variable[4] /*nodearraylist1*/;
+ /* Register variable[6]: Result */
+ variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction653___action, LOCATE_parser, 22552); nit_exit(1);}
+ variable[3] = variable[5] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(107)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1338: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction653___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22556, LOCATE_parser___ReduceAction653___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction653].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1339: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction653].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction654___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22560, LOCATE_parser___ReduceAction654___action};
+ val_t variable[23];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ /* Register variable[9]: Result */
+ variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[8] = variable[9];
+ /* Register variable[9]: Local variable */
+ /* Register variable[10]: Result */
+ variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[9] = variable[10];
+ /* Register variable[10]: Local variable */
+ /* Register variable[11]: Result */
+ variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[10] = variable[11];
+ /* Register variable[11]: Local variable */
+ /* Register variable[12]: Result */
+ variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[11] = variable[12];
+ /* Register variable[12]: Local variable */
+ /* Register variable[13]: Result */
+ variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[12] = variable[13];
+ /* Register variable[13]: Local variable */
+ /* Register variable[14]: Result */
+ variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[13] = variable[14];
+ /* Register variable[14]: Local variable */
+ /* Register variable[15]: Result */
+ variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[14] = variable[15];
+ /* Register variable[15]: Local variable */
+ variable[15] = variable[14] /*nodearraylist1*/;
+ /* Register variable[16]: Result */
+ variable[16] = TAG_Bool(( variable[15] /*tkwifnode2*/==NIT_NULL) || VAL_ISA( variable[15] /*tkwifnode2*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
+ if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction654___action, LOCATE_parser, 22575); nit_exit(1);}
+ /* Register variable[16]: Local variable */
+ variable[16] = variable[12] /*nodearraylist3*/;
+ /* Register variable[17]: Result */
+ variable[17] = TAG_Bool(( variable[16] /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable[16] /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[17])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction654___action, LOCATE_parser, 22577); nit_exit(1);}
+ /* Register variable[17]: Local variable */
+ variable[17] = variable[10] /*nodearraylist5*/;
+ /* Register variable[18]: Result */
+ variable[18] = TAG_Bool(( variable[17] /*tkwthennode4*/==NIT_NULL) || VAL_ISA( variable[17] /*tkwthennode4*/, COLOR_TKwthen, ID_TKwthen)) /*cast TKwthen*/;
+ if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction654___action, LOCATE_parser, 22579); nit_exit(1);}
+ /* Register variable[18]: Local variable */
+ variable[18] = variable[8] /*nodearraylist7*/;
+ /* Register variable[19]: Result */
+ variable[19] = TAG_Bool(( variable[18] /*pexprnode5*/==NIT_NULL) || VAL_ISA( variable[18] /*pexprnode5*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[19])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction654___action, LOCATE_parser, 22581); nit_exit(1);}
+ /* Register variable[19]: Local variable */
+ variable[19] = variable[6] /*nodearraylist9*/;
+ /* Register variable[20]: Result */
+ variable[20] = TAG_Bool(( variable[19] /*tkwelsenode6*/==NIT_NULL) || VAL_ISA( variable[19] /*tkwelsenode6*/, COLOR_TKwelse, ID_TKwelse)) /*cast TKwelse*/;
+ if (!UNTAG_Bool(variable[20])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction654___action, LOCATE_parser, 22583); nit_exit(1);}
+ /* Register variable[20]: Local variable */
+ variable[20] = variable[4] /*nodearraylist11*/;
+ /* Register variable[21]: Result */
+ variable[21] = TAG_Bool(( variable[20] /*pexprnode7*/==NIT_NULL) || VAL_ISA( variable[20] /*pexprnode7*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[21])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction654___action, LOCATE_parser, 22585); nit_exit(1);}
+ /* Register variable[21]: Local variable */
+ /* Register variable[22]: Result */
+ variable[22] = NEW_AIfexprExpr_parser_prod___AIfexprExpr___init_aifexprexpr( variable[15] /*tkwifnode2*/, variable[16] /*pexprnode3*/, variable[17] /*tkwthennode4*/, variable[18] /*pexprnode5*/, variable[19] /*tkwelsenode6*/, variable[20] /*pexprnode7*/) /*new AIfexprExpr*/;
+ variable[21] = variable[22];
+ variable[3] = variable[21] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[22]: Result */
+ variable[22] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(107)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[22], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1340: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction654___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22597, LOCATE_parser___ReduceAction654___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction654].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1341: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction654].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction655___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22601, LOCATE_parser___ReduceAction655___action};
+ val_t variable[7];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ variable[5] = variable[4] /*nodearraylist1*/;
+ /* Register variable[6]: Result */
+ variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction655___action, LOCATE_parser, 22606); nit_exit(1);}
+ variable[3] = variable[5] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(108)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1342: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction655___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22610, LOCATE_parser___ReduceAction655___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction655].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1343: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction655].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction656___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22614, LOCATE_parser___ReduceAction656___action};
+ val_t variable[12];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[7] /*nodearraylist1*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction656___action, LOCATE_parser, 22622); nit_exit(1);}
+ /* Register variable[9]: Local variable */
+ variable[9] = variable[4] /*nodearraylist4*/;
+ /* Register variable[10]: Result */
+ variable[10] = TAG_Bool(( variable[9] /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable[9] /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction656___action, LOCATE_parser, 22624); nit_exit(1);}
+ /* Register variable[10]: Local variable */
+ /* Register variable[11]: Result */
+ variable[11] = NEW_AOrExpr_parser_prod___AOrExpr___init_aorexpr( variable[8] /*pexprnode2*/, variable[9] /*pexprnode3*/) /*new AOrExpr*/;
+ variable[10] = variable[11];
+ variable[3] = variable[10] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[11]: Result */
+ variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(108)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1344: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction656___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22632, LOCATE_parser___ReduceAction656___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction656].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1345: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction656].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction657___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22636, LOCATE_parser___ReduceAction657___action};
+ val_t variable[12];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[7] /*nodearraylist1*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction657___action, LOCATE_parser, 22644); nit_exit(1);}
+ /* Register variable[9]: Local variable */
+ variable[9] = variable[4] /*nodearraylist4*/;
+ /* Register variable[10]: Result */
+ variable[10] = TAG_Bool(( variable[9] /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable[9] /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction657___action, LOCATE_parser, 22646); nit_exit(1);}
+ /* Register variable[10]: Local variable */
+ /* Register variable[11]: Result */
+ variable[11] = NEW_AAndExpr_parser_prod___AAndExpr___init_aandexpr( variable[8] /*pexprnode2*/, variable[9] /*pexprnode3*/) /*new AAndExpr*/;
+ variable[10] = variable[11];
+ variable[3] = variable[10] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[11]: Result */
+ variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(108)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1346: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction657___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22654, LOCATE_parser___ReduceAction657___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction657].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1347: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction657].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction658___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22658, LOCATE_parser___ReduceAction658___action};
+ val_t variable[7];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ variable[5] = variable[4] /*nodearraylist1*/;
+ /* Register variable[6]: Result */
+ variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction658___action, LOCATE_parser, 22663); nit_exit(1);}
+ variable[3] = variable[5] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(109)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1348: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction658___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22667, LOCATE_parser___ReduceAction658___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction658].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1349: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction658].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction659___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22671, LOCATE_parser___ReduceAction659___action};
+ val_t variable[11];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ variable[7] = variable[6] /*nodearraylist1*/;
+ /* Register variable[8]: Result */
+ variable[8] = TAG_Bool(( variable[7] /*tkwnotnode2*/==NIT_NULL) || VAL_ISA( variable[7] /*tkwnotnode2*/, COLOR_TKwnot, ID_TKwnot)) /*cast TKwnot*/;
+ if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction659___action, LOCATE_parser, 22678); nit_exit(1);}
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[4] /*nodearraylist3*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction659___action, LOCATE_parser, 22680); nit_exit(1);}
+ /* Register variable[9]: Local variable */
+ /* Register variable[10]: Result */
+ variable[10] = NEW_ANotExpr_parser_prod___ANotExpr___init_anotexpr( variable[7] /*tkwnotnode2*/, variable[8] /*pexprnode3*/) /*new ANotExpr*/;
+ variable[9] = variable[10];
+ variable[3] = variable[9] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[10]: Result */
+ variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(109)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1350: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction659___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22688, LOCATE_parser___ReduceAction659___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction659].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1351: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction659].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction660___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22692, LOCATE_parser___ReduceAction660___action};
+ val_t variable[7];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ variable[5] = variable[4] /*nodearraylist1*/;
+ /* Register variable[6]: Result */
+ variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction660___action, LOCATE_parser, 22697); nit_exit(1);}
+ variable[3] = variable[5] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(110)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1352: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction660___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22701, LOCATE_parser___ReduceAction660___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction660].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1353: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction660].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction661___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22705, LOCATE_parser___ReduceAction661___action};
+ val_t variable[12];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[7] /*nodearraylist1*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction661___action, LOCATE_parser, 22713); nit_exit(1);}
+ /* Register variable[9]: Local variable */
+ variable[9] = variable[4] /*nodearraylist4*/;
+ /* Register variable[10]: Result */
+ variable[10] = TAG_Bool(( variable[9] /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable[9] /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction661___action, LOCATE_parser, 22715); nit_exit(1);}
+ /* Register variable[10]: Local variable */
+ /* Register variable[11]: Result */
+ variable[11] = NEW_AEqExpr_parser_prod___AEqExpr___init_aeqexpr( variable[8] /*pexprnode2*/, variable[9] /*pexprnode3*/) /*new AEqExpr*/;
+ variable[10] = variable[11];
+ variable[3] = variable[10] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[11]: Result */
+ variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(110)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1354: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction661___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22723, LOCATE_parser___ReduceAction661___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction661].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1355: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction661].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction662___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22727, LOCATE_parser___ReduceAction662___action};
+ val_t variable[12];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[7] /*nodearraylist1*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction662___action, LOCATE_parser, 22735); nit_exit(1);}
+ /* Register variable[9]: Local variable */
+ variable[9] = variable[4] /*nodearraylist4*/;
+ /* Register variable[10]: Result */
+ variable[10] = TAG_Bool(( variable[9] /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable[9] /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction662___action, LOCATE_parser, 22737); nit_exit(1);}
+ /* Register variable[10]: Local variable */
+ /* Register variable[11]: Result */
+ variable[11] = NEW_AEeExpr_parser_prod___AEeExpr___init_aeeexpr( variable[8] /*pexprnode2*/, variable[9] /*pexprnode3*/) /*new AEeExpr*/;
+ variable[10] = variable[11];
+ variable[3] = variable[10] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[11]: Result */
+ variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(110)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1356: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction662___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22745, LOCATE_parser___ReduceAction662___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction662].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1357: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction662].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction663___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22749, LOCATE_parser___ReduceAction663___action};
+ val_t variable[12];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[7] /*nodearraylist1*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction663___action, LOCATE_parser, 22757); nit_exit(1);}
+ /* Register variable[9]: Local variable */
+ variable[9] = variable[4] /*nodearraylist4*/;
+ /* Register variable[10]: Result */
+ variable[10] = TAG_Bool(( variable[9] /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable[9] /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction663___action, LOCATE_parser, 22759); nit_exit(1);}
+ /* Register variable[10]: Local variable */
+ /* Register variable[11]: Result */
+ variable[11] = NEW_ANeExpr_parser_prod___ANeExpr___init_aneexpr( variable[8] /*pexprnode2*/, variable[9] /*pexprnode3*/) /*new ANeExpr*/;
+ variable[10] = variable[11];
+ variable[3] = variable[10] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[11]: Result */
+ variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(110)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1358: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction663___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22767, LOCATE_parser___ReduceAction663___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction663].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1359: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction663].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction664___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22771, LOCATE_parser___ReduceAction664___action};
+ val_t variable[12];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[7] /*nodearraylist1*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction664___action, LOCATE_parser, 22779); nit_exit(1);}
+ /* Register variable[9]: Local variable */
+ variable[9] = variable[4] /*nodearraylist4*/;
+ /* Register variable[10]: Result */
+ variable[10] = TAG_Bool(( variable[9] /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable[9] /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction664___action, LOCATE_parser, 22781); nit_exit(1);}
+ /* Register variable[10]: Local variable */
+ /* Register variable[11]: Result */
+ variable[11] = NEW_ALtExpr_parser_prod___ALtExpr___init_altexpr( variable[8] /*pexprnode2*/, variable[9] /*pexprnode3*/) /*new ALtExpr*/;
+ variable[10] = variable[11];
+ variable[3] = variable[10] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[11]: Result */
+ variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(110)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1360: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction664___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22789, LOCATE_parser___ReduceAction664___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction664].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1361: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction664].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction665___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22793, LOCATE_parser___ReduceAction665___action};
+ val_t variable[12];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[7] /*nodearraylist1*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction665___action, LOCATE_parser, 22801); nit_exit(1);}
+ /* Register variable[9]: Local variable */
+ variable[9] = variable[4] /*nodearraylist4*/;
+ /* Register variable[10]: Result */
+ variable[10] = TAG_Bool(( variable[9] /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable[9] /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction665___action, LOCATE_parser, 22803); nit_exit(1);}
+ /* Register variable[10]: Local variable */
+ /* Register variable[11]: Result */
+ variable[11] = NEW_ALeExpr_parser_prod___ALeExpr___init_aleexpr( variable[8] /*pexprnode2*/, variable[9] /*pexprnode3*/) /*new ALeExpr*/;
+ variable[10] = variable[11];
+ variable[3] = variable[10] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[11]: Result */
+ variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(110)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1362: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction665___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22811, LOCATE_parser___ReduceAction665___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction665].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1363: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction665].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction666___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22815, LOCATE_parser___ReduceAction666___action};
+ val_t variable[12];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[7] /*nodearraylist1*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction666___action, LOCATE_parser, 22823); nit_exit(1);}
+ /* Register variable[9]: Local variable */
+ variable[9] = variable[4] /*nodearraylist4*/;
+ /* Register variable[10]: Result */
+ variable[10] = TAG_Bool(( variable[9] /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable[9] /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction666___action, LOCATE_parser, 22825); nit_exit(1);}
+ /* Register variable[10]: Local variable */
+ /* Register variable[11]: Result */
+ variable[11] = NEW_AGtExpr_parser_prod___AGtExpr___init_agtexpr( variable[8] /*pexprnode2*/, variable[9] /*pexprnode3*/) /*new AGtExpr*/;
+ variable[10] = variable[11];
+ variable[3] = variable[10] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[11]: Result */
+ variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(110)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1364: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction666___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22833, LOCATE_parser___ReduceAction666___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction666].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1365: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction666].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction667___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22837, LOCATE_parser___ReduceAction667___action};
+ val_t variable[12];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[7] /*nodearraylist1*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction667___action, LOCATE_parser, 22845); nit_exit(1);}
+ /* Register variable[9]: Local variable */
+ variable[9] = variable[4] /*nodearraylist4*/;
+ /* Register variable[10]: Result */
+ variable[10] = TAG_Bool(( variable[9] /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable[9] /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction667___action, LOCATE_parser, 22847); nit_exit(1);}
+ /* Register variable[10]: Local variable */
+ /* Register variable[11]: Result */
+ variable[11] = NEW_AGeExpr_parser_prod___AGeExpr___init_ageexpr( variable[8] /*pexprnode2*/, variable[9] /*pexprnode3*/) /*new AGeExpr*/;
+ variable[10] = variable[11];
+ variable[3] = variable[10] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[11]: Result */
+ variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(110)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1366: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction667___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22855, LOCATE_parser___ReduceAction667___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction667].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1367: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction667].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction668___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22859, LOCATE_parser___ReduceAction668___action};
+ val_t variable[12];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[7] /*nodearraylist1*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction668___action, LOCATE_parser, 22867); nit_exit(1);}
+ /* Register variable[9]: Local variable */
+ variable[9] = variable[4] /*nodearraylist4*/;
+ /* Register variable[10]: Result */
+ variable[10] = TAG_Bool(( variable[9] /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable[9] /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction668___action, LOCATE_parser, 22869); nit_exit(1);}
+ /* Register variable[10]: Local variable */
+ /* Register variable[11]: Result */
+ variable[11] = NEW_AStarshipExpr_parser_prod___AStarshipExpr___init_astarshipexpr( variable[8] /*pexprnode2*/, variable[9] /*pexprnode3*/) /*new AStarshipExpr*/;
+ variable[10] = variable[11];
+ variable[3] = variable[10] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[11]: Result */
+ variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(110)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1368: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction668___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22877, LOCATE_parser___ReduceAction668___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction668].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1369: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction668].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction669___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22881, LOCATE_parser___ReduceAction669___action};
+ val_t variable[12];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[7] /*nodearraylist1*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction669___action, LOCATE_parser, 22889); nit_exit(1);}
+ /* Register variable[9]: Local variable */
+ variable[9] = variable[4] /*nodearraylist4*/;
+ /* Register variable[10]: Result */
+ variable[10] = TAG_Bool(( variable[9] /*ptypenode3*/==NIT_NULL) || VAL_ISA( variable[9] /*ptypenode3*/, COLOR_PType, ID_PType)) /*cast PType*/;
+ if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction669___action, LOCATE_parser, 22891); nit_exit(1);}
+ /* Register variable[10]: Local variable */
+ /* Register variable[11]: Result */
+ variable[11] = NEW_AIsaExpr_parser_prod___AIsaExpr___init_aisaexpr( variable[8] /*pexprnode2*/, variable[9] /*ptypenode3*/) /*new AIsaExpr*/;
+ variable[10] = variable[11];
+ variable[3] = variable[10] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[11]: Result */
+ variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(110)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1370: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction669___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22899, LOCATE_parser___ReduceAction669___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction669].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1371: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction669].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction670___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22903, LOCATE_parser___ReduceAction670___action};
+ val_t variable[7];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ variable[5] = variable[4] /*nodearraylist1*/;
+ /* Register variable[6]: Result */
+ variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction670___action, LOCATE_parser, 22908); nit_exit(1);}
+ variable[3] = variable[5] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(111)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1372: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction670___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22912, LOCATE_parser___ReduceAction670___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction670].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1373: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction670].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction671___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22916, LOCATE_parser___ReduceAction671___action};
+ val_t variable[12];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[7] /*nodearraylist1*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction671___action, LOCATE_parser, 22924); nit_exit(1);}
+ /* Register variable[9]: Local variable */
+ variable[9] = variable[4] /*nodearraylist4*/;
+ /* Register variable[10]: Result */
+ variable[10] = TAG_Bool(( variable[9] /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable[9] /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction671___action, LOCATE_parser, 22926); nit_exit(1);}
+ /* Register variable[10]: Local variable */
+ /* Register variable[11]: Result */
+ variable[11] = NEW_APlusExpr_parser_prod___APlusExpr___init_aplusexpr( variable[8] /*pexprnode2*/, variable[9] /*pexprnode3*/) /*new APlusExpr*/;
+ variable[10] = variable[11];
+ variable[3] = variable[10] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[11]: Result */
+ variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(111)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1374: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction671___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22934, LOCATE_parser___ReduceAction671___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction671].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1375: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction671].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction672___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22938, LOCATE_parser___ReduceAction672___action};
+ val_t variable[12];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[7] /*nodearraylist1*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction672___action, LOCATE_parser, 22946); nit_exit(1);}
+ /* Register variable[9]: Local variable */
+ variable[9] = variable[4] /*nodearraylist4*/;
+ /* Register variable[10]: Result */
+ variable[10] = TAG_Bool(( variable[9] /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable[9] /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction672___action, LOCATE_parser, 22948); nit_exit(1);}
+ /* Register variable[10]: Local variable */
+ /* Register variable[11]: Result */
+ variable[11] = NEW_AMinusExpr_parser_prod___AMinusExpr___init_aminusexpr( variable[8] /*pexprnode2*/, variable[9] /*pexprnode3*/) /*new AMinusExpr*/;
+ variable[10] = variable[11];
+ variable[3] = variable[10] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[11]: Result */
+ variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(111)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1376: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction672___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22956, LOCATE_parser___ReduceAction672___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction672].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1377: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction672].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction673___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22960, LOCATE_parser___ReduceAction673___action};
+ val_t variable[7];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ variable[5] = variable[4] /*nodearraylist1*/;
+ /* Register variable[6]: Result */
+ variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction673___action, LOCATE_parser, 22965); nit_exit(1);}
+ variable[3] = variable[5] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(112)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1378: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction673___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22969, LOCATE_parser___ReduceAction673___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction673].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1379: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction673].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction674___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22973, LOCATE_parser___ReduceAction674___action};
+ val_t variable[12];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[7] /*nodearraylist1*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction674___action, LOCATE_parser, 22981); nit_exit(1);}
+ /* Register variable[9]: Local variable */
+ variable[9] = variable[4] /*nodearraylist4*/;
+ /* Register variable[10]: Result */
+ variable[10] = TAG_Bool(( variable[9] /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable[9] /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction674___action, LOCATE_parser, 22983); nit_exit(1);}
+ /* Register variable[10]: Local variable */
+ /* Register variable[11]: Result */
+ variable[11] = NEW_AStarExpr_parser_prod___AStarExpr___init_astarexpr( variable[8] /*pexprnode2*/, variable[9] /*pexprnode3*/) /*new AStarExpr*/;
+ variable[10] = variable[11];
+ variable[3] = variable[10] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[11]: Result */
+ variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(112)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1380: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction674___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 22991, LOCATE_parser___ReduceAction674___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction674].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1381: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction674].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction675___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 22995, LOCATE_parser___ReduceAction675___action};
+ val_t variable[12];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[7] /*nodearraylist1*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction675___action, LOCATE_parser, 23003); nit_exit(1);}
+ /* Register variable[9]: Local variable */
+ variable[9] = variable[4] /*nodearraylist4*/;
+ /* Register variable[10]: Result */
+ variable[10] = TAG_Bool(( variable[9] /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable[9] /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction675___action, LOCATE_parser, 23005); nit_exit(1);}
+ /* Register variable[10]: Local variable */
+ /* Register variable[11]: Result */
+ variable[11] = NEW_ASlashExpr_parser_prod___ASlashExpr___init_aslashexpr( variable[8] /*pexprnode2*/, variable[9] /*pexprnode3*/) /*new ASlashExpr*/;
+ variable[10] = variable[11];
+ variable[3] = variable[10] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[11]: Result */
+ variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(112)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1382: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction675___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23013, LOCATE_parser___ReduceAction675___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction675].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1383: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction675].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction676___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23017, LOCATE_parser___ReduceAction676___action};
+ val_t variable[12];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[7] /*nodearraylist1*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction676___action, LOCATE_parser, 23025); nit_exit(1);}
+ /* Register variable[9]: Local variable */
+ variable[9] = variable[4] /*nodearraylist4*/;
+ /* Register variable[10]: Result */
+ variable[10] = TAG_Bool(( variable[9] /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable[9] /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction676___action, LOCATE_parser, 23027); nit_exit(1);}
+ /* Register variable[10]: Local variable */
+ /* Register variable[11]: Result */
+ variable[11] = NEW_APercentExpr_parser_prod___APercentExpr___init_apercentexpr( variable[8] /*pexprnode2*/, variable[9] /*pexprnode3*/) /*new APercentExpr*/;
+ variable[10] = variable[11];
+ variable[3] = variable[10] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[11]: Result */
+ variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(112)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1384: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction676___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23035, LOCATE_parser___ReduceAction676___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction676].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1385: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction676].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction677___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23039, LOCATE_parser___ReduceAction677___action};
+ val_t variable[7];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ variable[5] = variable[4] /*nodearraylist1*/;
+ /* Register variable[6]: Result */
+ variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction677___action, LOCATE_parser, 23044); nit_exit(1);}
+ variable[3] = variable[5] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(113)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1386: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction677___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23048, LOCATE_parser___ReduceAction677___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction677].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1387: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction677].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction678___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23052, LOCATE_parser___ReduceAction678___action};
+ val_t variable[11];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ variable[7] = variable[6] /*nodearraylist1*/;
+ /* Register variable[8]: Result */
+ variable[8] = TAG_Bool(( variable[7] /*tminusnode2*/==NIT_NULL) || VAL_ISA( variable[7] /*tminusnode2*/, COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
+ if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction678___action, LOCATE_parser, 23059); nit_exit(1);}
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[4] /*nodearraylist3*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction678___action, LOCATE_parser, 23061); nit_exit(1);}
+ /* Register variable[9]: Local variable */
+ /* Register variable[10]: Result */
+ variable[10] = NEW_AUminusExpr_parser_prod___AUminusExpr___init_auminusexpr( variable[7] /*tminusnode2*/, variable[8] /*pexprnode3*/) /*new AUminusExpr*/;
+ variable[9] = variable[10];
+ variable[3] = variable[9] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[10]: Result */
+ variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(113)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1388: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction678___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23069, LOCATE_parser___ReduceAction678___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction678].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1389: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction678].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction679___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23073, LOCATE_parser___ReduceAction679___action};
+ val_t variable[11];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ variable[7] = variable[6] /*nodearraylist1*/;
+ /* Register variable[8]: Result */
+ variable[8] = TAG_Bool(( variable[7] /*tkwoncenode2*/==NIT_NULL) || VAL_ISA( variable[7] /*tkwoncenode2*/, COLOR_TKwonce, ID_TKwonce)) /*cast TKwonce*/;
+ if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction679___action, LOCATE_parser, 23080); nit_exit(1);}
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[4] /*nodearraylist3*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction679___action, LOCATE_parser, 23082); nit_exit(1);}
+ /* Register variable[9]: Local variable */
+ /* Register variable[10]: Result */
+ variable[10] = NEW_AOnceExpr_parser_prod___AOnceExpr___init_aonceexpr( variable[7] /*tkwoncenode2*/, variable[8] /*pexprnode3*/) /*new AOnceExpr*/;
+ variable[9] = variable[10];
+ variable[3] = variable[9] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[10]: Result */
+ variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(113)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1390: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction679___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23090, LOCATE_parser___ReduceAction679___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction679].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1391: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction679].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction680___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23094, LOCATE_parser___ReduceAction680___action};
+ val_t variable[7];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ variable[5] = variable[4] /*nodearraylist1*/;
+ /* Register variable[6]: Result */
+ variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction680___action, LOCATE_parser, 23099); nit_exit(1);}
+ variable[3] = variable[5] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(114)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1392: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction680___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23103, LOCATE_parser___ReduceAction680___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction680].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1393: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction680].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction681___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23107, LOCATE_parser___ReduceAction681___action};
+ val_t variable[14];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ /* Register variable[9]: Result */
+ variable[9] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[8] = variable[9];
+ /* Register variable[9]: Local variable */
+ variable[9] = variable[7] /*nodearraylist1*/;
+ /* Register variable[10]: Result */
+ variable[10] = TAG_Bool(( variable[9] /*tkwnewnode2*/==NIT_NULL) || VAL_ISA( variable[9] /*tkwnewnode2*/, COLOR_TKwnew, ID_TKwnew)) /*cast TKwnew*/;
+ if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction681___action, LOCATE_parser, 23116); nit_exit(1);}
+ /* Register variable[10]: Local variable */
+ variable[10] = variable[5] /*nodearraylist3*/;
+ /* Register variable[11]: Result */
+ variable[11] = TAG_Bool(( variable[10] /*ptypenode3*/==NIT_NULL) || VAL_ISA( variable[10] /*ptypenode3*/, COLOR_PType, ID_PType)) /*cast PType*/;
+ if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction681___action, LOCATE_parser, 23118); nit_exit(1);}
+ /* Register variable[11]: Local variable */
+ variable[11] = variable[4] /*nodearraylist4*/;
+ /* Register variable[12]: Result */
+ variable[12] = TAG_Bool(( variable[11] /*listnode5*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction681___action, LOCATE_parser, 23120); nit_exit(1);}
+ /* Register variable[12]: Result */
+ variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode5*/ == NIT_NULL /*null*/) || (( variable[11] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode5*/)( variable[11] /*listnode5*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[12])) { /*if*/
+ /* Register variable[12]: Result */
+ variable[12] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode6*/)( variable[8] /*listnode6*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[12])) { /*if*/
+ variable[8] = variable[11] /*listnode5*/ /*listnode6=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode6*/)( variable[8] /*listnode6*/, variable[11] /*listnode5*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[12]: Local variable */
+ /* Register variable[13]: Result */
+ variable[13] = NEW_ANewExpr_parser_prod___ANewExpr___init_anewexpr( variable[9] /*tkwnewnode2*/, variable[10] /*ptypenode3*/, NIT_NULL /*null*/, variable[8] /*listnode6*/) /*new ANewExpr*/;
+ variable[12] = variable[13];
+ variable[3] = variable[12] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[13]: Result */
+ variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(114)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1394: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction681___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23137, LOCATE_parser___ReduceAction681___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction681].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1395: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction681].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction682___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23141, LOCATE_parser___ReduceAction682___action};
+ val_t variable[12];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ variable[7] = variable[6] /*nodearraylist1*/;
+ /* Register variable[8]: Result */
+ variable[8] = TAG_Bool(( variable[7] /*tkwissetnode2*/==NIT_NULL) || VAL_ISA( variable[7] /*tkwissetnode2*/, COLOR_TKwisset, ID_TKwisset)) /*cast TKwisset*/;
+ if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction682___action, LOCATE_parser, 23148); nit_exit(1);}
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[5] /*nodearraylist2*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction682___action, LOCATE_parser, 23150); nit_exit(1);}
+ /* Register variable[9]: Local variable */
+ variable[9] = variable[4] /*nodearraylist3*/;
+ /* Register variable[10]: Result */
+ variable[10] = TAG_Bool(( variable[9] /*tattridnode4*/==NIT_NULL) || VAL_ISA( variable[9] /*tattridnode4*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+ if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction682___action, LOCATE_parser, 23152); nit_exit(1);}
+ /* Register variable[10]: Local variable */
+ /* Register variable[11]: Result */
+ variable[11] = NEW_AIssetAttrExpr_parser_prod___AIssetAttrExpr___init_aissetattrexpr( variable[7] /*tkwissetnode2*/, variable[8] /*pexprnode3*/, variable[9] /*tattridnode4*/) /*new AIssetAttrExpr*/;
+ variable[10] = variable[11];
+ variable[3] = variable[10] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[11]: Result */
+ variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(114)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1396: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction682___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23161, LOCATE_parser___ReduceAction682___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction682].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1397: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction682].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction683___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23165, LOCATE_parser___ReduceAction683___action};
+ val_t variable[10];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ variable[6] = variable[5] /*nodearraylist1*/;
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(( variable[6] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[6] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction683___action, LOCATE_parser, 23171); nit_exit(1);}
+ /* Register variable[7]: Local variable */
+ variable[7] = variable[4] /*nodearraylist2*/;
+ /* Register variable[8]: Result */
+ variable[8] = TAG_Bool(( variable[7] /*tattridnode3*/==NIT_NULL) || VAL_ISA( variable[7] /*tattridnode3*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
+ if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction683___action, LOCATE_parser, 23173); nit_exit(1);}
+ /* Register variable[8]: Local variable */
+ /* Register variable[9]: Result */
+ variable[9] = NEW_AAttrExpr_parser_prod___AAttrExpr___init_aattrexpr( variable[6] /*pexprnode2*/, variable[7] /*tattridnode3*/) /*new AAttrExpr*/;
+ variable[8] = variable[9];
+ variable[3] = variable[8] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[9]: Result */
+ variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(115)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1398: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction683___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23181, LOCATE_parser___ReduceAction683___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction683].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1399: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction683].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction684___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23185, LOCATE_parser___ReduceAction684___action};
+ val_t variable[14];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ /* Register variable[9]: Result */
+ variable[9] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[8] = variable[9];
+ /* Register variable[9]: Local variable */
+ variable[9] = variable[6] /*nodearraylist1*/;
+ /* Register variable[10]: Result */
+ variable[10] = TAG_Bool(( variable[9] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[9] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction684___action, LOCATE_parser, 23194); nit_exit(1);}
+ /* Register variable[10]: Local variable */
+ variable[10] = variable[5] /*nodearraylist2*/;
+ /* Register variable[11]: Result */
+ variable[11] = TAG_Bool(( variable[10] /*tidnode3*/==NIT_NULL) || VAL_ISA( variable[10] /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+ if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction684___action, LOCATE_parser, 23196); nit_exit(1);}
+ /* Register variable[11]: Local variable */
+ variable[11] = variable[4] /*nodearraylist3*/;
+ /* Register variable[12]: Result */
+ variable[12] = TAG_Bool(( variable[11] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction684___action, LOCATE_parser, 23198); nit_exit(1);}
+ /* Register variable[12]: Result */
+ variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ == NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)( variable[11] /*listnode4*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[12])) { /*if*/
+ /* Register variable[12]: Result */
+ variable[12] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[12])) { /*if*/
+ variable[7] = variable[11] /*listnode4*/ /*listnode5=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/, variable[11] /*listnode4*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[12]: Local variable */
+ /* Register variable[13]: Result */
+ variable[13] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[9] /*pexprnode2*/, variable[10] /*tidnode3*/, variable[7] /*listnode5*/, variable[8] /*listnode6*/) /*new ACallExpr*/;
+ variable[12] = variable[13];
+ variable[3] = variable[12] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[13]: Result */
+ variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(115)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1400: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction684___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23215, LOCATE_parser___ReduceAction684___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction684].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1401: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction684].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction685___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23219, LOCATE_parser___ReduceAction685___action};
+ val_t variable[11];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ variable[7] = variable[5] /*nodearraylist1*/;
+ /* Register variable[8]: Result */
+ variable[8] = TAG_Bool(( variable[7] /*tkwsupernode3*/==NIT_NULL) || VAL_ISA( variable[7] /*tkwsupernode3*/, COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
+ if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction685___action, LOCATE_parser, 23226); nit_exit(1);}
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[4] /*nodearraylist2*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[8] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction685___action, LOCATE_parser, 23228); nit_exit(1);}
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode4*/ == NIT_NULL /*null*/) || (( variable[8] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*listnode4*/)( variable[8] /*listnode4*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ /* Register variable[9]: Result */
+ variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode5*/)( variable[6] /*listnode5*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ variable[6] = variable[8] /*listnode4*/ /*listnode5=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode5*/)( variable[6] /*listnode5*/, variable[8] /*listnode4*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[9]: Local variable */
+ /* Register variable[10]: Result */
+ variable[10] = NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr( NIT_NULL /*null*/, variable[7] /*tkwsupernode3*/, variable[6] /*listnode5*/) /*new ASuperExpr*/;
+ variable[9] = variable[10];
+ variable[3] = variable[9] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[10]: Result */
+ variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(115)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1402: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction685___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23244, LOCATE_parser___ReduceAction685___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction685].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1403: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction685].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction686___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23248, LOCATE_parser___ReduceAction686___action};
+ val_t variable[13];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[6] /*nodearraylist1*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pqualifiednode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pqualifiednode2*/, COLOR_PQualified, ID_PQualified)) /*cast PQualified*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction686___action, LOCATE_parser, 23256); nit_exit(1);}
+ /* Register variable[9]: Local variable */
+ variable[9] = variable[5] /*nodearraylist2*/;
+ /* Register variable[10]: Result */
+ variable[10] = TAG_Bool(( variable[9] /*tkwsupernode3*/==NIT_NULL) || VAL_ISA( variable[9] /*tkwsupernode3*/, COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
+ if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction686___action, LOCATE_parser, 23258); nit_exit(1);}
+ /* Register variable[10]: Local variable */
+ variable[10] = variable[4] /*nodearraylist3*/;
+ /* Register variable[11]: Result */
+ variable[11] = TAG_Bool(( variable[10] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction686___action, LOCATE_parser, 23260); nit_exit(1);}
+ /* Register variable[11]: Result */
+ variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ == NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)( variable[10] /*listnode4*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[11])) { /*if*/
+ /* Register variable[11]: Result */
+ variable[11] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[11])) { /*if*/
+ variable[7] = variable[10] /*listnode4*/ /*listnode5=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/, variable[10] /*listnode4*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[11]: Local variable */
+ /* Register variable[12]: Result */
+ variable[12] = NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr( variable[8] /*pqualifiednode2*/, variable[9] /*tkwsupernode3*/, variable[7] /*listnode5*/) /*new ASuperExpr*/;
+ variable[11] = variable[12];
+ variable[3] = variable[11] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[12]: Result */
+ variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(115)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1404: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction686___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23276, LOCATE_parser___ReduceAction686___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction686].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1405: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction686].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction687___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23280, LOCATE_parser___ReduceAction687___action};
+ val_t variable[13];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[6] /*nodearraylist1*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction687___action, LOCATE_parser, 23288); nit_exit(1);}
+ /* Register variable[9]: Local variable */
+ variable[9] = variable[5] /*nodearraylist2*/;
+ /* Register variable[10]: Result */
+ variable[10] = TAG_Bool(( variable[9] /*tkwinitnode3*/==NIT_NULL) || VAL_ISA( variable[9] /*tkwinitnode3*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
+ if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction687___action, LOCATE_parser, 23290); nit_exit(1);}
+ /* Register variable[10]: Local variable */
+ variable[10] = variable[4] /*nodearraylist3*/;
+ /* Register variable[11]: Result */
+ variable[11] = TAG_Bool(( variable[10] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction687___action, LOCATE_parser, 23292); nit_exit(1);}
+ /* Register variable[11]: Result */
+ variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ == NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)( variable[10] /*listnode4*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[11])) { /*if*/
+ /* Register variable[11]: Result */
+ variable[11] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[11])) { /*if*/
+ variable[7] = variable[10] /*listnode4*/ /*listnode5=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/, variable[10] /*listnode4*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[11]: Local variable */
+ /* Register variable[12]: Result */
+ variable[12] = NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr( variable[8] /*pexprnode2*/, variable[9] /*tkwinitnode3*/, variable[7] /*listnode5*/) /*new AInitExpr*/;
+ variable[11] = variable[12];
+ variable[3] = variable[11] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[12]: Result */
+ variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(115)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1406: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction687___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23308, LOCATE_parser___ReduceAction687___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction687].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1407: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction687].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction688___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23312, LOCATE_parser___ReduceAction688___action};
+ val_t variable[18];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ /* Register variable[9]: Result */
+ variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[8] = variable[9];
+ /* Register variable[9]: Local variable */
+ /* Register variable[10]: Result */
+ variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[9] = variable[10];
+ /* Register variable[10]: Local variable */
+ /* Register variable[11]: Result */
+ variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[10] = variable[11];
+ /* Register variable[11]: Local variable */
+ /* Register variable[12]: Result */
+ variable[12] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[11] = variable[12];
+ /* Register variable[12]: Local variable */
+ variable[12] = variable[10] /*nodearraylist1*/;
+ /* Register variable[13]: Result */
+ variable[13] = TAG_Bool(( variable[12] /*tkwnewnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*tkwnewnode2*/, COLOR_TKwnew, ID_TKwnew)) /*cast TKwnew*/;
+ if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction688___action, LOCATE_parser, 23324); nit_exit(1);}
+ /* Register variable[13]: Local variable */
+ variable[13] = variable[8] /*nodearraylist3*/;
+ /* Register variable[14]: Result */
+ variable[14] = TAG_Bool(( variable[13] /*ptypenode3*/==NIT_NULL) || VAL_ISA( variable[13] /*ptypenode3*/, COLOR_PType, ID_PType)) /*cast PType*/;
+ if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction688___action, LOCATE_parser, 23326); nit_exit(1);}
+ /* Register variable[14]: Local variable */
+ variable[14] = variable[5] /*nodearraylist6*/;
+ /* Register variable[15]: Result */
+ variable[15] = TAG_Bool(( variable[14] /*tidnode4*/==NIT_NULL) || VAL_ISA( variable[14] /*tidnode4*/, COLOR_TId, ID_TId)) /*cast TId*/;
+ if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction688___action, LOCATE_parser, 23328); nit_exit(1);}
+ /* Register variable[15]: Local variable */
+ variable[15] = variable[4] /*nodearraylist7*/;
+ /* Register variable[16]: Result */
+ variable[16] = TAG_Bool(( variable[15] /*listnode5*/==NIT_NULL) || VAL_ISA( variable[15] /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction688___action, LOCATE_parser, 23330); nit_exit(1);}
+ /* Register variable[16]: Result */
+ variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode5*/ == NIT_NULL /*null*/) || (( variable[15] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*listnode5*/)( variable[15] /*listnode5*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[16])) { /*if*/
+ /* Register variable[16]: Result */
+ variable[16] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode6*/)( variable[11] /*listnode6*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[16])) { /*if*/
+ variable[11] = variable[15] /*listnode5*/ /*listnode6=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode6*/)( variable[11] /*listnode6*/, variable[15] /*listnode5*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[16]: Local variable */
+ /* Register variable[17]: Result */
+ variable[17] = NEW_ANewExpr_parser_prod___ANewExpr___init_anewexpr( variable[12] /*tkwnewnode2*/, variable[13] /*ptypenode3*/, variable[14] /*tidnode4*/, variable[11] /*listnode6*/) /*new ANewExpr*/;
+ variable[16] = variable[17];
+ variable[3] = variable[16] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[17]: Result */
+ variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(115)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1408: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction688___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23347, LOCATE_parser___ReduceAction688___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction688].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1409: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction688].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction689___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23351, LOCATE_parser___ReduceAction689___action};
+ val_t variable[8];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ variable[5] = variable[4] /*nodearraylist1*/;
+ /* Register variable[6]: Result */
+ variable[6] = TAG_Bool(( variable[5] /*tkwselfnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwselfnode2*/, COLOR_TKwself, ID_TKwself)) /*cast TKwself*/;
+ if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction689___action, LOCATE_parser, 23356); nit_exit(1);}
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_ASelfExpr_parser_prod___ASelfExpr___init_aselfexpr( variable[5] /*tkwselfnode2*/) /*new ASelfExpr*/;
+ variable[6] = variable[7];
+ variable[3] = variable[6] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(115)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1410: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction689___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23363, LOCATE_parser___ReduceAction689___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction689].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1411: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction689].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction690___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23367, LOCATE_parser___ReduceAction690___action};
+ val_t variable[8];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ variable[5] = variable[4] /*nodearraylist1*/;
+ /* Register variable[6]: Result */
+ variable[6] = TAG_Bool(( variable[5] /*tkwtruenode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwtruenode2*/, COLOR_TKwtrue, ID_TKwtrue)) /*cast TKwtrue*/;
+ if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction690___action, LOCATE_parser, 23372); nit_exit(1);}
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_ATrueExpr_parser_prod___ATrueExpr___init_atrueexpr( variable[5] /*tkwtruenode2*/) /*new ATrueExpr*/;
+ variable[6] = variable[7];
+ variable[3] = variable[6] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(115)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1412: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction690___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23379, LOCATE_parser___ReduceAction690___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction690].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1413: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction690].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction691___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23383, LOCATE_parser___ReduceAction691___action};
+ val_t variable[8];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ variable[5] = variable[4] /*nodearraylist1*/;
+ /* Register variable[6]: Result */
+ variable[6] = TAG_Bool(( variable[5] /*tkwfalsenode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwfalsenode2*/, COLOR_TKwfalse, ID_TKwfalse)) /*cast TKwfalse*/;
+ if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction691___action, LOCATE_parser, 23388); nit_exit(1);}
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_AFalseExpr_parser_prod___AFalseExpr___init_afalseexpr( variable[5] /*tkwfalsenode2*/) /*new AFalseExpr*/;
+ variable[6] = variable[7];
+ variable[3] = variable[6] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(115)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1414: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction691___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23395, LOCATE_parser___ReduceAction691___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction691].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1415: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction691].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction692___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23399, LOCATE_parser___ReduceAction692___action};
+ val_t variable[8];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ variable[5] = variable[4] /*nodearraylist1*/;
+ /* Register variable[6]: Result */
+ variable[6] = TAG_Bool(( variable[5] /*tkwnullnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwnullnode2*/, COLOR_TKwnull, ID_TKwnull)) /*cast TKwnull*/;
+ if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction692___action, LOCATE_parser, 23404); nit_exit(1);}
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_ANullExpr_parser_prod___ANullExpr___init_anullexpr( variable[5] /*tkwnullnode2*/) /*new ANullExpr*/;
+ variable[6] = variable[7];
+ variable[3] = variable[6] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(115)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1416: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction692___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23411, LOCATE_parser___ReduceAction692___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction692].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1417: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction692].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction693___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23415, LOCATE_parser___ReduceAction693___action};
+ val_t variable[8];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ variable[5] = variable[4] /*nodearraylist1*/;
+ /* Register variable[6]: Result */
+ variable[6] = TAG_Bool(( variable[5] /*tnumbernode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tnumbernode2*/, COLOR_TNumber, ID_TNumber)) /*cast TNumber*/;
+ if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction693___action, LOCATE_parser, 23420); nit_exit(1);}
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_AIntExpr_parser_prod___AIntExpr___init_aintexpr( variable[5] /*tnumbernode2*/) /*new AIntExpr*/;
+ variable[6] = variable[7];
+ variable[3] = variable[6] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(115)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1418: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction693___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23427, LOCATE_parser___ReduceAction693___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction693].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1419: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction693].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction694___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23431, LOCATE_parser___ReduceAction694___action};
+ val_t variable[8];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ variable[5] = variable[4] /*nodearraylist1*/;
+ /* Register variable[6]: Result */
+ variable[6] = TAG_Bool(( variable[5] /*tfloatnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tfloatnode2*/, COLOR_TFloat, ID_TFloat)) /*cast TFloat*/;
+ if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction694___action, LOCATE_parser, 23436); nit_exit(1);}
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_AFloatExpr_parser_prod___AFloatExpr___init_afloatexpr( variable[5] /*tfloatnode2*/) /*new AFloatExpr*/;
+ variable[6] = variable[7];
+ variable[3] = variable[6] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(115)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1420: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction694___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23443, LOCATE_parser___ReduceAction694___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction694].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1421: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction694].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction695___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23447, LOCATE_parser___ReduceAction695___action};
+ val_t variable[8];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ variable[5] = variable[4] /*nodearraylist1*/;
+ /* Register variable[6]: Result */
+ variable[6] = TAG_Bool(( variable[5] /*tcharnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tcharnode2*/, COLOR_TChar, ID_TChar)) /*cast TChar*/;
+ if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction695___action, LOCATE_parser, 23452); nit_exit(1);}
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_ACharExpr_parser_prod___ACharExpr___init_acharexpr( variable[5] /*tcharnode2*/) /*new ACharExpr*/;
+ variable[6] = variable[7];
+ variable[3] = variable[6] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(115)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1422: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction695___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23459, LOCATE_parser___ReduceAction695___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction695].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1423: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction695].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction696___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23463, LOCATE_parser___ReduceAction696___action};
+ val_t variable[8];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ variable[5] = variable[4] /*nodearraylist1*/;
+ /* Register variable[6]: Result */
+ variable[6] = TAG_Bool(( variable[5] /*tstringnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tstringnode2*/, COLOR_TString, ID_TString)) /*cast TString*/;
+ if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction696___action, LOCATE_parser, 23468); nit_exit(1);}
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_AStringExpr_parser_prod___AStringExpr___init_astringexpr( variable[5] /*tstringnode2*/) /*new AStringExpr*/;
+ variable[6] = variable[7];
+ variable[3] = variable[6] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(115)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1424: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction696___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23475, LOCATE_parser___ReduceAction696___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction696].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1425: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction696].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction697___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23479, LOCATE_parser___ReduceAction697___action};
+ val_t variable[7];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ variable[5] = variable[4] /*nodearraylist1*/;
+ /* Register variable[6]: Result */
+ variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction697___action, LOCATE_parser, 23484); nit_exit(1);}
+ variable[3] = variable[5] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(115)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1426: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction697___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23488, LOCATE_parser___ReduceAction697___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction697].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1427: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction697].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction698___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23492, LOCATE_parser___ReduceAction698___action};
+ val_t variable[19];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ /* Register variable[9]: Result */
+ variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[8] = variable[9];
+ /* Register variable[9]: Local variable */
+ /* Register variable[10]: Result */
+ variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[9] = variable[10];
+ /* Register variable[10]: Local variable */
+ /* Register variable[11]: Result */
+ variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[10] = variable[11];
+ /* Register variable[11]: Local variable */
+ /* Register variable[12]: Result */
+ variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[11] = variable[12];
+ /* Register variable[12]: Local variable */
+ /* Register variable[13]: Result */
+ variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[12] = variable[13];
+ /* Register variable[13]: Local variable */
+ /* Register variable[14]: Result */
+ variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[13] = variable[14];
+ /* Register variable[14]: Local variable */
+ variable[14] = variable[13] /*nodearraylist1*/;
+ /* Register variable[15]: Result */
+ variable[15] = TAG_Bool(( variable[14] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[14] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction698___action, LOCATE_parser, 23506); nit_exit(1);}
+ /* Register variable[15]: Local variable */
+ variable[15] = variable[10] /*nodearraylist4*/;
+ /* Register variable[16]: Result */
+ variable[16] = TAG_Bool(( variable[15] /*tkwasnode3*/==NIT_NULL) || VAL_ISA( variable[15] /*tkwasnode3*/, COLOR_TKwas, ID_TKwas)) /*cast TKwas*/;
+ if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction698___action, LOCATE_parser, 23508); nit_exit(1);}
+ /* Register variable[16]: Local variable */
+ variable[16] = variable[6] /*nodearraylist8*/;
+ /* Register variable[17]: Result */
+ variable[17] = TAG_Bool(( variable[16] /*ptypenode4*/==NIT_NULL) || VAL_ISA( variable[16] /*ptypenode4*/, COLOR_PType, ID_PType)) /*cast PType*/;
+ if (!UNTAG_Bool(variable[17])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction698___action, LOCATE_parser, 23510); nit_exit(1);}
+ /* Register variable[17]: Local variable */
+ /* Register variable[18]: Result */
+ variable[18] = NEW_AAsCastExpr_parser_prod___AAsCastExpr___init_aascastexpr( variable[14] /*pexprnode2*/, variable[15] /*tkwasnode3*/, variable[16] /*ptypenode4*/) /*new AAsCastExpr*/;
+ variable[17] = variable[18];
+ variable[3] = variable[17] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[18]: Result */
+ variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(115)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1428: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction698___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23519, LOCATE_parser___ReduceAction698___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction698].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1429: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction698].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction699___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23523, LOCATE_parser___ReduceAction699___action};
+ val_t variable[22];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ /* Register variable[9]: Result */
+ variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[8] = variable[9];
+ /* Register variable[9]: Local variable */
+ /* Register variable[10]: Result */
+ variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[9] = variable[10];
+ /* Register variable[10]: Local variable */
+ /* Register variable[11]: Result */
+ variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[10] = variable[11];
+ /* Register variable[11]: Local variable */
+ /* Register variable[12]: Result */
+ variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[11] = variable[12];
+ /* Register variable[12]: Local variable */
+ /* Register variable[13]: Result */
+ variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[12] = variable[13];
+ /* Register variable[13]: Local variable */
+ /* Register variable[14]: Result */
+ variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[13] = variable[14];
+ /* Register variable[14]: Local variable */
+ /* Register variable[15]: Result */
+ variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[14] = variable[15];
+ /* Register variable[15]: Local variable */
+ /* Register variable[16]: Result */
+ variable[16] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[15] = variable[16];
+ /* Register variable[16]: Local variable */
+ variable[16] = variable[15] /*nodearraylist1*/;
+ /* Register variable[17]: Result */
+ variable[17] = TAG_Bool(( variable[16] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[16] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[17])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction699___action, LOCATE_parser, 23539); nit_exit(1);}
+ /* Register variable[17]: Local variable */
+ variable[17] = variable[12] /*nodearraylist4*/;
+ /* Register variable[18]: Result */
+ variable[18] = TAG_Bool(( variable[17] /*tkwasnode3*/==NIT_NULL) || VAL_ISA( variable[17] /*tkwasnode3*/, COLOR_TKwas, ID_TKwas)) /*cast TKwas*/;
+ if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction699___action, LOCATE_parser, 23541); nit_exit(1);}
+ /* Register variable[18]: Local variable */
+ variable[18] = variable[8] /*nodearraylist8*/;
+ /* Register variable[19]: Result */
+ variable[19] = TAG_Bool(( variable[18] /*tkwnotnode4*/==NIT_NULL) || VAL_ISA( variable[18] /*tkwnotnode4*/, COLOR_TKwnot, ID_TKwnot)) /*cast TKwnot*/;
+ if (!UNTAG_Bool(variable[19])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction699___action, LOCATE_parser, 23543); nit_exit(1);}
+ /* Register variable[19]: Local variable */
+ variable[19] = variable[6] /*nodearraylist10*/;
+ /* Register variable[20]: Result */
+ variable[20] = TAG_Bool(( variable[19] /*tkwnullnode5*/==NIT_NULL) || VAL_ISA( variable[19] /*tkwnullnode5*/, COLOR_TKwnull, ID_TKwnull)) /*cast TKwnull*/;
+ if (!UNTAG_Bool(variable[20])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction699___action, LOCATE_parser, 23545); nit_exit(1);}
+ /* Register variable[20]: Local variable */
+ /* Register variable[21]: Result */
+ variable[21] = NEW_AAsNotnullExpr_parser_prod___AAsNotnullExpr___init_aasnotnullexpr( variable[16] /*pexprnode2*/, variable[17] /*tkwasnode3*/, variable[18] /*tkwnotnode4*/, variable[19] /*tkwnullnode5*/) /*new AAsNotnullExpr*/;
+ variable[20] = variable[21];
+ variable[3] = variable[20] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[21]: Result */
+ variable[21] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(115)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[21], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1430: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction699___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23555, LOCATE_parser___ReduceAction699___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction699].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1431: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction699].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction700___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23559, LOCATE_parser___ReduceAction700___action};
+ val_t variable[9];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ variable[7] = variable[6] /*nodearraylist1*/;
+ /* Register variable[8]: Result */
+ variable[8] = TAG_Bool(( variable[7] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction700___action, LOCATE_parser, 23566); nit_exit(1);}
+ variable[3] = variable[7] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(116)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1432: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction700___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23570, LOCATE_parser___ReduceAction700___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction700].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1433: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction700].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction701___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23574, LOCATE_parser___ReduceAction701___action};
+ val_t variable[6];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr() /*new AImplicitSelfExpr*/;
+ variable[4] = variable[5];
+ variable[3] = variable[4] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(116)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[5], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1434: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction701___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23582, LOCATE_parser___ReduceAction701___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction701].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1435: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction701].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction702___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23586, LOCATE_parser___ReduceAction702___action};
+ val_t variable[7];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ variable[5] = variable[4] /*nodearraylist1*/;
+ /* Register variable[6]: Result */
+ variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction702___action, LOCATE_parser, 23591); nit_exit(1);}
+ variable[3] = variable[5] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(117)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1436: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction702___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23595, LOCATE_parser___ReduceAction702___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction702].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1437: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction702].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction703___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23599, LOCATE_parser___ReduceAction703___action};
+ val_t variable[18];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ /* Register variable[9]: Result */
+ variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[8] = variable[9];
+ /* Register variable[9]: Local variable */
+ /* Register variable[10]: Result */
+ variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[9] = variable[10];
+ /* Register variable[10]: Local variable */
+ /* Register variable[11]: Result */
+ variable[11] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[10] = variable[11];
+ /* Register variable[11]: Local variable */
+ /* Register variable[12]: Result */
+ variable[12] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[11] = variable[12];
+ /* Register variable[12]: Local variable */
+ variable[12] = variable[9] /*nodearraylist1*/;
+ /* Register variable[13]: Result */
+ variable[13] = TAG_Bool(( variable[12] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction703___action, LOCATE_parser, 23611); nit_exit(1);}
+ /* Register variable[13]: Local variable */
+ variable[13] = variable[6] /*nodearraylist4*/;
+ /* Register variable[14]: Result */
+ variable[14] = TAG_Bool(( variable[13] /*tidnode3*/==NIT_NULL) || VAL_ISA( variable[13] /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+ if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction703___action, LOCATE_parser, 23613); nit_exit(1);}
+ /* Register variable[14]: Local variable */
+ variable[14] = variable[5] /*nodearraylist5*/;
+ /* Register variable[15]: Result */
+ variable[15] = TAG_Bool(( variable[14] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[14] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction703___action, LOCATE_parser, 23615); nit_exit(1);}
+ /* Register variable[15]: Result */
+ variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ == NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)( variable[14] /*listnode4*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[15])) { /*if*/
+ /* Register variable[15]: Result */
+ variable[15] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode5*/)( variable[10] /*listnode5*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[15])) { /*if*/
+ variable[10] = variable[14] /*listnode4*/ /*listnode5=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode5*/)( variable[10] /*listnode5*/, variable[14] /*listnode4*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[15]: Local variable */
+ variable[15] = variable[4] /*nodearraylist6*/;
+ /* Register variable[16]: Result */
+ variable[16] = TAG_Bool(( variable[15] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[15] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction703___action, LOCATE_parser, 23624); nit_exit(1);}
+ /* Register variable[16]: Result */
+ variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode6*/ == NIT_NULL /*null*/) || (( variable[15] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)( variable[15] /*listnode6*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[16])) { /*if*/
+ /* Register variable[16]: Result */
+ variable[16] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode7*/)( variable[11] /*listnode7*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[16])) { /*if*/
+ variable[11] = variable[15] /*listnode6*/ /*listnode7=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode7*/)( variable[11] /*listnode7*/, variable[15] /*listnode6*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[16]: Local variable */
+ /* Register variable[17]: Result */
+ variable[17] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[12] /*pexprnode2*/, variable[13] /*tidnode3*/, variable[10] /*listnode5*/, variable[11] /*listnode7*/) /*new ACallExpr*/;
+ variable[16] = variable[17];
+ variable[3] = variable[16] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[17]: Result */
+ variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(117)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1438: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction703___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23641, LOCATE_parser___ReduceAction703___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction703].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1439: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction703].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction704___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23645, LOCATE_parser___ReduceAction704___action};
+ val_t variable[15];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ /* Register variable[9]: Result */
+ variable[9] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[8] = variable[9];
+ /* Register variable[9]: Local variable */
+ /* Register variable[10]: Result */
+ variable[10] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr() /*new AImplicitSelfExpr*/;
+ variable[9] = variable[10];
+ /* Register variable[10]: Local variable */
+ variable[10] = variable[6] /*nodearraylist1*/;
+ /* Register variable[11]: Result */
+ variable[11] = TAG_Bool(( variable[10] /*tidnode3*/==NIT_NULL) || VAL_ISA( variable[10] /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+ if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction704___action, LOCATE_parser, 23656); nit_exit(1);}
+ /* Register variable[11]: Local variable */
+ variable[11] = variable[5] /*nodearraylist2*/;
+ /* Register variable[12]: Result */
+ variable[12] = TAG_Bool(( variable[11] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction704___action, LOCATE_parser, 23658); nit_exit(1);}
+ /* Register variable[12]: Result */
+ variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ == NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)( variable[11] /*listnode4*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[12])) { /*if*/
+ /* Register variable[12]: Result */
+ variable[12] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[12])) { /*if*/
+ variable[7] = variable[11] /*listnode4*/ /*listnode5=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/, variable[11] /*listnode4*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[12]: Local variable */
+ variable[12] = variable[4] /*nodearraylist3*/;
+ /* Register variable[13]: Result */
+ variable[13] = TAG_Bool(( variable[12] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction704___action, LOCATE_parser, 23667); nit_exit(1);}
+ /* Register variable[13]: Result */
+ variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ == NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)( variable[12] /*listnode6*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[13])) { /*if*/
+ /* Register variable[13]: Result */
+ variable[13] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode7*/)( variable[8] /*listnode7*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[13])) { /*if*/
+ variable[8] = variable[12] /*listnode6*/ /*listnode7=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode7*/)( variable[8] /*listnode7*/, variable[12] /*listnode6*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[13]: Local variable */
+ /* Register variable[14]: Result */
+ variable[14] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[9] /*pexprnode2*/, variable[10] /*tidnode3*/, variable[7] /*listnode5*/, variable[8] /*listnode7*/) /*new ACallExpr*/;
+ variable[13] = variable[14];
+ variable[3] = variable[13] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[14]: Result */
+ variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(117)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1440: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction704___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23684, LOCATE_parser___ReduceAction704___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction704].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1441: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction704].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction705___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23688, LOCATE_parser___ReduceAction705___action};
+ val_t variable[7];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ variable[5] = variable[4] /*nodearraylist1*/;
+ /* Register variable[6]: Result */
+ variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction705___action, LOCATE_parser, 23693); nit_exit(1);}
+ variable[3] = variable[5] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(118)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1442: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction705___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23697, LOCATE_parser___ReduceAction705___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction705].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1443: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction705].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction706___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23701, LOCATE_parser___ReduceAction706___action};
+ val_t variable[18];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ /* Register variable[9]: Result */
+ variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[8] = variable[9];
+ /* Register variable[9]: Local variable */
+ /* Register variable[10]: Result */
+ variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[9] = variable[10];
+ /* Register variable[10]: Local variable */
+ /* Register variable[11]: Result */
+ variable[11] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[10] = variable[11];
+ /* Register variable[11]: Local variable */
+ /* Register variable[12]: Result */
+ variable[12] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[11] = variable[12];
+ /* Register variable[12]: Local variable */
+ variable[12] = variable[9] /*nodearraylist1*/;
+ /* Register variable[13]: Result */
+ variable[13] = TAG_Bool(( variable[12] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction706___action, LOCATE_parser, 23713); nit_exit(1);}
+ /* Register variable[13]: Local variable */
+ variable[13] = variable[6] /*nodearraylist4*/;
+ /* Register variable[14]: Result */
+ variable[14] = TAG_Bool(( variable[13] /*tidnode3*/==NIT_NULL) || VAL_ISA( variable[13] /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+ if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction706___action, LOCATE_parser, 23715); nit_exit(1);}
+ /* Register variable[14]: Local variable */
+ variable[14] = variable[5] /*nodearraylist5*/;
+ /* Register variable[15]: Result */
+ variable[15] = TAG_Bool(( variable[14] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[14] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction706___action, LOCATE_parser, 23717); nit_exit(1);}
+ /* Register variable[15]: Result */
+ variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ == NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)( variable[14] /*listnode4*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[15])) { /*if*/
+ /* Register variable[15]: Result */
+ variable[15] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode5*/)( variable[10] /*listnode5*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[15])) { /*if*/
+ variable[10] = variable[14] /*listnode4*/ /*listnode5=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode5*/)( variable[10] /*listnode5*/, variable[14] /*listnode4*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[15]: Local variable */
+ variable[15] = variable[4] /*nodearraylist6*/;
+ /* Register variable[16]: Result */
+ variable[16] = TAG_Bool(( variable[15] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[15] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction706___action, LOCATE_parser, 23726); nit_exit(1);}
+ /* Register variable[16]: Result */
+ variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode6*/ == NIT_NULL /*null*/) || (( variable[15] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)( variable[15] /*listnode6*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[16])) { /*if*/
+ /* Register variable[16]: Result */
+ variable[16] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode7*/)( variable[11] /*listnode7*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[16])) { /*if*/
+ variable[11] = variable[15] /*listnode6*/ /*listnode7=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode7*/)( variable[11] /*listnode7*/, variable[15] /*listnode6*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[16]: Local variable */
+ /* Register variable[17]: Result */
+ variable[17] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[12] /*pexprnode2*/, variable[13] /*tidnode3*/, variable[10] /*listnode5*/, variable[11] /*listnode7*/) /*new ACallExpr*/;
+ variable[16] = variable[17];
+ variable[3] = variable[16] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[17]: Result */
+ variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(118)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1444: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction706___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23743, LOCATE_parser___ReduceAction706___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction706].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1445: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction706].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction707___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23747, LOCATE_parser___ReduceAction707___action};
+ val_t variable[15];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ /* Register variable[8]: Result */
+ variable[8] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[7] = variable[8];
+ /* Register variable[8]: Local variable */
+ /* Register variable[9]: Result */
+ variable[9] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[8] = variable[9];
+ /* Register variable[9]: Local variable */
+ /* Register variable[10]: Result */
+ variable[10] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr() /*new AImplicitSelfExpr*/;
+ variable[9] = variable[10];
+ /* Register variable[10]: Local variable */
+ variable[10] = variable[6] /*nodearraylist1*/;
+ /* Register variable[11]: Result */
+ variable[11] = TAG_Bool(( variable[10] /*tidnode3*/==NIT_NULL) || VAL_ISA( variable[10] /*tidnode3*/, COLOR_TId, ID_TId)) /*cast TId*/;
+ if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction707___action, LOCATE_parser, 23758); nit_exit(1);}
+ /* Register variable[11]: Local variable */
+ variable[11] = variable[5] /*nodearraylist2*/;
+ /* Register variable[12]: Result */
+ variable[12] = TAG_Bool(( variable[11] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction707___action, LOCATE_parser, 23760); nit_exit(1);}
+ /* Register variable[12]: Result */
+ variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ == NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)( variable[11] /*listnode4*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[12])) { /*if*/
+ /* Register variable[12]: Result */
+ variable[12] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[12])) { /*if*/
+ variable[7] = variable[11] /*listnode4*/ /*listnode5=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/, variable[11] /*listnode4*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[12]: Local variable */
+ variable[12] = variable[4] /*nodearraylist3*/;
+ /* Register variable[13]: Result */
+ variable[13] = TAG_Bool(( variable[12] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction707___action, LOCATE_parser, 23769); nit_exit(1);}
+ /* Register variable[13]: Result */
+ variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ == NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)( variable[12] /*listnode6*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[13])) { /*if*/
+ /* Register variable[13]: Result */
+ variable[13] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode7*/)( variable[8] /*listnode7*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[13])) { /*if*/
+ variable[8] = variable[12] /*listnode6*/ /*listnode7=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode7*/)( variable[8] /*listnode7*/, variable[12] /*listnode6*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[13]: Local variable */
+ /* Register variable[14]: Result */
+ variable[14] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[9] /*pexprnode2*/, variable[10] /*tidnode3*/, variable[7] /*listnode5*/, variable[8] /*listnode7*/) /*new ACallExpr*/;
+ variable[13] = variable[14];
+ variable[3] = variable[13] /*pexprnode1*/ /*node_list=*/;
+ /* Register variable[14]: Result */
+ variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(118)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1446: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction707___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23786, LOCATE_parser___ReduceAction707___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction707].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1447: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction707].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction708___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23790, LOCATE_parser___ReduceAction708___action};
+ val_t variable[8];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ variable[6] = variable[4] /*nodearraylist1*/;
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(( variable[6] /*pimportnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*pimportnode1*/, COLOR_PImport, ID_PImport)) /*cast PImport*/;
+ if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction708___action, LOCATE_parser, 23796); nit_exit(1);}
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pimportnode1*/ == NIT_NULL /*null*/) || (( variable[6] /*pimportnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*pimportnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pimportnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*pimportnode1*/)( variable[6] /*pimportnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[7])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/, variable[6] /*pimportnode1*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[5] /*listnode2*/ /*node_list=*/;
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(119)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1448: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction708___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23803, LOCATE_parser___ReduceAction708___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction708].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1449: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction708].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction709___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23807, LOCATE_parser___ReduceAction709___action};
+ val_t variable[10];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ variable[7] = variable[5] /*nodearraylist1*/;
+ /* Register variable[8]: Result */
+ variable[8] = TAG_Bool(( variable[7] /*listnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction709___action, LOCATE_parser, 23814); nit_exit(1);}
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[4] /*nodearraylist2*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pimportnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pimportnode2*/, COLOR_PImport, ID_PImport)) /*cast PImport*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction709___action, LOCATE_parser, 23816); nit_exit(1);}
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ == NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ /* Register variable[9]: Result */
+ variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ variable[6] = variable[7] /*listnode1*/ /*listnode3=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pimportnode2*/ == NIT_NULL /*null*/) || (( variable[8] /*pimportnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*pimportnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pimportnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*pimportnode2*/)( variable[8] /*pimportnode2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[8] /*pimportnode2*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[6] /*listnode3*/ /*node_list=*/;
+ /* Register variable[9]: Result */
+ variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(119)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1450: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction709___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23830, LOCATE_parser___ReduceAction709___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction709].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1451: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction709].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction710___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23834, LOCATE_parser___ReduceAction710___action};
+ val_t variable[8];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ variable[6] = variable[4] /*nodearraylist1*/;
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(( variable[6] /*pclassdefnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*pclassdefnode1*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+ if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction710___action, LOCATE_parser, 23840); nit_exit(1);}
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pclassdefnode1*/ == NIT_NULL /*null*/) || (( variable[6] /*pclassdefnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*pclassdefnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pclassdefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*pclassdefnode1*/)( variable[6] /*pclassdefnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[7])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/, variable[6] /*pclassdefnode1*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[5] /*listnode2*/ /*node_list=*/;
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(120)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1452: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction710___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23847, LOCATE_parser___ReduceAction710___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction710].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1453: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction710].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction711___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23851, LOCATE_parser___ReduceAction711___action};
+ val_t variable[10];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ variable[7] = variable[5] /*nodearraylist1*/;
+ /* Register variable[8]: Result */
+ variable[8] = TAG_Bool(( variable[7] /*listnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction711___action, LOCATE_parser, 23858); nit_exit(1);}
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[4] /*nodearraylist2*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pclassdefnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pclassdefnode2*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction711___action, LOCATE_parser, 23860); nit_exit(1);}
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ == NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ /* Register variable[9]: Result */
+ variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ variable[6] = variable[7] /*listnode1*/ /*listnode3=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pclassdefnode2*/ == NIT_NULL /*null*/) || (( variable[8] /*pclassdefnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*pclassdefnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pclassdefnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*pclassdefnode2*/)( variable[8] /*pclassdefnode2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[8] /*pclassdefnode2*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[6] /*listnode3*/ /*node_list=*/;
+ /* Register variable[9]: Result */
+ variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(120)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1454: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction711___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23874, LOCATE_parser___ReduceAction711___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction711].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1455: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction711].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction712___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23878, LOCATE_parser___ReduceAction712___action};
+ val_t variable[8];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ variable[6] = variable[4] /*nodearraylist1*/;
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(( variable[6] /*psuperclassnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*psuperclassnode1*/, COLOR_PSuperclass, ID_PSuperclass)) /*cast PSuperclass*/;
+ if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction712___action, LOCATE_parser, 23884); nit_exit(1);}
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*psuperclassnode1*/ == NIT_NULL /*null*/) || (( variable[6] /*psuperclassnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*psuperclassnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*psuperclassnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*psuperclassnode1*/)( variable[6] /*psuperclassnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[7])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/, variable[6] /*psuperclassnode1*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[5] /*listnode2*/ /*node_list=*/;
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(121)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1456: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction712___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23891, LOCATE_parser___ReduceAction712___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction712].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1457: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction712].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction713___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23895, LOCATE_parser___ReduceAction713___action};
+ val_t variable[10];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ variable[7] = variable[5] /*nodearraylist1*/;
+ /* Register variable[8]: Result */
+ variable[8] = TAG_Bool(( variable[7] /*listnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction713___action, LOCATE_parser, 23902); nit_exit(1);}
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[4] /*nodearraylist2*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*psuperclassnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*psuperclassnode2*/, COLOR_PSuperclass, ID_PSuperclass)) /*cast PSuperclass*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction713___action, LOCATE_parser, 23904); nit_exit(1);}
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ == NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ /* Register variable[9]: Result */
+ variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ variable[6] = variable[7] /*listnode1*/ /*listnode3=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*psuperclassnode2*/ == NIT_NULL /*null*/) || (( variable[8] /*psuperclassnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*psuperclassnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*psuperclassnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*psuperclassnode2*/)( variable[8] /*psuperclassnode2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[8] /*psuperclassnode2*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[6] /*listnode3*/ /*node_list=*/;
+ /* Register variable[9]: Result */
+ variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(121)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1458: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction713___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23918, LOCATE_parser___ReduceAction713___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction713].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1459: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction713].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction714___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23922, LOCATE_parser___ReduceAction714___action};
+ val_t variable[8];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ variable[6] = variable[4] /*nodearraylist1*/;
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(( variable[6] /*pformaldefnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*pformaldefnode1*/, COLOR_PFormaldef, ID_PFormaldef)) /*cast PFormaldef*/;
+ if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction714___action, LOCATE_parser, 23928); nit_exit(1);}
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pformaldefnode1*/ == NIT_NULL /*null*/) || (( variable[6] /*pformaldefnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*pformaldefnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pformaldefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*pformaldefnode1*/)( variable[6] /*pformaldefnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[7])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/, variable[6] /*pformaldefnode1*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[5] /*listnode2*/ /*node_list=*/;
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(122)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1460: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction714___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23935, LOCATE_parser___ReduceAction714___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction714].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1461: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction714].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction715___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23939, LOCATE_parser___ReduceAction715___action};
+ val_t variable[10];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ variable[7] = variable[5] /*nodearraylist1*/;
+ /* Register variable[8]: Result */
+ variable[8] = TAG_Bool(( variable[7] /*listnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction715___action, LOCATE_parser, 23946); nit_exit(1);}
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[4] /*nodearraylist2*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pformaldefnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pformaldefnode2*/, COLOR_PFormaldef, ID_PFormaldef)) /*cast PFormaldef*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction715___action, LOCATE_parser, 23948); nit_exit(1);}
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ == NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ /* Register variable[9]: Result */
+ variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ variable[6] = variable[7] /*listnode1*/ /*listnode3=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pformaldefnode2*/ == NIT_NULL /*null*/) || (( variable[8] /*pformaldefnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*pformaldefnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pformaldefnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*pformaldefnode2*/)( variable[8] /*pformaldefnode2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[8] /*pformaldefnode2*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[6] /*listnode3*/ /*node_list=*/;
+ /* Register variable[9]: Result */
+ variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(122)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1462: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction715___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23962, LOCATE_parser___ReduceAction715___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction715].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1463: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction715].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction716___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23966, LOCATE_parser___ReduceAction716___action};
+ val_t variable[8];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ variable[6] = variable[4] /*nodearraylist1*/;
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(( variable[6] /*ppropdefnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*ppropdefnode1*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+ if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction716___action, LOCATE_parser, 23972); nit_exit(1);}
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*ppropdefnode1*/ == NIT_NULL /*null*/) || (( variable[6] /*ppropdefnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*ppropdefnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*ppropdefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*ppropdefnode1*/)( variable[6] /*ppropdefnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[7])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/, variable[6] /*ppropdefnode1*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[5] /*listnode2*/ /*node_list=*/;
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(123)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1464: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction716___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 23979, LOCATE_parser___ReduceAction716___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction716].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1465: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction716].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction717___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 23983, LOCATE_parser___ReduceAction717___action};
+ val_t variable[10];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ variable[7] = variable[5] /*nodearraylist1*/;
+ /* Register variable[8]: Result */
+ variable[8] = TAG_Bool(( variable[7] /*listnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction717___action, LOCATE_parser, 23990); nit_exit(1);}
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[4] /*nodearraylist2*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*ppropdefnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*ppropdefnode2*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction717___action, LOCATE_parser, 23992); nit_exit(1);}
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ == NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ /* Register variable[9]: Result */
+ variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ variable[6] = variable[7] /*listnode1*/ /*listnode3=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*ppropdefnode2*/ == NIT_NULL /*null*/) || (( variable[8] /*ppropdefnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*ppropdefnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*ppropdefnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*ppropdefnode2*/)( variable[8] /*ppropdefnode2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[8] /*ppropdefnode2*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[6] /*listnode3*/ /*node_list=*/;
+ /* Register variable[9]: Result */
+ variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(123)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1466: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction717___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 24006, LOCATE_parser___ReduceAction717___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction717].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1467: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction717].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction718___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 24010, LOCATE_parser___ReduceAction718___action};
+ val_t variable[8];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ variable[6] = variable[4] /*nodearraylist1*/;
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(( variable[6] /*pparamnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*pparamnode1*/, COLOR_PParam, ID_PParam)) /*cast PParam*/;
+ if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction718___action, LOCATE_parser, 24016); nit_exit(1);}
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pparamnode1*/ == NIT_NULL /*null*/) || (( variable[6] /*pparamnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*pparamnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pparamnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*pparamnode1*/)( variable[6] /*pparamnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[7])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/, variable[6] /*pparamnode1*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[5] /*listnode2*/ /*node_list=*/;
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(124)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1468: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction718___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 24023, LOCATE_parser___ReduceAction718___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction718].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1469: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction718].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction719___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 24027, LOCATE_parser___ReduceAction719___action};
+ val_t variable[10];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ variable[7] = variable[5] /*nodearraylist1*/;
+ /* Register variable[8]: Result */
+ variable[8] = TAG_Bool(( variable[7] /*listnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction719___action, LOCATE_parser, 24034); nit_exit(1);}
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[4] /*nodearraylist2*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pparamnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pparamnode2*/, COLOR_PParam, ID_PParam)) /*cast PParam*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction719___action, LOCATE_parser, 24036); nit_exit(1);}
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ == NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ /* Register variable[9]: Result */
+ variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ variable[6] = variable[7] /*listnode1*/ /*listnode3=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pparamnode2*/ == NIT_NULL /*null*/) || (( variable[8] /*pparamnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*pparamnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pparamnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*pparamnode2*/)( variable[8] /*pparamnode2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[8] /*pparamnode2*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[6] /*listnode3*/ /*node_list=*/;
+ /* Register variable[9]: Result */
+ variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(124)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1470: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction719___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 24050, LOCATE_parser___ReduceAction719___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction719].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1471: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction719].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction720___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 24054, LOCATE_parser___ReduceAction720___action};
+ val_t variable[8];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ variable[6] = variable[4] /*nodearraylist1*/;
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(( variable[6] /*pclosuredeclnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*pclosuredeclnode1*/, COLOR_PClosureDecl, ID_PClosureDecl)) /*cast PClosureDecl*/;
+ if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction720___action, LOCATE_parser, 24060); nit_exit(1);}
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pclosuredeclnode1*/ == NIT_NULL /*null*/) || (( variable[6] /*pclosuredeclnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*pclosuredeclnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pclosuredeclnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*pclosuredeclnode1*/)( variable[6] /*pclosuredeclnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[7])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/, variable[6] /*pclosuredeclnode1*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[5] /*listnode2*/ /*node_list=*/;
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(125)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1472: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction720___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 24067, LOCATE_parser___ReduceAction720___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction720].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1473: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction720].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction721___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 24071, LOCATE_parser___ReduceAction721___action};
+ val_t variable[10];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ variable[7] = variable[5] /*nodearraylist1*/;
+ /* Register variable[8]: Result */
+ variable[8] = TAG_Bool(( variable[7] /*listnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction721___action, LOCATE_parser, 24078); nit_exit(1);}
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[4] /*nodearraylist2*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pclosuredeclnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pclosuredeclnode2*/, COLOR_PClosureDecl, ID_PClosureDecl)) /*cast PClosureDecl*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction721___action, LOCATE_parser, 24080); nit_exit(1);}
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ == NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ /* Register variable[9]: Result */
+ variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ variable[6] = variable[7] /*listnode1*/ /*listnode3=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pclosuredeclnode2*/ == NIT_NULL /*null*/) || (( variable[8] /*pclosuredeclnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*pclosuredeclnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pclosuredeclnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*pclosuredeclnode2*/)( variable[8] /*pclosuredeclnode2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[8] /*pclosuredeclnode2*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[6] /*listnode3*/ /*node_list=*/;
+ /* Register variable[9]: Result */
+ variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(125)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1474: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction721___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 24094, LOCATE_parser___ReduceAction721___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction721].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1475: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction721].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction722___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 24098, LOCATE_parser___ReduceAction722___action};
+ val_t variable[8];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ variable[6] = variable[4] /*nodearraylist1*/;
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(( variable[6] /*ptypenode1*/==NIT_NULL) || VAL_ISA( variable[6] /*ptypenode1*/, COLOR_PType, ID_PType)) /*cast PType*/;
+ if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction722___action, LOCATE_parser, 24104); nit_exit(1);}
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*ptypenode1*/ == NIT_NULL /*null*/) || (( variable[6] /*ptypenode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*ptypenode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*ptypenode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*ptypenode1*/)( variable[6] /*ptypenode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[7])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/, variable[6] /*ptypenode1*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[5] /*listnode2*/ /*node_list=*/;
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(126)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1476: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction722___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 24111, LOCATE_parser___ReduceAction722___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction722].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1477: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction722].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction723___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 24115, LOCATE_parser___ReduceAction723___action};
+ val_t variable[10];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ variable[7] = variable[5] /*nodearraylist1*/;
+ /* Register variable[8]: Result */
+ variable[8] = TAG_Bool(( variable[7] /*listnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction723___action, LOCATE_parser, 24122); nit_exit(1);}
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[4] /*nodearraylist2*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*ptypenode2*/==NIT_NULL) || VAL_ISA( variable[8] /*ptypenode2*/, COLOR_PType, ID_PType)) /*cast PType*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction723___action, LOCATE_parser, 24124); nit_exit(1);}
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ == NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ /* Register variable[9]: Result */
+ variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ variable[6] = variable[7] /*listnode1*/ /*listnode3=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*ptypenode2*/ == NIT_NULL /*null*/) || (( variable[8] /*ptypenode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*ptypenode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*ptypenode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*ptypenode2*/)( variable[8] /*ptypenode2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[8] /*ptypenode2*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[6] /*listnode3*/ /*node_list=*/;
+ /* Register variable[9]: Result */
+ variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(126)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1478: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction723___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 24138, LOCATE_parser___ReduceAction723___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction723].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1479: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction723].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction724___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 24142, LOCATE_parser___ReduceAction724___action};
+ val_t variable[8];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ variable[6] = variable[4] /*nodearraylist1*/;
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(( variable[6] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction724___action, LOCATE_parser, 24148); nit_exit(1);}
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pexprnode1*/ == NIT_NULL /*null*/) || (( variable[6] /*pexprnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*pexprnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*pexprnode1*/)( variable[6] /*pexprnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[7])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/, variable[6] /*pexprnode1*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[5] /*listnode2*/ /*node_list=*/;
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(127)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1480: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction724___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 24155, LOCATE_parser___ReduceAction724___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction724].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1481: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction724].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction725___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 24159, LOCATE_parser___ReduceAction725___action};
+ val_t variable[10];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ variable[7] = variable[5] /*nodearraylist1*/;
+ /* Register variable[8]: Result */
+ variable[8] = TAG_Bool(( variable[7] /*listnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction725___action, LOCATE_parser, 24166); nit_exit(1);}
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[4] /*nodearraylist2*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction725___action, LOCATE_parser, 24168); nit_exit(1);}
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ == NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ /* Register variable[9]: Result */
+ variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ variable[6] = variable[7] /*listnode1*/ /*listnode3=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pexprnode2*/ == NIT_NULL /*null*/) || (( variable[8] /*pexprnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*pexprnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*pexprnode2*/)( variable[8] /*pexprnode2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[8] /*pexprnode2*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[6] /*listnode3*/ /*node_list=*/;
+ /* Register variable[9]: Result */
+ variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(127)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1482: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction725___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 24182, LOCATE_parser___ReduceAction725___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction725].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1483: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction725].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction726___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 24186, LOCATE_parser___ReduceAction726___action};
+ val_t variable[8];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ variable[6] = variable[4] /*nodearraylist1*/;
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(( variable[6] /*listnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction726___action, LOCATE_parser, 24192); nit_exit(1);}
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*listnode1*/ == NIT_NULL /*null*/) || (( variable[6] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*listnode1*/)( variable[6] /*listnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[7])) { /*if*/
+ /* Register variable[7]: Result */
+ variable[7] = CALL_abstract_collection___Collection___is_empty( variable[5] /*listnode2*/)( variable[5] /*listnode2*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[7])) { /*if*/
+ variable[5] = variable[6] /*listnode1*/ /*listnode2=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[5] /*listnode2*/)( variable[5] /*listnode2*/, variable[6] /*listnode1*/) /*IndexedCollection::append*/;
+ }
+ }
+ variable[3] = variable[5] /*listnode2*/ /*node_list=*/;
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(128)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1484: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction726___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 24203, LOCATE_parser___ReduceAction726___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction726].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1485: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction726].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction727___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 24207, LOCATE_parser___ReduceAction727___action};
+ val_t variable[10];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ variable[7] = variable[5] /*nodearraylist1*/;
+ /* Register variable[8]: Result */
+ variable[8] = TAG_Bool(( variable[7] /*listnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction727___action, LOCATE_parser, 24214); nit_exit(1);}
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[4] /*nodearraylist2*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*listnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction727___action, LOCATE_parser, 24216); nit_exit(1);}
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ == NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ /* Register variable[9]: Result */
+ variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ variable[6] = variable[7] /*listnode1*/ /*listnode3=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode2*/ == NIT_NULL /*null*/) || (( variable[8] /*listnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*listnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*listnode2*/)( variable[8] /*listnode2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ /* Register variable[9]: Result */
+ variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ variable[6] = variable[8] /*listnode2*/ /*listnode3=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[8] /*listnode2*/) /*IndexedCollection::append*/;
+ }
+ }
+ variable[3] = variable[6] /*listnode3*/ /*node_list=*/;
+ /* Register variable[9]: Result */
+ variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(128)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1486: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction727___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 24234, LOCATE_parser___ReduceAction727___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction727].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1487: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction727].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction728___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 24238, LOCATE_parser___ReduceAction728___action};
+ val_t variable[8];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ variable[6] = variable[4] /*nodearraylist1*/;
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(( variable[6] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction728___action, LOCATE_parser, 24244); nit_exit(1);}
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pexprnode1*/ == NIT_NULL /*null*/) || (( variable[6] /*pexprnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*pexprnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*pexprnode1*/)( variable[6] /*pexprnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[7])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/, variable[6] /*pexprnode1*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[5] /*listnode2*/ /*node_list=*/;
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(129)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1488: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction728___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 24251, LOCATE_parser___ReduceAction728___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction728].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1489: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction728].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction729___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 24255, LOCATE_parser___ReduceAction729___action};
+ val_t variable[10];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ variable[7] = variable[5] /*nodearraylist1*/;
+ /* Register variable[8]: Result */
+ variable[8] = TAG_Bool(( variable[7] /*listnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction729___action, LOCATE_parser, 24262); nit_exit(1);}
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[4] /*nodearraylist2*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction729___action, LOCATE_parser, 24264); nit_exit(1);}
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ == NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ /* Register variable[9]: Result */
+ variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ variable[6] = variable[7] /*listnode1*/ /*listnode3=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pexprnode2*/ == NIT_NULL /*null*/) || (( variable[8] /*pexprnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*pexprnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*pexprnode2*/)( variable[8] /*pexprnode2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[8] /*pexprnode2*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[6] /*listnode3*/ /*node_list=*/;
+ /* Register variable[9]: Result */
+ variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(129)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1490: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction729___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 24278, LOCATE_parser___ReduceAction729___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction729].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1491: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction729].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction730___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 24282, LOCATE_parser___ReduceAction730___action};
+ val_t variable[8];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ variable[6] = variable[4] /*nodearraylist1*/;
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(( variable[6] /*tidnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*tidnode1*/, COLOR_TId, ID_TId)) /*cast TId*/;
+ if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction730___action, LOCATE_parser, 24288); nit_exit(1);}
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*tidnode1*/ == NIT_NULL /*null*/) || (( variable[6] /*tidnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*tidnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*tidnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*tidnode1*/)( variable[6] /*tidnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[7])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/, variable[6] /*tidnode1*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[5] /*listnode2*/ /*node_list=*/;
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(130)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1492: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction730___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 24295, LOCATE_parser___ReduceAction730___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction730].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1493: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction730].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction731___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 24299, LOCATE_parser___ReduceAction731___action};
+ val_t variable[10];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ variable[7] = variable[5] /*nodearraylist1*/;
+ /* Register variable[8]: Result */
+ variable[8] = TAG_Bool(( variable[7] /*listnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction731___action, LOCATE_parser, 24306); nit_exit(1);}
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[4] /*nodearraylist2*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*tidnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*tidnode2*/, COLOR_TId, ID_TId)) /*cast TId*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction731___action, LOCATE_parser, 24308); nit_exit(1);}
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ == NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ /* Register variable[9]: Result */
+ variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ variable[6] = variable[7] /*listnode1*/ /*listnode3=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*tidnode2*/ == NIT_NULL /*null*/) || (( variable[8] /*tidnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*tidnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*tidnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*tidnode2*/)( variable[8] /*tidnode2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[8] /*tidnode2*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[6] /*listnode3*/ /*node_list=*/;
+ /* Register variable[9]: Result */
+ variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(130)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1494: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction731___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 24322, LOCATE_parser___ReduceAction731___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction731].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1495: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction731].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction732___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 24326, LOCATE_parser___ReduceAction732___action};
+ val_t variable[8];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ variable[6] = variable[4] /*nodearraylist1*/;
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(( variable[6] /*tcommentnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*tcommentnode1*/, COLOR_TComment, ID_TComment)) /*cast TComment*/;
+ if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction732___action, LOCATE_parser, 24332); nit_exit(1);}
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*tcommentnode1*/ == NIT_NULL /*null*/) || (( variable[6] /*tcommentnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*tcommentnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*tcommentnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*tcommentnode1*/)( variable[6] /*tcommentnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[7])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/, variable[6] /*tcommentnode1*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[5] /*listnode2*/ /*node_list=*/;
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(131)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1496: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction732___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 24339, LOCATE_parser___ReduceAction732___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction732].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1497: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction732].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction733___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 24343, LOCATE_parser___ReduceAction733___action};
+ val_t variable[10];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ variable[7] = variable[5] /*nodearraylist1*/;
+ /* Register variable[8]: Result */
+ variable[8] = TAG_Bool(( variable[7] /*listnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction733___action, LOCATE_parser, 24350); nit_exit(1);}
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[4] /*nodearraylist2*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*tcommentnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*tcommentnode2*/, COLOR_TComment, ID_TComment)) /*cast TComment*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction733___action, LOCATE_parser, 24352); nit_exit(1);}
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ == NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ /* Register variable[9]: Result */
+ variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ variable[6] = variable[7] /*listnode1*/ /*listnode3=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*tcommentnode2*/ == NIT_NULL /*null*/) || (( variable[8] /*tcommentnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*tcommentnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*tcommentnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*tcommentnode2*/)( variable[8] /*tcommentnode2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[8] /*tcommentnode2*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[6] /*listnode3*/ /*node_list=*/;
+ /* Register variable[9]: Result */
+ variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(131)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1498: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction733___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 24366, LOCATE_parser___ReduceAction733___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction733].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1499: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction733].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction734___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 24370, LOCATE_parser___ReduceAction734___action};
+ val_t variable[8];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ variable[6] = variable[4] /*nodearraylist1*/;
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(( variable[6] /*teolnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*teolnode1*/, COLOR_TEol, ID_TEol)) /*cast TEol*/;
+ if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction734___action, LOCATE_parser, 24376); nit_exit(1);}
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*teolnode1*/ == NIT_NULL /*null*/) || (( variable[6] /*teolnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*teolnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*teolnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*teolnode1*/)( variable[6] /*teolnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[7])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/, variable[6] /*teolnode1*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[5] /*listnode2*/ /*node_list=*/;
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(132)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1500: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction734___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 24383, LOCATE_parser___ReduceAction734___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction734].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1501: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction734].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction735___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 24387, LOCATE_parser___ReduceAction735___action};
+ val_t variable[10];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ variable[7] = variable[5] /*nodearraylist1*/;
+ /* Register variable[8]: Result */
+ variable[8] = TAG_Bool(( variable[7] /*listnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction735___action, LOCATE_parser, 24394); nit_exit(1);}
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[4] /*nodearraylist2*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*teolnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*teolnode2*/, COLOR_TEol, ID_TEol)) /*cast TEol*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction735___action, LOCATE_parser, 24396); nit_exit(1);}
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ == NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ /* Register variable[9]: Result */
+ variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ variable[6] = variable[7] /*listnode1*/ /*listnode3=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*teolnode2*/ == NIT_NULL /*null*/) || (( variable[8] /*teolnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*teolnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*teolnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*teolnode2*/)( variable[8] /*teolnode2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[8] /*teolnode2*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[6] /*listnode3*/ /*node_list=*/;
+ /* Register variable[9]: Result */
+ variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(132)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1502: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction735___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 24410, LOCATE_parser___ReduceAction735___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction735].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1503: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction735].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction736___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 24414, LOCATE_parser___ReduceAction736___action};
+ val_t variable[8];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ variable[6] = variable[4] /*nodearraylist1*/;
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(( variable[6] /*ppropdefnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*ppropdefnode1*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+ if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction736___action, LOCATE_parser, 24420); nit_exit(1);}
+ /* Register variable[7]: Result */
+ variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*ppropdefnode1*/ == NIT_NULL /*null*/) || (( variable[6] /*ppropdefnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*ppropdefnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*ppropdefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*ppropdefnode1*/)( variable[6] /*ppropdefnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[7])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/, variable[6] /*ppropdefnode1*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[5] /*listnode2*/ /*node_list=*/;
+ /* Register variable[7]: Result */
+ variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(133)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1504: while(false);
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction736___init(val_t self, int* init_table) {
+ struct trace_t trace = {NULL, NULL, 24427, LOCATE_parser___ReduceAction736___init};
+ val_t variable[2];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction736].i]) return;
+ /* Register variable[1]: Method return value and escape marker */
+ return_label1505: while(false);
+ init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ReduceAction736].i] = 1;
+ tracehead = trace.prev;
+ return;
+}
+void parser___ReduceAction737___action(val_t self, val_t param0) {
+ struct trace_t trace = {NULL, NULL, 24431, LOCATE_parser___ReduceAction737___action};
+ val_t variable[10];
+ struct WBT_ **closurevariable = NULL;
+ trace.prev = tracehead; tracehead = &trace;
+ trace.file = LOCATE_parser;
+ /* Register variable[0]: Local variable */
+ variable[0] = self;
+ /* Register variable[1]: Local variable */
+ variable[1] = param0;
+ /* Register variable[2]: Method return value and escape marker */
+ /* Register variable[3]: Local variable */
+ variable[3] = NIT_NULL /*null*/;
+ /* Register variable[4]: Local variable */
+ /* Register variable[5]: Result */
+ variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[4] = variable[5];
+ /* Register variable[5]: Local variable */
+ /* Register variable[6]: Result */
+ variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
+ variable[5] = variable[6];
+ /* Register variable[6]: Local variable */
+ /* Register variable[7]: Result */
+ variable[7] = NEW_Array_array___Array___init() /*new Array[Object]*/;
+ variable[6] = variable[7];
+ /* Register variable[7]: Local variable */
+ variable[7] = variable[5] /*nodearraylist1*/;
+ /* Register variable[8]: Result */
+ variable[8] = TAG_Bool(( variable[7] /*listnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
+ if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction737___action, LOCATE_parser, 24438); nit_exit(1);}
+ /* Register variable[8]: Local variable */
+ variable[8] = variable[4] /*nodearraylist2*/;
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(( variable[8] /*ppropdefnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*ppropdefnode2*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
+ if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction737___action, LOCATE_parser, 24440); nit_exit(1);}
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ == NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ /* Register variable[9]: Result */
+ variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArrayRead::is_empty*/;
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ variable[6] = variable[7] /*listnode1*/ /*listnode3=*/;
+ } else { /*if*/
+ CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+ }
+ }
+ /* Register variable[9]: Result */
+ variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*ppropdefnode2*/ == NIT_NULL /*null*/) || (( variable[8] /*ppropdefnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*ppropdefnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*ppropdefnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*ppropdefnode2*/)( variable[8] /*ppropdefnode2*/, NIT_NULL /*null*/) /*Object::==*/)))))));
+ if (UNTAG_Bool(variable[9])) { /*if*/
+ CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/, variable[8] /*ppropdefnode2*/) /*AbstractArray::add*/;
+ }
+ variable[3] = variable[6] /*listnode3*/ /*node_list=*/;
+ /* Register variable[9]: Result */
+ variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/, TAG_Int(133)) /*Parser::go_to*/;
+ CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9], variable[3] /*node_list*/) /*Parser::push*/;
+ return_label1506: while(false);