+ /* parser/parser_prod.nit:9105 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9106 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9106);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+ /* parser/parser_prod.nit:9107 */
+ REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TAt, ID_parser___parser_nodes___TAt)) /*cast TAt*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9107);
+ }
+ /* parser/parser_prod.nit:9108 */
+ ATTR_parser___parser_nodes___AAnnotations____n_at(fra.me.REG[0]) = fra.me.REG[2];
+ } else {
+ /* parser/parser_prod.nit:9110 */
+ ATTR_parser___parser_nodes___AAnnotations____n_at(fra.me.REG[0]) = NIT_NULL;
+ }
+ /* parser/parser_prod.nit:9112 */
+ goto label1;
+ }
+ /* parser/parser_prod.nit:9114 */
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_opar(fra.me.REG[0]);
+ REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+ REGB0 = REGB1;
+ }
+ }
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9115 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9116 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9116);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+ /* parser/parser_prod.nit:9117 */
+ REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9117);
+ }
+ /* parser/parser_prod.nit:9118 */
+ ATTR_parser___parser_nodes___AAnnotations____n_opar(fra.me.REG[0]) = fra.me.REG[2];
+ } else {
+ /* parser/parser_prod.nit:9120 */
+ ATTR_parser___parser_nodes___AAnnotations____n_opar(fra.me.REG[0]) = NIT_NULL;
+ }
+ /* parser/parser_prod.nit:9122 */
+ goto label1;
+ }
+ /* parser/parser_prod.nit:9124 */
+ REGB0 = TAG_Int(0);
+ REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotations____n_items(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_items", LOCATE_parser___parser_prod, 9124);
+ }
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_items(fra.me.REG[0]);
+ REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
+ /* ../lib/standard/kernel.nit:355 */
+ while(1) {
+ REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
+ if (UNTAG_Bool(REGB2)) {
+ } else {
+ nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
+ }
+ /* ../lib/standard/kernel.nit:235 */
+ REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
+ /* ../lib/standard/kernel.nit:355 */
+ if (UNTAG_Bool(REGB2)) {
+ /* parser/parser_prod.nit:9124 */
+ REGB2 = REGB0;
+ /* parser/parser_prod.nit:9125 */
+ REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotations____n_items(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB3)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_items", LOCATE_parser___parser_prod, 9125);
+ }
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_items(fra.me.REG[0]);
+ fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
+ REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
+ if (UNTAG_Bool(REGB3)) {
+ } else {
+ REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB4)) {
+ REGB4 = TAG_Bool(0);
+ REGB3 = REGB4;
+ } else {
+ REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+ REGB3 = REGB4;
+ }
+ }
+ if (UNTAG_Bool(REGB3)) {
+ /* parser/parser_prod.nit:9126 */
+ REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB3)) {
+ } else {
+ REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB4)) {
+ REGB4 = TAG_Bool(0);
+ REGB3 = REGB4;
+ } else {
+ REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+ REGB3 = REGB4;
+ }
+ }
+ REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
+ if (UNTAG_Bool(REGB3)) {
+ /* parser/parser_prod.nit:9127 */
+ REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotation, ID_parser___parser_nodes___AAnnotation)) /*cast AAnnotation*/;
+ if (UNTAG_Bool(REGB3)) {
+ } else {
+ nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9127);
+ }
+ /* parser/parser_prod.nit:9128 */
+ REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotations____n_items(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB3)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_items", LOCATE_parser___parser_prod, 9128);
+ }
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_items(fra.me.REG[0]);
+ CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
+ /* parser/parser_prod.nit:9129 */
+ REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB3)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9129);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+ } else {
+ /* parser/parser_prod.nit:9131 */
+ REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotations____n_items(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB3)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_items", LOCATE_parser___parser_prod, 9131);
+ }
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_items(fra.me.REG[0]);
+ CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
+ }
+ /* parser/parser_prod.nit:9133 */
+ goto label1;
+ }
+ /* ../lib/standard/kernel.nit:357 */
+ REGB2 = TAG_Int(1);
+ /* ../lib/standard/kernel.nit:238 */
+ REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
+ /* ../lib/standard/kernel.nit:357 */
+ REGB0 = REGB2;
+ } else {
+ /* ../lib/standard/kernel.nit:355 */
+ goto label2;
+ }
+ }
+ label2: while(0);
+ /* parser/parser_prod.nit:9136 */
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_cpar(fra.me.REG[0]);
+ REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+ REGB0 = REGB1;
+ }
+ }
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9137 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9138 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9138);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+ /* parser/parser_prod.nit:9139 */
+ REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9139);
+ }
+ /* parser/parser_prod.nit:9140 */
+ ATTR_parser___parser_nodes___AAnnotations____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
+ } else {
+ /* parser/parser_prod.nit:9142 */
+ ATTR_parser___parser_nodes___AAnnotations____n_cpar(fra.me.REG[0]) = NIT_NULL;
+ }
+ /* parser/parser_prod.nit:9144 */
+ goto label1;
+ }
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AAnnotations___visit_all[] = "parser_prod::AAnnotations::(parser_prod::ANode::visit_all)";
+void parser___parser_prod___AAnnotations___visit_all(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9148;
+ fra.me.meth = LOCATE_parser___parser_prod___AAnnotations___visit_all;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 4;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[3] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* parser/parser_prod.nit:9148 */
+ fra.me.REG[2] = fra.me.REG[0];
+ /* parser/parser_prod.nit:9150 */
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_at(fra.me.REG[2]);
+ REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9151 */
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_at(fra.me.REG[2]);
+ REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TAt, ID_parser___parser_nodes___TAt)) /*cast TAt*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9151);
+ }
+ CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+ }
+ /* parser/parser_prod.nit:9153 */
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_opar(fra.me.REG[2]);
+ REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9154 */
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_opar(fra.me.REG[2]);
+ REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9154);
+ }
+ CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+ }
+ /* parser/parser_prod.nit:9156 */
+ REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotations____n_items(fra.me.REG[2])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_items", LOCATE_parser___parser_prod, 9156);
+ }
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_items(fra.me.REG[2]);
+ CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AAnnotations___visit_all_1));
+ /* parser/parser_prod.nit:9159 */
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotations____n_cpar(fra.me.REG[2]);
+ REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9160 */
+ fra.me.REG[2] = ATTR_parser___parser_nodes___AAnnotations____n_cpar(fra.me.REG[2]);
+ REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9160);
+ }
+ CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+ }
+ stack_frame_head = fra.me.prev;
+ return;
+}
+ void OC_parser___parser_prod___AAnnotations___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+ struct {struct stack_frame_t me;} fra;
+ fun_t CREG[1];
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 0;
+ fra.me.meth = LOCATE_parser___parser_prod___AAnnotations___visit_all;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.closure_ctx = closctx_param;
+ fra.me.closure_funs = CREG;
+ fra.me.REG[0] = p0;
+ CREG[0] = clos_fun0;
+ /* parser/parser_prod.nit:9157 */
+ CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return;
+ }
+static const char LOCATE_parser___parser_prod___AAnnotation___empty_init[] = "parser_prod::AAnnotation::empty_init";
+void parser___parser_prod___AAnnotation___empty_init(val_t p0, int* init_table){
+ int itpos303 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAnnotation].i;
+ struct {struct stack_frame_t me;} fra;
+ val_t tmp;
+ if (init_table[itpos303]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9165;
+ fra.me.meth = LOCATE_parser___parser_prod___AAnnotation___empty_init;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ stack_frame_head = fra.me.prev;
+ init_table[itpos303] = 1;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AAnnotation___init_aannotation[] = "parser_prod::AAnnotation::init_aannotation";
+void parser___parser_prod___AAnnotation___init_aannotation(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, int* init_table){
+ int itpos304 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAnnotation].i;
+ struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t tmp;
+ if (init_table[itpos304]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9167;
+ fra.me.meth = LOCATE_parser___parser_prod___AAnnotation___init_aannotation;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 7;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[3] = NIT_NULL;
+ fra.me.REG[4] = NIT_NULL;
+ fra.me.REG[5] = NIT_NULL;
+ fra.me.REG[6] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ fra.me.REG[2] = p2;
+ fra.me.REG[3] = p3;
+ fra.me.REG[4] = p4;
+ fra.me.REG[5] = p5;
+ /* parser/parser_prod.nit:9167 */
+ fra.me.REG[6] = fra.me.REG[0];
+ /* parser/parser_prod.nit:9175 */
+ CALL_parser___parser_prod___AAnnotation___empty_init(fra.me.REG[6])(fra.me.REG[6], init_table);
+ /* parser/parser_prod.nit:9176 */
+ REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9176);
+ }
+ ATTR_parser___parser_nodes___AAnnotation____n_atid(fra.me.REG[6]) = fra.me.REG[1];
+ /* parser/parser_prod.nit:9177 */
+ REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9177);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
+ /* parser/parser_prod.nit:9178 */
+ ATTR_parser___parser_nodes___AAnnotation____n_opar(fra.me.REG[6]) = fra.me.REG[2];
+ /* parser/parser_prod.nit:9179 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9180 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9180);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
+ }
+ CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AAnnotation___init_aannotation_1));
+ /* parser/parser_prod.nit:9187 */
+ ATTR_parser___parser_nodes___AAnnotation____n_cpar(fra.me.REG[6]) = fra.me.REG[4];
+ /* parser/parser_prod.nit:9188 */
+ REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9189 */
+ REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9189);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
+ }
+ /* parser/parser_prod.nit:9191 */
+ ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[6]) = fra.me.REG[5];
+ /* parser/parser_prod.nit:9192 */
+ REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9193 */
+ REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9193);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
+ }
+ stack_frame_head = fra.me.prev;
+ init_table[itpos304] = 1;
+ return;
+}
+ void OC_parser___parser_prod___AAnnotation___init_aannotation_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+ val_t REGB0;
+ fun_t CREG[1];
+ val_t tmp;
+ /* parser/parser_prod.nit:9182 */
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 0;
+ fra.me.meth = LOCATE_parser___parser_prod___AAnnotation___init_aannotation;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.closure_ctx = closctx_param;
+ fra.me.closure_funs = CREG;
+ fra.me.REG[0] = p0;
+ CREG[0] = clos_fun0;
+ /* parser/parser_prod.nit:9183 */
+ REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AAtArg, ID_parser___parser_nodes___AAtArg)) /*cast AAtArg*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9183);
+ }
+ /* parser/parser_prod.nit:9184 */
+ REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotation____n_args(closctx->REG[6])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 9184);
+ }
+ fra.me.REG[1] = ATTR_parser___parser_nodes___AAnnotation____n_args(closctx->REG[6]);
+ CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+ /* parser/parser_prod.nit:9185 */
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[6]);
+ stack_frame_head = fra.me.prev;
+ return;
+ }
+static const char LOCATE_parser___parser_prod___AAnnotation___replace_child[] = "parser_prod::AAnnotation::(parser_prod::ANode::replace_child)";
+void parser___parser_prod___AAnnotation___replace_child(val_t p0, val_t p1, val_t p2){
+ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t REGB2;
+ val_t REGB3;
+ val_t REGB4;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9197;
+ fra.me.meth = LOCATE_parser___parser_prod___AAnnotation___replace_child;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 4;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[3] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ fra.me.REG[2] = p2;
+ /* parser/parser_prod.nit:9199 */
+ REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotation____n_atid(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_atid", LOCATE_parser___parser_prod, 9199);
+ }
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_atid(fra.me.REG[0]);
+ REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+ REGB0 = REGB1;
+ }
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9200 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9201 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9201);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+ /* parser/parser_prod.nit:9202 */
+ REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAtid, ID_parser___parser_nodes___AAtid)) /*cast AAtid*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9202);
+ }
+ /* parser/parser_prod.nit:9203 */
+ ATTR_parser___parser_nodes___AAnnotation____n_atid(fra.me.REG[0]) = fra.me.REG[2];
+ } else {
+ /* parser/parser_prod.nit:9205 */
+ nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 9205);
+ }
+ /* parser/parser_prod.nit:9207 */
+ goto label1;
+ }
+ /* parser/parser_prod.nit:9209 */
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_opar(fra.me.REG[0]);
+ REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+ REGB0 = REGB1;
+ }
+ }
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9210 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9211 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9211);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+ /* parser/parser_prod.nit:9212 */
+ REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9212);
+ }
+ /* parser/parser_prod.nit:9213 */
+ ATTR_parser___parser_nodes___AAnnotation____n_opar(fra.me.REG[0]) = fra.me.REG[2];
+ } else {
+ /* parser/parser_prod.nit:9215 */
+ ATTR_parser___parser_nodes___AAnnotation____n_opar(fra.me.REG[0]) = NIT_NULL;
+ }
+ /* parser/parser_prod.nit:9217 */
+ goto label1;
+ }
+ /* parser/parser_prod.nit:9219 */
+ REGB0 = TAG_Int(0);
+ REGB1 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotation____n_args(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 9219);
+ }
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_args(fra.me.REG[0]);
+ REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[3])(fra.me.REG[3]);
+ /* ../lib/standard/kernel.nit:355 */
+ while(1) {
+ REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
+ if (UNTAG_Bool(REGB2)) {
+ } else {
+ nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
+ }
+ /* ../lib/standard/kernel.nit:235 */
+ REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
+ /* ../lib/standard/kernel.nit:355 */
+ if (UNTAG_Bool(REGB2)) {
+ /* parser/parser_prod.nit:9219 */
+ REGB2 = REGB0;
+ /* parser/parser_prod.nit:9220 */
+ REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotation____n_args(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB3)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 9220);
+ }
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_args(fra.me.REG[0]);
+ fra.me.REG[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB2);
+ REGB3 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
+ if (UNTAG_Bool(REGB3)) {
+ } else {
+ REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB4)) {
+ REGB4 = TAG_Bool(0);
+ REGB3 = REGB4;
+ } else {
+ REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+ REGB3 = REGB4;
+ }
+ }
+ if (UNTAG_Bool(REGB3)) {
+ /* parser/parser_prod.nit:9221 */
+ REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB3)) {
+ } else {
+ REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB4)) {
+ REGB4 = TAG_Bool(0);
+ REGB3 = REGB4;
+ } else {
+ REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+ REGB3 = REGB4;
+ }
+ }
+ REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
+ if (UNTAG_Bool(REGB3)) {
+ /* parser/parser_prod.nit:9222 */
+ REGB3 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAtArg, ID_parser___parser_nodes___AAtArg)) /*cast AAtArg*/;
+ if (UNTAG_Bool(REGB3)) {
+ } else {
+ nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9222);
+ }
+ /* parser/parser_prod.nit:9223 */
+ REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotation____n_args(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB3)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 9223);
+ }
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_args(fra.me.REG[0]);
+ CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[3])(fra.me.REG[3], REGB2, fra.me.REG[2]);
+ /* parser/parser_prod.nit:9224 */
+ REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB3)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9224);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+ } else {
+ /* parser/parser_prod.nit:9226 */
+ REGB3 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotation____n_args(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB3)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 9226);
+ }
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_args(fra.me.REG[0]);
+ CALL_standard___collection___abstract_collection___Sequence___remove_at(fra.me.REG[3])(fra.me.REG[3], REGB2);
+ }
+ /* parser/parser_prod.nit:9228 */
+ goto label1;
+ }
+ /* ../lib/standard/kernel.nit:357 */
+ REGB2 = TAG_Int(1);
+ /* ../lib/standard/kernel.nit:238 */
+ REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
+ /* ../lib/standard/kernel.nit:357 */
+ REGB0 = REGB2;
+ } else {
+ /* ../lib/standard/kernel.nit:355 */
+ goto label2;
+ }
+ }
+ label2: while(0);
+ /* parser/parser_prod.nit:9231 */
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_cpar(fra.me.REG[0]);
+ REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+ REGB0 = REGB1;
+ }
+ }
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9232 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9233 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9233);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+ /* parser/parser_prod.nit:9234 */
+ REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9234);
+ }
+ /* parser/parser_prod.nit:9235 */
+ ATTR_parser___parser_nodes___AAnnotation____n_cpar(fra.me.REG[0]) = fra.me.REG[2];
+ } else {
+ /* parser/parser_prod.nit:9237 */
+ ATTR_parser___parser_nodes___AAnnotation____n_cpar(fra.me.REG[0]) = NIT_NULL;
+ }
+ /* parser/parser_prod.nit:9239 */
+ goto label1;
+ }
+ /* parser/parser_prod.nit:9241 */
+ fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
+ REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+ REGB0 = REGB1;
+ }
+ }
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9242 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9243 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9243);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+ /* parser/parser_prod.nit:9244 */
+ REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9244);
+ }
+ /* parser/parser_prod.nit:9245 */
+ ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
+ } else {
+ /* parser/parser_prod.nit:9247 */
+ ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = NIT_NULL;
+ }
+ /* parser/parser_prod.nit:9249 */
+ goto label1;
+ }
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AAnnotation___visit_all[] = "parser_prod::AAnnotation::(parser_prod::ANode::visit_all)";
+void parser___parser_prod___AAnnotation___visit_all(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9253;
+ fra.me.meth = LOCATE_parser___parser_prod___AAnnotation___visit_all;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 4;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[3] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* parser/parser_prod.nit:9253 */
+ fra.me.REG[2] = fra.me.REG[0];
+ /* parser/parser_prod.nit:9255 */
+ REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotation____n_atid(fra.me.REG[2])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_atid", LOCATE_parser___parser_prod, 9255);
+ }
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_atid(fra.me.REG[2]);
+ CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+ /* parser/parser_prod.nit:9256 */
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_opar(fra.me.REG[2]);
+ REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9257 */
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_opar(fra.me.REG[2]);
+ REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TOpar, ID_parser___parser_nodes___TOpar)) /*cast TOpar*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9257);
+ }
+ CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+ }
+ /* parser/parser_prod.nit:9259 */
+ REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAnnotation____n_args(fra.me.REG[2])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_args", LOCATE_parser___parser_prod, 9259);
+ }
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_args(fra.me.REG[2]);
+ CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_parser___parser_prod___AAnnotation___visit_all_1));
+ /* parser/parser_prod.nit:9262 */
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_cpar(fra.me.REG[2]);
+ REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9263 */
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAnnotation____n_cpar(fra.me.REG[2]);
+ REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_parser___parser_nodes___TCpar, ID_parser___parser_nodes___TCpar)) /*cast TCpar*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9263);
+ }
+ CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
+ }
+ /* parser/parser_prod.nit:9265 */
+ fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
+ REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9266 */
+ fra.me.REG[2] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]);
+ REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9266);
+ }
+ CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+ }
+ stack_frame_head = fra.me.prev;
+ return;
+}
+ void OC_parser___parser_prod___AAnnotation___visit_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+ struct {struct stack_frame_t me;} fra;
+ fun_t CREG[1];
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 0;
+ fra.me.meth = LOCATE_parser___parser_prod___AAnnotation___visit_all;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.closure_ctx = closctx_param;
+ fra.me.closure_funs = CREG;
+ fra.me.REG[0] = p0;
+ CREG[0] = clos_fun0;
+ /* parser/parser_prod.nit:9260 */
+ CALL_parser___parser_prod___Visitor___enter_visit(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return;
+ }
+static const char LOCATE_parser___parser_prod___ATypeAtArg___empty_init[] = "parser_prod::ATypeAtArg::empty_init";
+void parser___parser_prod___ATypeAtArg___empty_init(val_t p0, int* init_table){
+ int itpos305 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATypeAtArg].i;
+ struct {struct stack_frame_t me;} fra;
+ val_t tmp;
+ if (init_table[itpos305]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9271;
+ fra.me.meth = LOCATE_parser___parser_prod___ATypeAtArg___empty_init;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ stack_frame_head = fra.me.prev;
+ init_table[itpos305] = 1;
+ return;
+}
+static const char LOCATE_parser___parser_prod___ATypeAtArg___init_atypeatarg[] = "parser_prod::ATypeAtArg::init_atypeatarg";
+void parser___parser_prod___ATypeAtArg___init_atypeatarg(val_t p0, val_t p1, int* init_table){
+ int itpos306 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___ATypeAtArg].i;
+ struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+ val_t REGB0;
+ val_t tmp;
+ if (init_table[itpos306]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9273;
+ fra.me.meth = LOCATE_parser___parser_prod___ATypeAtArg___init_atypeatarg;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 3;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* parser/parser_prod.nit:9273 */
+ fra.me.REG[2] = fra.me.REG[0];
+ /* parser/parser_prod.nit:9277 */
+ CALL_parser___parser_prod___ATypeAtArg___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
+ /* parser/parser_prod.nit:9278 */
+ REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9278);
+ }
+ ATTR_parser___parser_nodes___ATypeAtArg____n_type(fra.me.REG[2]) = fra.me.REG[1];
+ /* parser/parser_prod.nit:9279 */
+ REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9279);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+ stack_frame_head = fra.me.prev;
+ init_table[itpos306] = 1;
+ return;
+}
+static const char LOCATE_parser___parser_prod___ATypeAtArg___replace_child[] = "parser_prod::ATypeAtArg::(parser_prod::ANode::replace_child)";
+void parser___parser_prod___ATypeAtArg___replace_child(val_t p0, val_t p1, val_t p2){
+ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9282;
+ fra.me.meth = LOCATE_parser___parser_prod___ATypeAtArg___replace_child;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 4;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[3] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ fra.me.REG[2] = p2;
+ /* parser/parser_prod.nit:9284 */
+ REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypeAtArg____n_type(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 9284);
+ }
+ fra.me.REG[3] = ATTR_parser___parser_nodes___ATypeAtArg____n_type(fra.me.REG[0]);
+ REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+ REGB0 = REGB1;
+ }
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9285 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9286 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9286);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+ /* parser/parser_prod.nit:9287 */
+ REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AType, ID_parser___parser_nodes___AType)) /*cast AType*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9287);
+ }
+ /* parser/parser_prod.nit:9288 */
+ ATTR_parser___parser_nodes___ATypeAtArg____n_type(fra.me.REG[0]) = fra.me.REG[2];
+ } else {
+ /* parser/parser_prod.nit:9290 */
+ nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 9290);
+ }
+ /* parser/parser_prod.nit:9292 */
+ goto label1;
+ }
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_parser___parser_prod___ATypeAtArg___visit_all[] = "parser_prod::ATypeAtArg::(parser_prod::ANode::visit_all)";
+void parser___parser_prod___ATypeAtArg___visit_all(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+ val_t REGB0;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9296;
+ fra.me.meth = LOCATE_parser___parser_prod___ATypeAtArg___visit_all;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* parser/parser_prod.nit:9298 */
+ REGB0 = TAG_Bool(ATTR_parser___parser_nodes___ATypeAtArg____n_type(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_type", LOCATE_parser___parser_prod, 9298);
+ }
+ fra.me.REG[0] = ATTR_parser___parser_nodes___ATypeAtArg____n_type(fra.me.REG[0]);
+ CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AExprAtArg___empty_init[] = "parser_prod::AExprAtArg::empty_init";
+void parser___parser_prod___AExprAtArg___empty_init(val_t p0, int* init_table){
+ int itpos307 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExprAtArg].i;
+ struct {struct stack_frame_t me;} fra;
+ val_t tmp;
+ if (init_table[itpos307]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9302;
+ fra.me.meth = LOCATE_parser___parser_prod___AExprAtArg___empty_init;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ stack_frame_head = fra.me.prev;
+ init_table[itpos307] = 1;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AExprAtArg___init_aexpratarg[] = "parser_prod::AExprAtArg::init_aexpratarg";
+void parser___parser_prod___AExprAtArg___init_aexpratarg(val_t p0, val_t p1, int* init_table){
+ int itpos308 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AExprAtArg].i;
+ struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+ val_t REGB0;
+ val_t tmp;
+ if (init_table[itpos308]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9304;
+ fra.me.meth = LOCATE_parser___parser_prod___AExprAtArg___init_aexpratarg;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 3;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* parser/parser_prod.nit:9304 */
+ fra.me.REG[2] = fra.me.REG[0];
+ /* parser/parser_prod.nit:9308 */
+ CALL_parser___parser_prod___AExprAtArg___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
+ /* parser/parser_prod.nit:9309 */
+ REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9309);
+ }
+ ATTR_parser___parser_nodes___AExprAtArg____n_expr(fra.me.REG[2]) = fra.me.REG[1];
+ /* parser/parser_prod.nit:9310 */
+ REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9310);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+ stack_frame_head = fra.me.prev;
+ init_table[itpos308] = 1;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AExprAtArg___replace_child[] = "parser_prod::AExprAtArg::(parser_prod::ANode::replace_child)";
+void parser___parser_prod___AExprAtArg___replace_child(val_t p0, val_t p1, val_t p2){
+ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9313;
+ fra.me.meth = LOCATE_parser___parser_prod___AExprAtArg___replace_child;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 4;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[3] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ fra.me.REG[2] = p2;
+ /* parser/parser_prod.nit:9315 */
+ REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprAtArg____n_expr(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 9315);
+ }
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AExprAtArg____n_expr(fra.me.REG[0]);
+ REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+ REGB0 = REGB1;
+ }
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9316 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9317 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9317);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+ /* parser/parser_prod.nit:9318 */
+ REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AExpr, ID_parser___parser_nodes___AExpr)) /*cast AExpr*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9318);
+ }
+ /* parser/parser_prod.nit:9319 */
+ ATTR_parser___parser_nodes___AExprAtArg____n_expr(fra.me.REG[0]) = fra.me.REG[2];
+ } else {
+ /* parser/parser_prod.nit:9321 */
+ nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 9321);
+ }
+ /* parser/parser_prod.nit:9323 */
+ goto label1;
+ }
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AExprAtArg___visit_all[] = "parser_prod::AExprAtArg::(parser_prod::ANode::visit_all)";
+void parser___parser_prod___AExprAtArg___visit_all(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+ val_t REGB0;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9327;
+ fra.me.meth = LOCATE_parser___parser_prod___AExprAtArg___visit_all;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* parser/parser_prod.nit:9329 */
+ REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AExprAtArg____n_expr(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_expr", LOCATE_parser___parser_prod, 9329);
+ }
+ fra.me.REG[0] = ATTR_parser___parser_nodes___AExprAtArg____n_expr(fra.me.REG[0]);
+ CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AAtAtArg___empty_init[] = "parser_prod::AAtAtArg::empty_init";
+void parser___parser_prod___AAtAtArg___empty_init(val_t p0, int* init_table){
+ int itpos309 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAtAtArg].i;
+ struct {struct stack_frame_t me;} fra;
+ val_t tmp;
+ if (init_table[itpos309]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9333;
+ fra.me.meth = LOCATE_parser___parser_prod___AAtAtArg___empty_init;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ stack_frame_head = fra.me.prev;
+ init_table[itpos309] = 1;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AAtAtArg___init_aatatarg[] = "parser_prod::AAtAtArg::init_aatatarg";
+void parser___parser_prod___AAtAtArg___init_aatatarg(val_t p0, val_t p1, int* init_table){
+ int itpos310 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AAtAtArg].i;
+ struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+ val_t REGB0;
+ val_t tmp;
+ if (init_table[itpos310]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9335;
+ fra.me.meth = LOCATE_parser___parser_prod___AAtAtArg___init_aatatarg;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 3;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* parser/parser_prod.nit:9335 */
+ fra.me.REG[2] = fra.me.REG[0];
+ /* parser/parser_prod.nit:9339 */
+ CALL_parser___parser_prod___AAtAtArg___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
+ /* parser/parser_prod.nit:9340 */
+ REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9340);
+ }
+ ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[2]) = fra.me.REG[1];
+ /* parser/parser_prod.nit:9341 */
+ REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9341);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+ stack_frame_head = fra.me.prev;
+ init_table[itpos310] = 1;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AAtAtArg___replace_child[] = "parser_prod::AAtAtArg::(parser_prod::ANode::replace_child)";
+void parser___parser_prod___AAtAtArg___replace_child(val_t p0, val_t p1, val_t p2){
+ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9344;
+ fra.me.meth = LOCATE_parser___parser_prod___AAtAtArg___replace_child;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 4;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[3] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ fra.me.REG[2] = p2;
+ /* parser/parser_prod.nit:9346 */
+ fra.me.REG[3] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
+ REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+ REGB0 = REGB1;
+ }
+ }
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9347 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9348 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9348);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+ /* parser/parser_prod.nit:9349 */
+ REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AAnnotations, ID_parser___parser_nodes___AAnnotations)) /*cast AAnnotations*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9349);
+ }
+ /* parser/parser_prod.nit:9350 */
+ ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]) = fra.me.REG[2];
+ } else {
+ /* parser/parser_prod.nit:9352 */
+ nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 9352);
+ }
+ /* parser/parser_prod.nit:9354 */
+ goto label1;
+ }
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AAtAtArg___visit_all[] = "parser_prod::AAtAtArg::(parser_prod::ANode::visit_all)";
+void parser___parser_prod___AAtAtArg___visit_all(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9358;
+ fra.me.meth = LOCATE_parser___parser_prod___AAtAtArg___visit_all;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* parser/parser_prod.nit:9360 */
+ fra.me.REG[0] = ATTR_parser___parser_nodes___Prod____n_annotations(fra.me.REG[0]);
+ CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AIdAtid___empty_init[] = "parser_prod::AIdAtid::empty_init";
+void parser___parser_prod___AIdAtid___empty_init(val_t p0, int* init_table){
+ int itpos311 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIdAtid].i;
+ struct {struct stack_frame_t me;} fra;
+ val_t tmp;
+ if (init_table[itpos311]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9364;
+ fra.me.meth = LOCATE_parser___parser_prod___AIdAtid___empty_init;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ stack_frame_head = fra.me.prev;
+ init_table[itpos311] = 1;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AIdAtid___init_aidatid[] = "parser_prod::AIdAtid::init_aidatid";
+void parser___parser_prod___AIdAtid___init_aidatid(val_t p0, val_t p1, int* init_table){
+ int itpos312 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AIdAtid].i;
+ struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+ val_t REGB0;
+ val_t tmp;
+ if (init_table[itpos312]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9366;
+ fra.me.meth = LOCATE_parser___parser_prod___AIdAtid___init_aidatid;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 3;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* parser/parser_prod.nit:9366 */
+ fra.me.REG[2] = fra.me.REG[0];
+ /* parser/parser_prod.nit:9370 */
+ CALL_parser___parser_prod___AIdAtid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
+ /* parser/parser_prod.nit:9371 */
+ REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9371);
+ }
+ ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[2]) = fra.me.REG[1];
+ /* parser/parser_prod.nit:9372 */
+ REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9372);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+ stack_frame_head = fra.me.prev;
+ init_table[itpos312] = 1;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AIdAtid___replace_child[] = "parser_prod::AIdAtid::(parser_prod::ANode::replace_child)";
+void parser___parser_prod___AIdAtid___replace_child(val_t p0, val_t p1, val_t p2){
+ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9375;
+ fra.me.meth = LOCATE_parser___parser_prod___AIdAtid___replace_child;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 4;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[3] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ fra.me.REG[2] = p2;
+ /* parser/parser_prod.nit:9377 */
+ REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9377);
+ }
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
+ REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+ REGB0 = REGB1;
+ }
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9378 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9379 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9379);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+ /* parser/parser_prod.nit:9380 */
+ REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TId, ID_parser___parser_nodes___TId)) /*cast TId*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9380);
+ }
+ /* parser/parser_prod.nit:9381 */
+ ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]) = fra.me.REG[2];
+ } else {
+ /* parser/parser_prod.nit:9383 */
+ nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 9383);
+ }
+ /* parser/parser_prod.nit:9385 */
+ goto label1;
+ }
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AIdAtid___visit_all[] = "parser_prod::AIdAtid::(parser_prod::ANode::visit_all)";
+void parser___parser_prod___AIdAtid___visit_all(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+ val_t REGB0;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9389;
+ fra.me.meth = LOCATE_parser___parser_prod___AIdAtid___visit_all;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* parser/parser_prod.nit:9391 */
+ REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9391);
+ }
+ fra.me.REG[0] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
+ CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AKwexternAtid___empty_init[] = "parser_prod::AKwexternAtid::empty_init";
+void parser___parser_prod___AKwexternAtid___empty_init(val_t p0, int* init_table){
+ int itpos313 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AKwexternAtid].i;
+ struct {struct stack_frame_t me;} fra;
+ val_t tmp;
+ if (init_table[itpos313]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9395;
+ fra.me.meth = LOCATE_parser___parser_prod___AKwexternAtid___empty_init;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ stack_frame_head = fra.me.prev;
+ init_table[itpos313] = 1;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AKwexternAtid___init_akwexternatid[] = "parser_prod::AKwexternAtid::init_akwexternatid";
+void parser___parser_prod___AKwexternAtid___init_akwexternatid(val_t p0, val_t p1, int* init_table){
+ int itpos314 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AKwexternAtid].i;
+ struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+ val_t REGB0;
+ val_t tmp;
+ if (init_table[itpos314]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9397;
+ fra.me.meth = LOCATE_parser___parser_prod___AKwexternAtid___init_akwexternatid;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 3;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* parser/parser_prod.nit:9397 */
+ fra.me.REG[2] = fra.me.REG[0];
+ /* parser/parser_prod.nit:9401 */
+ CALL_parser___parser_prod___AKwexternAtid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
+ /* parser/parser_prod.nit:9402 */
+ REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9402);
+ }
+ ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[2]) = fra.me.REG[1];
+ /* parser/parser_prod.nit:9403 */
+ REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9403);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+ stack_frame_head = fra.me.prev;
+ init_table[itpos314] = 1;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AKwexternAtid___replace_child[] = "parser_prod::AKwexternAtid::(parser_prod::ANode::replace_child)";
+void parser___parser_prod___AKwexternAtid___replace_child(val_t p0, val_t p1, val_t p2){
+ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9406;
+ fra.me.meth = LOCATE_parser___parser_prod___AKwexternAtid___replace_child;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 4;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[3] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ fra.me.REG[2] = p2;
+ /* parser/parser_prod.nit:9408 */
+ REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9408);
+ }
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
+ REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+ REGB0 = REGB1;
+ }
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9409 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9410 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9410);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+ /* parser/parser_prod.nit:9411 */
+ REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwextern, ID_parser___parser_nodes___TKwextern)) /*cast TKwextern*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9411);
+ }
+ /* parser/parser_prod.nit:9412 */
+ ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]) = fra.me.REG[2];
+ } else {
+ /* parser/parser_prod.nit:9414 */
+ nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 9414);
+ }
+ /* parser/parser_prod.nit:9416 */
+ goto label1;
+ }
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AKwexternAtid___visit_all[] = "parser_prod::AKwexternAtid::(parser_prod::ANode::visit_all)";
+void parser___parser_prod___AKwexternAtid___visit_all(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+ val_t REGB0;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9420;
+ fra.me.meth = LOCATE_parser___parser_prod___AKwexternAtid___visit_all;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* parser/parser_prod.nit:9422 */
+ REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9422);
+ }
+ fra.me.REG[0] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
+ CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AKwinternAtid___empty_init[] = "parser_prod::AKwinternAtid::empty_init";
+void parser___parser_prod___AKwinternAtid___empty_init(val_t p0, int* init_table){
+ int itpos315 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AKwinternAtid].i;
+ struct {struct stack_frame_t me;} fra;
+ val_t tmp;
+ if (init_table[itpos315]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9426;
+ fra.me.meth = LOCATE_parser___parser_prod___AKwinternAtid___empty_init;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ stack_frame_head = fra.me.prev;
+ init_table[itpos315] = 1;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AKwinternAtid___init_akwinternatid[] = "parser_prod::AKwinternAtid::init_akwinternatid";
+void parser___parser_prod___AKwinternAtid___init_akwinternatid(val_t p0, val_t p1, int* init_table){
+ int itpos316 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AKwinternAtid].i;
+ struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+ val_t REGB0;
+ val_t tmp;
+ if (init_table[itpos316]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9428;
+ fra.me.meth = LOCATE_parser___parser_prod___AKwinternAtid___init_akwinternatid;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 3;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* parser/parser_prod.nit:9428 */
+ fra.me.REG[2] = fra.me.REG[0];
+ /* parser/parser_prod.nit:9432 */
+ CALL_parser___parser_prod___AKwinternAtid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
+ /* parser/parser_prod.nit:9433 */
+ REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9433);
+ }
+ ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[2]) = fra.me.REG[1];
+ /* parser/parser_prod.nit:9434 */
+ REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9434);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+ stack_frame_head = fra.me.prev;
+ init_table[itpos316] = 1;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AKwinternAtid___replace_child[] = "parser_prod::AKwinternAtid::(parser_prod::ANode::replace_child)";
+void parser___parser_prod___AKwinternAtid___replace_child(val_t p0, val_t p1, val_t p2){
+ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9437;
+ fra.me.meth = LOCATE_parser___parser_prod___AKwinternAtid___replace_child;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 4;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[3] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ fra.me.REG[2] = p2;
+ /* parser/parser_prod.nit:9439 */
+ REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9439);
+ }
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
+ REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+ REGB0 = REGB1;
+ }
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9440 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9441 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9441);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+ /* parser/parser_prod.nit:9442 */
+ REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwintern, ID_parser___parser_nodes___TKwintern)) /*cast TKwintern*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9442);
+ }
+ /* parser/parser_prod.nit:9443 */
+ ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]) = fra.me.REG[2];
+ } else {
+ /* parser/parser_prod.nit:9445 */
+ nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 9445);
+ }
+ /* parser/parser_prod.nit:9447 */
+ goto label1;
+ }
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AKwinternAtid___visit_all[] = "parser_prod::AKwinternAtid::(parser_prod::ANode::visit_all)";
+void parser___parser_prod___AKwinternAtid___visit_all(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+ val_t REGB0;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9451;
+ fra.me.meth = LOCATE_parser___parser_prod___AKwinternAtid___visit_all;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* parser/parser_prod.nit:9453 */
+ REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9453);
+ }
+ fra.me.REG[0] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
+ CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AKwreadableAtid___empty_init[] = "parser_prod::AKwreadableAtid::empty_init";
+void parser___parser_prod___AKwreadableAtid___empty_init(val_t p0, int* init_table){
+ int itpos317 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AKwreadableAtid].i;
+ struct {struct stack_frame_t me;} fra;
+ val_t tmp;
+ if (init_table[itpos317]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9457;
+ fra.me.meth = LOCATE_parser___parser_prod___AKwreadableAtid___empty_init;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ stack_frame_head = fra.me.prev;
+ init_table[itpos317] = 1;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AKwreadableAtid___init_akwreadableatid[] = "parser_prod::AKwreadableAtid::init_akwreadableatid";
+void parser___parser_prod___AKwreadableAtid___init_akwreadableatid(val_t p0, val_t p1, int* init_table){
+ int itpos318 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AKwreadableAtid].i;
+ struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+ val_t REGB0;
+ val_t tmp;
+ if (init_table[itpos318]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9459;
+ fra.me.meth = LOCATE_parser___parser_prod___AKwreadableAtid___init_akwreadableatid;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 3;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* parser/parser_prod.nit:9459 */
+ fra.me.REG[2] = fra.me.REG[0];
+ /* parser/parser_prod.nit:9463 */
+ CALL_parser___parser_prod___AKwreadableAtid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
+ /* parser/parser_prod.nit:9464 */
+ REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9464);
+ }
+ ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[2]) = fra.me.REG[1];
+ /* parser/parser_prod.nit:9465 */
+ REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9465);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+ stack_frame_head = fra.me.prev;
+ init_table[itpos318] = 1;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AKwreadableAtid___replace_child[] = "parser_prod::AKwreadableAtid::(parser_prod::ANode::replace_child)";
+void parser___parser_prod___AKwreadableAtid___replace_child(val_t p0, val_t p1, val_t p2){
+ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9468;
+ fra.me.meth = LOCATE_parser___parser_prod___AKwreadableAtid___replace_child;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 4;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[3] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ fra.me.REG[2] = p2;
+ /* parser/parser_prod.nit:9470 */
+ REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9470);
+ }
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
+ REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+ REGB0 = REGB1;
+ }
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9471 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9472 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9472);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+ /* parser/parser_prod.nit:9473 */
+ REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwreadable, ID_parser___parser_nodes___TKwreadable)) /*cast TKwreadable*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9473);
+ }
+ /* parser/parser_prod.nit:9474 */
+ ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]) = fra.me.REG[2];
+ } else {
+ /* parser/parser_prod.nit:9476 */
+ nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 9476);
+ }
+ /* parser/parser_prod.nit:9478 */
+ goto label1;
+ }
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AKwreadableAtid___visit_all[] = "parser_prod::AKwreadableAtid::(parser_prod::ANode::visit_all)";
+void parser___parser_prod___AKwreadableAtid___visit_all(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+ val_t REGB0;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9482;
+ fra.me.meth = LOCATE_parser___parser_prod___AKwreadableAtid___visit_all;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* parser/parser_prod.nit:9484 */
+ REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9484);
+ }
+ fra.me.REG[0] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
+ CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AKwwritableAtid___empty_init[] = "parser_prod::AKwwritableAtid::empty_init";
+void parser___parser_prod___AKwwritableAtid___empty_init(val_t p0, int* init_table){
+ int itpos319 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AKwwritableAtid].i;
+ struct {struct stack_frame_t me;} fra;
+ val_t tmp;
+ if (init_table[itpos319]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9488;
+ fra.me.meth = LOCATE_parser___parser_prod___AKwwritableAtid___empty_init;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ stack_frame_head = fra.me.prev;
+ init_table[itpos319] = 1;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AKwwritableAtid___init_akwwritableatid[] = "parser_prod::AKwwritableAtid::init_akwwritableatid";
+void parser___parser_prod___AKwwritableAtid___init_akwwritableatid(val_t p0, val_t p1, int* init_table){
+ int itpos320 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AKwwritableAtid].i;
+ struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+ val_t REGB0;
+ val_t tmp;
+ if (init_table[itpos320]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9490;
+ fra.me.meth = LOCATE_parser___parser_prod___AKwwritableAtid___init_akwwritableatid;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 3;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* parser/parser_prod.nit:9490 */
+ fra.me.REG[2] = fra.me.REG[0];
+ /* parser/parser_prod.nit:9494 */
+ CALL_parser___parser_prod___AKwwritableAtid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
+ /* parser/parser_prod.nit:9495 */
+ REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9495);
+ }
+ ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[2]) = fra.me.REG[1];
+ /* parser/parser_prod.nit:9496 */
+ REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9496);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+ stack_frame_head = fra.me.prev;
+ init_table[itpos320] = 1;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AKwwritableAtid___replace_child[] = "parser_prod::AKwwritableAtid::(parser_prod::ANode::replace_child)";
+void parser___parser_prod___AKwwritableAtid___replace_child(val_t p0, val_t p1, val_t p2){
+ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9499;
+ fra.me.meth = LOCATE_parser___parser_prod___AKwwritableAtid___replace_child;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 4;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[3] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ fra.me.REG[2] = p2;
+ /* parser/parser_prod.nit:9501 */
+ REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9501);
+ }
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
+ REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+ REGB0 = REGB1;
+ }
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9502 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9503 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9503);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+ /* parser/parser_prod.nit:9504 */
+ REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwwritable, ID_parser___parser_nodes___TKwwritable)) /*cast TKwwritable*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9504);
+ }
+ /* parser/parser_prod.nit:9505 */
+ ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]) = fra.me.REG[2];
+ } else {
+ /* parser/parser_prod.nit:9507 */
+ nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 9507);
+ }
+ /* parser/parser_prod.nit:9509 */
+ goto label1;
+ }
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AKwwritableAtid___visit_all[] = "parser_prod::AKwwritableAtid::(parser_prod::ANode::visit_all)";
+void parser___parser_prod___AKwwritableAtid___visit_all(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+ val_t REGB0;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9513;
+ fra.me.meth = LOCATE_parser___parser_prod___AKwwritableAtid___visit_all;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* parser/parser_prod.nit:9515 */
+ REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9515);
+ }
+ fra.me.REG[0] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
+ CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AKwimportAtid___empty_init[] = "parser_prod::AKwimportAtid::empty_init";
+void parser___parser_prod___AKwimportAtid___empty_init(val_t p0, int* init_table){
+ int itpos321 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AKwimportAtid].i;
+ struct {struct stack_frame_t me;} fra;
+ val_t tmp;
+ if (init_table[itpos321]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9519;
+ fra.me.meth = LOCATE_parser___parser_prod___AKwimportAtid___empty_init;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 1;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ stack_frame_head = fra.me.prev;
+ init_table[itpos321] = 1;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AKwimportAtid___init_akwimportatid[] = "parser_prod::AKwimportAtid::init_akwimportatid";
+void parser___parser_prod___AKwimportAtid___init_akwimportatid(val_t p0, val_t p1, int* init_table){
+ int itpos322 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_parser___parser_nodes___AKwimportAtid].i;
+ struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+ val_t REGB0;
+ val_t tmp;
+ if (init_table[itpos322]) return;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9521;
+ fra.me.meth = LOCATE_parser___parser_prod___AKwimportAtid___init_akwimportatid;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 3;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* parser/parser_prod.nit:9521 */
+ fra.me.REG[2] = fra.me.REG[0];
+ /* parser/parser_prod.nit:9525 */
+ CALL_parser___parser_prod___AKwimportAtid___empty_init(fra.me.REG[2])(fra.me.REG[2], init_table);
+ /* parser/parser_prod.nit:9526 */
+ REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Cast failed", NULL, LOCATE_parser___parser_prod, 9526);
+ }
+ ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[2]) = fra.me.REG[1];
+ /* parser/parser_prod.nit:9527 */
+ REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9527);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
+ stack_frame_head = fra.me.prev;
+ init_table[itpos322] = 1;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AKwimportAtid___replace_child[] = "parser_prod::AKwimportAtid::(parser_prod::ANode::replace_child)";
+void parser___parser_prod___AKwimportAtid___replace_child(val_t p0, val_t p1, val_t p2){
+ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9530;
+ fra.me.meth = LOCATE_parser___parser_prod___AKwimportAtid___replace_child;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 4;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[3] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ fra.me.REG[2] = p2;
+ /* parser/parser_prod.nit:9532 */
+ REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9532);
+ }
+ fra.me.REG[3] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
+ REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+ REGB0 = REGB1;
+ }
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9533 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
+ REGB0 = REGB1;
+ }
+ }
+ REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9534 */
+ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ nit_abort("Reciever is null", NULL, LOCATE_parser___parser_prod, 9534);
+ }
+ CALL_parser___parser_prod___ANode___parent__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
+ /* parser/parser_prod.nit:9535 */
+ REGB0 = TAG_Bool((fra.me.REG[2]!=NIT_NULL) && VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___TKwimport, ID_parser___parser_nodes___TKwimport)) /*cast TKwimport*/;
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Assert failed", NULL, LOCATE_parser___parser_prod, 9535);
+ }
+ /* parser/parser_prod.nit:9536 */
+ ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]) = fra.me.REG[2];
+ } else {
+ /* parser/parser_prod.nit:9538 */
+ nit_abort("Aborted", NULL, LOCATE_parser___parser_prod, 9538);
+ }
+ /* parser/parser_prod.nit:9540 */
+ goto label1;
+ }
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_parser___parser_prod___AKwimportAtid___visit_all[] = "parser_prod::AKwimportAtid::(parser_prod::ANode::visit_all)";
+void parser___parser_prod___AKwimportAtid___visit_all(val_t p0, val_t p1){
+ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+ val_t REGB0;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9544;
+ fra.me.meth = LOCATE_parser___parser_prod___AKwimportAtid___visit_all;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 2;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ /* parser/parser_prod.nit:9546 */
+ REGB0 = TAG_Bool(ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0])!=NIT_NULL);
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ nit_abort("Uninitialized attribute %s", "_n_id", LOCATE_parser___parser_prod, 9546);
+ }
+ fra.me.REG[0] = ATTR_parser___parser_nodes___AAtid____n_id(fra.me.REG[0]);
+ CALL_parser___parser_prod___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+ stack_frame_head = fra.me.prev;
+ return;
+}
+static const char LOCATE_parser___parser_prod___Start___replace_child[] = "parser_prod::Start::(parser_prod::ANode::replace_child)";
+void parser___parser_prod___Start___replace_child(val_t p0, val_t p1, val_t p2){
+ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_parser___parser_prod;
+ fra.me.line = 9551;
+ fra.me.meth = LOCATE_parser___parser_prod___Start___replace_child;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 4;
+ fra.me.nitni_local_ref_head = NULL;
+ fra.me.REG[0] = NIT_NULL;
+ fra.me.REG[1] = NIT_NULL;
+ fra.me.REG[2] = NIT_NULL;
+ fra.me.REG[3] = NIT_NULL;
+ fra.me.REG[0] = p0;
+ fra.me.REG[1] = p1;
+ fra.me.REG[2] = p2;
+ /* parser/parser_prod.nit:9553 */
+ fra.me.REG[3] = ATTR_parser___parser_nodes___Start____n_base(fra.me.REG[0]);
+ REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[3]));
+ if (UNTAG_Bool(REGB0)) {
+ } else {
+ REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+ if (UNTAG_Bool(REGB1)) {
+ REGB1 = TAG_Bool(0);
+ REGB0 = REGB1;
+ } else {
+ REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
+ REGB0 = REGB1;
+ }
+ }
+ if (UNTAG_Bool(REGB0)) {
+ /* parser/parser_prod.nit:9554 */