use nitg to bootstrap; drop bootstrap of nitc
[nit.git] / c_src / syntax___flow._sep.c
diff --git a/c_src/syntax___flow._sep.c b/c_src/syntax___flow._sep.c
deleted file mode 100644 (file)
index a3244ee..0000000
+++ /dev/null
@@ -1,1368 +0,0 @@
-/* This C file is generated by NIT to compile module syntax___flow. */
-#include "syntax___flow._sep.h"
-static const char LOCATE_syntax___flow___FlowContext___check_is_set[] = "flow::FlowContext::check_is_set";
-void syntax___flow___FlowContext___check_is_set(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t tmp;
-    static val_t once_value_1; /* Once value */
-    static val_t once_value_2; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___flow;
-  fra.me.line = 34;
-  fra.me.meth = LOCATE_syntax___flow___FlowContext___check_is_set;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
-  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[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* syntax/flow.nit:37 */
-  REGB0 = CALL_syntax___flow___Variable___must_be_set(fra.me.REG[2])(fra.me.REG[2]);
-  if (UNTAG_Bool(REGB0)) {
-    REGB0 = CALL_syntax___flow___FlowContext___is_set(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  } else {
-    REGB1 = TAG_Bool(0);
-    REGB0 = REGB1;
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/flow.nit:38 */
-    REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____visitor(fra.me.REG[0])!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_syntax___flow, 38);
-    }
-    fra.me.REG[0] = ATTR_syntax___flow___FlowContext____visitor(fra.me.REG[0]);
-    REGB0 = TAG_Int(3);
-    fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_1) {
-      fra.me.REG[4] = BOX_NativeString("Error: variable '");
-      REGB0 = TAG_Int(17);
-      fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-      once_value_1 = fra.me.REG[4];
-      register_static_object(&once_value_1);
-    } else fra.me.REG[4] = once_value_1;
-    fra.me.REG[4] = fra.me.REG[4];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-    fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-    if (!once_value_2) {
-      fra.me.REG[2] = BOX_NativeString("' is possibly unset.");
-      REGB0 = TAG_Int(20);
-      fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-      once_value_2 = fra.me.REG[2];
-      register_static_object(&once_value_2);
-    } else fra.me.REG[2] = once_value_2;
-    fra.me.REG[2] = fra.me.REG[2];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-    fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-    CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
-  }
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___flow___FlowContext___stype[] = "flow::FlowContext::stype";
-val_t syntax___flow___FlowContext___stype(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_syntax___flow;
-  fra.me.line = 42;
-  fra.me.meth = LOCATE_syntax___flow___FlowContext___stype;
-  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;
-  /* syntax/flow.nit:46 */
-  fra.me.REG[1] = CALL_syntax___syntax_base___Variable___stype(fra.me.REG[1])(fra.me.REG[1]);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-static const char LOCATE_syntax___flow___FlowContext___sub_setvariable[] = "flow::FlowContext::sub_setvariable";
-val_t syntax___flow___FlowContext___sub_setvariable(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___flow;
-  fra.me.line = 49;
-  fra.me.meth = LOCATE_syntax___flow___FlowContext___sub_setvariable;
-  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;
-  /* syntax/flow.nit:52 */
-  fra.me.REG[2] = CALL_syntax___flow___FlowContext___node(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[2] = NEW_SubFlowContext_syntax___flow___SubFlowContext___with_prev(fra.me.REG[0], fra.me.REG[2]);
-  /* syntax/flow.nit:53 */
-  REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[2])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow, 53);
-  }
-  fra.me.REG[0] = ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[2]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/flow.nit:54 */
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
-}
-static const char LOCATE_syntax___flow___FlowContext___sub_unreash[] = "flow::FlowContext::sub_unreash";
-val_t syntax___flow___FlowContext___sub_unreash(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_syntax___flow;
-  fra.me.line = 57;
-  fra.me.meth = LOCATE_syntax___flow___FlowContext___sub_unreash;
-  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;
-  /* syntax/flow.nit:60 */
-  fra.me.REG[1] = NEW_SubFlowContext_syntax___flow___SubFlowContext___with_prev(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/flow.nit:61 */
-  REGB0 = TAG_Bool(1);
-  ATTR_syntax___flow___FlowContext____unreash(fra.me.REG[1]) = REGB0;
-  /* syntax/flow.nit:62 */
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-static const char LOCATE_syntax___flow___FlowContext___sub_with[] = "flow::FlowContext::sub_with";
-val_t syntax___flow___FlowContext___sub_with(val_t p0, val_t p1, val_t p2, val_t p3){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___flow;
-  fra.me.line = 65;
-  fra.me.meth = LOCATE_syntax___flow___FlowContext___sub_with;
-  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;
-  fra.me.REG[3] = p3;
-  /* syntax/flow.nit:68 */
-  fra.me.REG[3] = NEW_CastFlowContext_syntax___flow___CastFlowContext___init(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[3];
-}
-static const char LOCATE_syntax___flow___FlowContext___merge[] = "flow::FlowContext::merge";
-val_t syntax___flow___FlowContext___merge(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___flow;
-  fra.me.line = 71;
-  fra.me.meth = LOCATE_syntax___flow___FlowContext___merge;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 6;
-  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[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* ../lib/standard/collection/array.nit:267 */
-  fra.me.REG[3] = fra.me.REG[2];
-  /* ../lib/standard/collection/array.nit:270 */
-  REGB0 = TAG_Int(0);
-  /* ../lib/standard/collection/array.nit:271 */
-  REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
-  }
-  REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ../lib/standard/collection/array.nit:272 */
-  fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-  /* ../lib/standard/collection/array.nit:273 */
-  while(1) {
-    /* ../lib/standard/collection/array.nit:24 */
-    REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-    }
-    REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-    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:242 */
-    REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ../lib/standard/collection/array.nit:273 */
-    if (UNTAG_Bool(REGB1)) {
-      /* ../lib/standard/collection/array.nit:274 */
-      REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
-      }
-      /* ../lib/standard/collection/array.nit:725 */
-      fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
-      /* syntax/flow.nit:76 */
-      REGB1 = CALL_syntax___flow___FlowContext___unreash(fra.me.REG[5])(fra.me.REG[5]);
-      REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-      if (UNTAG_Bool(REGB1)) {
-      } else {
-        nit_abort("Assert failed", NULL, LOCATE_syntax___flow, 76);
-      }
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB1 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:245 */
-      REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB0 = REGB1;
-    } else {
-      /* ../lib/standard/collection/array.nit:273 */
-      goto label1;
-    }
-  }
-  label1: while(0);
-  /* ../lib/standard/collection/array.nit:24 */
-  REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-  }
-  REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* syntax/flow.nit:77 */
-  REGB1 = TAG_Int(1);
-  REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
-  if (UNTAG_Bool(REGB2)) {
-  } else {
-    /* ../lib/standard/kernel.nit:237 */
-    REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* syntax/flow.nit:77 */
-    REGB2 = REGB1;
-  }
-  if (UNTAG_Bool(REGB2)) {
-    fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]);
-    goto label2;
-  }
-  /* syntax/flow.nit:78 */
-  fra.me.REG[2] = NEW_MergeFlowContext_syntax___flow___MergeFlowContext___init(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
-  fra.me.REG[4] = fra.me.REG[2];
-  goto label2;
-  label2: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[4];
-}
-static const char LOCATE_syntax___flow___FlowContext___merge_reash[] = "flow::FlowContext::merge_reash";
-val_t syntax___flow___FlowContext___merge_reash(val_t p0, val_t p1, val_t p2, val_t p3){
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___flow;
-  fra.me.line = 81;
-  fra.me.meth = LOCATE_syntax___flow___FlowContext___merge_reash;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 6;
-  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[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  fra.me.REG[3] = p3;
-  /* syntax/flow.nit:86 */
-  REGB0 = CALL_syntax___flow___FlowContext___unreash(fra.me.REG[2])(fra.me.REG[2]);
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/flow.nit:87 */
-    REGB0 = CALL_syntax___flow___FlowContext___unreash(fra.me.REG[3])(fra.me.REG[3]);
-    if (UNTAG_Bool(REGB0)) {
-      /* syntax/flow.nit:88 */
-      fra.me.REG[4] = CALL_syntax___flow___FlowContext___sub_unreash(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-      goto label1;
-    } else {
-      /* syntax/flow.nit:90 */
-      fra.me.REG[5] = fra.me.REG[3];
-      /* syntax/flow.nit:91 */
-      fra.me.REG[3] = fra.me.REG[2];
-      /* syntax/flow.nit:92 */
-      fra.me.REG[2] = fra.me.REG[5];
-    }
-  }
-  /* syntax/flow.nit:96 */
-  REGB0 = CALL_syntax___flow___FlowContext___unreash(fra.me.REG[3])(fra.me.REG[3]);
-  if (UNTAG_Bool(REGB0)) {
-    REGB0 = TAG_Bool(1);
-  } else {
-    REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-      REGB1 = REGB2;
-    }
-    REGB0 = REGB1;
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/flow.nit:97 */
-    fra.me.REG[4] = fra.me.REG[2];
-    goto label1;
-  } else {
-    /* syntax/flow.nit:104 */
-    REGB0 = TAG_Int(2);
-    fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
-    fra.me.REG[5] = CALL_syntax___flow___FlowContext___merge(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[5]);
-    fra.me.REG[4] = fra.me.REG[5];
-    goto label1;
-  }
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[4];
-}
-static const char LOCATE_syntax___flow___FlowContext___node[] = "flow::FlowContext::node";
-val_t syntax___flow___FlowContext___node(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___flow;
-  fra.me.line = 111;
-  fra.me.meth = LOCATE_syntax___flow___FlowContext___node;
-  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;
-  /* syntax/flow.nit:111 */
-  REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____node(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_node", LOCATE_syntax___flow, 111);
-  }
-  fra.me.REG[0] = ATTR_syntax___flow___FlowContext____node(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_syntax___flow___FlowContext___init[] = "flow::FlowContext::init";
-void syntax___flow___FlowContext___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___flow___FlowContext].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  if (init_table[itpos0]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___flow;
-  fra.me.line = 114;
-  fra.me.meth = LOCATE_syntax___flow___FlowContext___init;
-  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;
-  fra.me.REG[2] = p2;
-  /* syntax/flow.nit:116 */
-  ATTR_syntax___flow___FlowContext____visitor(fra.me.REG[0]) = fra.me.REG[1];
-  /* syntax/flow.nit:117 */
-  ATTR_syntax___flow___FlowContext____node(fra.me.REG[0]) = fra.me.REG[2];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos0] = 1;
-  return;
-}
-static const char LOCATE_syntax___flow___FlowContext___unreash[] = "flow::FlowContext::unreash";
-val_t syntax___flow___FlowContext___unreash(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___flow;
-  fra.me.line = 120;
-  fra.me.meth = LOCATE_syntax___flow___FlowContext___unreash;
-  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;
-  /* syntax/flow.nit:120 */
-  REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____unreash(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_unreash", LOCATE_syntax___flow, 120);
-  }
-  REGB0 = ATTR_syntax___flow___FlowContext____unreash(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___flow___FlowContext___already_unreash[] = "flow::FlowContext::already_unreash";
-val_t syntax___flow___FlowContext___already_unreash(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___flow;
-  fra.me.line = 123;
-  fra.me.meth = LOCATE_syntax___flow___FlowContext___already_unreash;
-  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;
-  /* syntax/flow.nit:123 */
-  REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____already_unreash(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_already_unreash", LOCATE_syntax___flow, 123);
-  }
-  REGB0 = ATTR_syntax___flow___FlowContext____already_unreash(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___flow___FlowContext___already_unreash__eq[] = "flow::FlowContext::already_unreash=";
-void syntax___flow___FlowContext___already_unreash__eq(val_t p0, val_t p1){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___flow;
-  fra.me.line = 123;
-  fra.me.meth = LOCATE_syntax___flow___FlowContext___already_unreash__eq;
-  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;
-  REGB0 = p1;
-  /* syntax/flow.nit:123 */
-  ATTR_syntax___flow___FlowContext____already_unreash(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___flow___FlowContext___set_variables[] = "flow::FlowContext::set_variables";
-val_t syntax___flow___FlowContext___set_variables(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___flow;
-  fra.me.line = 127;
-  fra.me.meth = LOCATE_syntax___flow___FlowContext___set_variables;
-  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;
-  /* syntax/flow.nit:127 */
-  REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow, 127);
-  }
-  fra.me.REG[0] = ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_syntax___flow___FlowContext___is_set[] = "flow::FlowContext::is_set";
-val_t syntax___flow___FlowContext___is_set(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_syntax___flow;
-  fra.me.line = 130;
-  fra.me.meth = LOCATE_syntax___flow___FlowContext___is_set;
-  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;
-  /* syntax/flow.nit:133 */
-  REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow, 133);
-  }
-  fra.me.REG[0] = ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[0]);
-  REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___flow___RootFlowContext___init[] = "flow::RootFlowContext::init";
-void syntax___flow___RootFlowContext___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___flow___RootFlowContext].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  if (init_table[itpos1]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___flow;
-  fra.me.line = 140;
-  fra.me.meth = LOCATE_syntax___flow___RootFlowContext___init;
-  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;
-  fra.me.REG[2] = p2;
-  /* syntax/flow.nit:142 */
-  CALL_syntax___flow___FlowContext___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  stack_frame_head = fra.me.prev;
-  init_table[itpos1] = 1;
-  return;
-}
-static const char LOCATE_syntax___flow___SubFlowContext___prev[] = "flow::SubFlowContext::prev";
-val_t syntax___flow___SubFlowContext___prev(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___flow;
-  fra.me.line = 149;
-  fra.me.meth = LOCATE_syntax___flow___SubFlowContext___prev;
-  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;
-  /* syntax/flow.nit:149 */
-  REGB0 = TAG_Bool(ATTR_syntax___flow___SubFlowContext____prev(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_prev", LOCATE_syntax___flow, 149);
-  }
-  fra.me.REG[0] = ATTR_syntax___flow___SubFlowContext____prev(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_syntax___flow___SubFlowContext___is_set[] = "flow::SubFlowContext::(flow::FlowContext::is_set)";
-val_t syntax___flow___SubFlowContext___is_set(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} 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_syntax___flow;
-  fra.me.line = 151;
-  fra.me.meth = LOCATE_syntax___flow___SubFlowContext___is_set;
-  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;
-  /* syntax/flow.nit:153 */
-  REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow, 153);
-  }
-  fra.me.REG[2] = ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[0]);
-  REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  if (UNTAG_Bool(REGB0)) {
-    REGB0 = TAG_Bool(1);
-  } else {
-    REGB1 = TAG_Bool(ATTR_syntax___flow___SubFlowContext____prev(fra.me.REG[0])!=NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_prev", LOCATE_syntax___flow, 153);
-    }
-    fra.me.REG[0] = ATTR_syntax___flow___SubFlowContext____prev(fra.me.REG[0]);
-    REGB1 = CALL_syntax___flow___FlowContext___is_set(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-    REGB0 = REGB1;
-  }
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___flow___SubFlowContext___stype[] = "flow::SubFlowContext::(flow::FlowContext::stype)";
-val_t syntax___flow___SubFlowContext___stype(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_syntax___flow;
-  fra.me.line = 156;
-  fra.me.meth = LOCATE_syntax___flow___SubFlowContext___stype;
-  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;
-  /* syntax/flow.nit:158 */
-  fra.me.REG[0] = CALL_syntax___flow___SubFlowContext___prev(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[1] = CALL_syntax___flow___FlowContext___stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-static const char LOCATE_syntax___flow___SubFlowContext___with_prev[] = "flow::SubFlowContext::with_prev";
-void syntax___flow___SubFlowContext___with_prev(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___flow___SubFlowContext].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t REGB0;
-  val_t tmp;
-  if (init_table[itpos2]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___flow;
-  fra.me.line = 161;
-  fra.me.meth = LOCATE_syntax___flow___SubFlowContext___with_prev;
-  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;
-  /* syntax/flow.nit:163 */
-  REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____visitor(fra.me.REG[1])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_syntax___flow, 163);
-  }
-  fra.me.REG[3] = ATTR_syntax___flow___FlowContext____visitor(fra.me.REG[1]);
-  CALL_syntax___flow___FlowContext___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2], init_table);
-  /* syntax/flow.nit:164 */
-  ATTR_syntax___flow___SubFlowContext____prev(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos2] = 1;
-  return;
-}
-static const char LOCATE_syntax___flow___CastFlowContext___stype[] = "flow::CastFlowContext::(flow::FlowContext::stype)";
-val_t syntax___flow___CastFlowContext___stype(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} 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_syntax___flow;
-  fra.me.line = 177;
-  fra.me.meth = LOCATE_syntax___flow___CastFlowContext___stype;
-  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;
-  /* syntax/flow.nit:179 */
-  REGB0 = TAG_Bool(ATTR_syntax___flow___CastFlowContext____variable(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_variable", LOCATE_syntax___flow, 179);
-  }
-  fra.me.REG[2] = ATTR_syntax___flow___CastFlowContext____variable(fra.me.REG[0]);
-  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[2]));
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-    REGB0 = REGB1;
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/flow.nit:180 */
-    fra.me.REG[2] = ATTR_syntax___flow___CastFlowContext____stype(fra.me.REG[0]);
-    goto label1;
-  } else {
-    /* syntax/flow.nit:182 */
-    fra.me.REG[0] = CALL_syntax___flow___SubFlowContext___prev(fra.me.REG[0])(fra.me.REG[0]);
-    fra.me.REG[1] = CALL_syntax___flow___FlowContext___stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-    fra.me.REG[2] = fra.me.REG[1];
-    goto label1;
-  }
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
-}
-static const char LOCATE_syntax___flow___CastFlowContext___init[] = "flow::CastFlowContext::init";
-void syntax___flow___CastFlowContext___init(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
-  int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___flow___CastFlowContext].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
-  val_t tmp;
-  if (init_table[itpos3]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___flow;
-  fra.me.line = 186;
-  fra.me.meth = LOCATE_syntax___flow___CastFlowContext___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
-  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[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  fra.me.REG[3] = p3;
-  fra.me.REG[4] = p4;
-  /* syntax/flow.nit:188 */
-  CALL_syntax___flow___SubFlowContext___with_prev(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  /* syntax/flow.nit:189 */
-  ATTR_syntax___flow___CastFlowContext____variable(fra.me.REG[0]) = fra.me.REG[3];
-  /* syntax/flow.nit:190 */
-  ATTR_syntax___flow___CastFlowContext____stype(fra.me.REG[0]) = fra.me.REG[4];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos3] = 1;
-  return;
-}
-static const char LOCATE_syntax___flow___MergeFlowContext___init[] = "flow::MergeFlowContext::init";
-void syntax___flow___MergeFlowContext___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
-  int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___flow___MergeFlowContext].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
-  val_t REGB0;
-  val_t tmp;
-  if (init_table[itpos4]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___flow;
-  fra.me.line = 204;
-  fra.me.meth = LOCATE_syntax___flow___MergeFlowContext___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 6;
-  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[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  fra.me.REG[3] = p3;
-  /* syntax/flow.nit:204 */
-  fra.me.REG[4] = fra.me.REG[0];
-  /* syntax/flow.nit:206 */
-  REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____visitor(fra.me.REG[1])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_syntax___flow, 206);
-  }
-  fra.me.REG[5] = ATTR_syntax___flow___FlowContext____visitor(fra.me.REG[1]);
-  CALL_syntax___flow___FlowContext___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[2], init_table);
-  /* syntax/flow.nit:207 */
-  ATTR_syntax___flow___MergeFlowContext____alts(fra.me.REG[4]) = fra.me.REG[3];
-  /* syntax/flow.nit:208 */
-  ATTR_syntax___flow___MergeFlowContext____base(fra.me.REG[4]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos4] = 1;
-  return;
-}
-static const char LOCATE_syntax___flow___MergeFlowContext___stype[] = "flow::MergeFlowContext::(flow::FlowContext::stype)";
-val_t syntax___flow___MergeFlowContext___stype(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___flow;
-  fra.me.line = 211;
-  fra.me.meth = LOCATE_syntax___flow___MergeFlowContext___stype;
-  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;
-  /* syntax/flow.nit:213 */
-  REGB0 = TAG_Bool(ATTR_syntax___flow___MergeFlowContext____stypes(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_stypes", LOCATE_syntax___flow, 213);
-  }
-  fra.me.REG[2] = ATTR_syntax___flow___MergeFlowContext____stypes(fra.me.REG[0]);
-  REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/flow.nit:214 */
-    REGB0 = TAG_Bool(ATTR_syntax___flow___MergeFlowContext____stypes(fra.me.REG[0])!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_stypes", LOCATE_syntax___flow, 214);
-    }
-    fra.me.REG[2] = ATTR_syntax___flow___MergeFlowContext____stypes(fra.me.REG[0]);
-    fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-    goto label1;
-  } else {
-    /* syntax/flow.nit:216 */
-    fra.me.REG[3] = CALL_syntax___flow___MergeFlowContext___merge_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-    /* syntax/flow.nit:217 */
-    REGB0 = TAG_Bool(ATTR_syntax___flow___MergeFlowContext____stypes(fra.me.REG[0])!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_stypes", LOCATE_syntax___flow, 217);
-    }
-    fra.me.REG[0] = ATTR_syntax___flow___MergeFlowContext____stypes(fra.me.REG[0]);
-    CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
-    /* syntax/flow.nit:218 */
-    fra.me.REG[2] = fra.me.REG[3];
-    goto label1;
-  }
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[2];
-}
-static const char LOCATE_syntax___flow___MergeFlowContext___merge_stype[] = "flow::MergeFlowContext::merge_stype";
-val_t syntax___flow___MergeFlowContext___merge_stype(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t REGB3;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___flow;
-  fra.me.line = 222;
-  fra.me.meth = LOCATE_syntax___flow___MergeFlowContext___merge_stype;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 9;
-  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[7] = NIT_NULL;
-  fra.me.REG[8] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* syntax/flow.nit:224 */
-  fra.me.REG[2] = NIT_NULL;
-  /* syntax/flow.nit:225 */
-  REGB0 = TAG_Bool(0);
-  /* syntax/flow.nit:226 */
-  REGB1 = TAG_Bool(ATTR_syntax___flow___MergeFlowContext____alts(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_alts", LOCATE_syntax___flow, 226);
-  }
-  fra.me.REG[3] = ATTR_syntax___flow___MergeFlowContext____alts(fra.me.REG[0]);
-  fra.me.REG[3] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[3])(fra.me.REG[3]);
-  REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___flow, 226);
-  }
-  fra.me.REG[3] = CALL_syntax___flow___FlowContext___stype(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-  /* syntax/flow.nit:227 */
-  REGB1 = TAG_Bool(ATTR_syntax___flow___MergeFlowContext____alts(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_alts", LOCATE_syntax___flow, 227);
-  }
-  fra.me.REG[4] = ATTR_syntax___flow___MergeFlowContext____alts(fra.me.REG[0]);
-  /* ../lib/standard/collection/array.nit:270 */
-  REGB1 = TAG_Int(0);
-  /* ../lib/standard/collection/array.nit:271 */
-  REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
-  if (UNTAG_Bool(REGB2)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
-  }
-  REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-  /* ../lib/standard/collection/array.nit:272 */
-  fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
-  /* ../lib/standard/collection/array.nit:273 */
-  while(1) {
-    /* ../lib/standard/collection/array.nit:24 */
-    REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-    }
-    REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-    REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
-    if (UNTAG_Bool(REGB3)) {
-    } else {
-      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-    }
-    /* ../lib/standard/kernel.nit:242 */
-    REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ../lib/standard/collection/array.nit:273 */
-    if (UNTAG_Bool(REGB2)) {
-      /* ../lib/standard/collection/array.nit:274 */
-      REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
-      }
-      /* ../lib/standard/collection/array.nit:725 */
-      fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
-      /* syntax/flow.nit:228 */
-      fra.me.REG[6] = CALL_syntax___flow___FlowContext___stype(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1]);
-      /* syntax/flow.nit:229 */
-      REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-      } else {
-        REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-          REGB3 = TAG_Bool(0);
-          REGB2 = REGB3;
-        } else {
-          REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
-          REGB2 = REGB3;
-        }
-      }
-      if (UNTAG_Bool(REGB2)) {
-        /* syntax/flow.nit:230 */
-        fra.me.REG[7] = NIT_NULL;
-        goto label1;
-      }
-      /* syntax/flow.nit:232 */
-      REGB2 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[6],fra.me.REG[3]));
-      if (UNTAG_Bool(REGB2)) {
-      } else {
-        REGB3 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-          REGB3 = TAG_Bool(0);
-          REGB2 = REGB3;
-        } else {
-          REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
-          REGB2 = REGB3;
-        }
-      }
-      REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
-      if (UNTAG_Bool(REGB2)) {
-        /* syntax/flow.nit:233 */
-        fra.me.REG[3] = NIT_NULL;
-      }
-      /* syntax/flow.nit:235 */
-      REGB2 = TAG_Bool((fra.me.REG[6]!=NIT_NULL) && VAL_ISA(fra.me.REG[6], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
-      if (UNTAG_Bool(REGB2)) {
-        /* syntax/flow.nit:236 */
-        REGB2 = TAG_Bool(1);
-        REGB0 = REGB2;
-        /* syntax/flow.nit:237 */
-        goto label2;
-      }
-      /* syntax/flow.nit:239 */
-      REGB2 = TAG_Bool((fra.me.REG[6]!=NIT_NULL) && VAL_ISA(fra.me.REG[6], COLOR_metamodel___static_type___MMNullableType, ID_metamodel___static_type___MMNullableType)) /*cast MMNullableType*/;
-      if (UNTAG_Bool(REGB2)) {
-        /* syntax/flow.nit:240 */
-        REGB2 = TAG_Bool(1);
-        REGB0 = REGB2;
-        /* syntax/flow.nit:241 */
-        REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-        if (UNTAG_Bool(REGB2)) {
-          nit_abort("Reciever is null", NULL, LOCATE_syntax___flow, 241);
-        }
-        fra.me.REG[8] = CALL_metamodel___static_type___MMType___as_notnull(fra.me.REG[6])(fra.me.REG[6]);
-        fra.me.REG[6] = fra.me.REG[8];
-      }
-      /* syntax/flow.nit:243 */
-      REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-      } else {
-        REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-          REGB3 = TAG_Bool(0);
-          REGB2 = REGB3;
-        } else {
-          REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
-          REGB2 = REGB3;
-        }
-      }
-      if (UNTAG_Bool(REGB2)) {
-        REGB2 = TAG_Bool(1);
-      } else {
-        REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-          nit_abort("Reciever is null", NULL, LOCATE_syntax___flow, 243);
-        }
-        REGB3 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
-        REGB2 = REGB3;
-      }
-      if (UNTAG_Bool(REGB2)) {
-        /* syntax/flow.nit:244 */
-        fra.me.REG[2] = fra.me.REG[6];
-      }
-      label2: while(0);
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB2 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:245 */
-      REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB1 = REGB2;
-    } else {
-      /* ../lib/standard/collection/array.nit:273 */
-      goto label3;
-    }
-  }
-  label3: while(0);
-  /* syntax/flow.nit:247 */
-  REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-      REGB2 = TAG_Bool(0);
-      REGB1 = REGB2;
-    } else {
-      REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
-      REGB1 = REGB2;
-    }
-  }
-  REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-  if (UNTAG_Bool(REGB1)) {
-    /* syntax/flow.nit:248 */
-    fra.me.REG[7] = fra.me.REG[3];
-    goto label1;
-  }
-  /* syntax/flow.nit:250 */
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/flow.nit:251 */
-    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;
-      }
-    }
-    if (UNTAG_Bool(REGB0)) {
-      /* syntax/flow.nit:252 */
-      REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____visitor(fra.me.REG[0])!=NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-      } else {
-        nit_abort("Uninitialized attribute %s", "_visitor", LOCATE_syntax___flow, 252);
-      }
-      fra.me.REG[3] = ATTR_syntax___flow___FlowContext____visitor(fra.me.REG[0]);
-      fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_none(fra.me.REG[3])(fra.me.REG[3]);
-      fra.me.REG[7] = fra.me.REG[3];
-      goto label1;
-    } else {
-      /* syntax/flow.nit:254 */
-      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___flow, 254);
-      }
-      fra.me.REG[3] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[2])(fra.me.REG[2]);
-      fra.me.REG[2] = fra.me.REG[3];
-    }
-  }
-  /* syntax/flow.nit:257 */
-  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;
-    }
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/flow.nit:258 */
-    REGB0 = TAG_Bool(ATTR_syntax___flow___MergeFlowContext____base(fra.me.REG[0])!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_base", LOCATE_syntax___flow, 258);
-    }
-    fra.me.REG[3] = ATTR_syntax___flow___MergeFlowContext____base(fra.me.REG[0]);
-    fra.me.REG[3] = CALL_syntax___flow___FlowContext___stype(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-    fra.me.REG[7] = fra.me.REG[3];
-    goto label1;
-  } else {
-    /* syntax/flow.nit:260 */
-    REGB0 = TAG_Bool(ATTR_syntax___flow___MergeFlowContext____alts(fra.me.REG[0])!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_alts", LOCATE_syntax___flow, 260);
-    }
-    fra.me.REG[3] = ATTR_syntax___flow___MergeFlowContext____alts(fra.me.REG[0]);
-    /* ../lib/standard/collection/array.nit:270 */
-    REGB0 = TAG_Int(0);
-    /* ../lib/standard/collection/array.nit:271 */
-    REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
-    }
-    REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-    /* ../lib/standard/collection/array.nit:272 */
-    fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-    /* ../lib/standard/collection/array.nit:273 */
-    while(1) {
-      /* ../lib/standard/collection/array.nit:24 */
-      REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-      } else {
-        nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-      }
-      REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-      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:242 */
-      REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-      /* ../lib/standard/collection/array.nit:273 */
-      if (UNTAG_Bool(REGB1)) {
-        /* ../lib/standard/collection/array.nit:274 */
-        REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-        if (UNTAG_Bool(REGB1)) {
-          nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
-        }
-        /* ../lib/standard/collection/array.nit:725 */
-        fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
-        /* syntax/flow.nit:261 */
-        fra.me.REG[4] = CALL_syntax___flow___FlowContext___stype(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
-        /* syntax/flow.nit:262 */
-        REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-        if (UNTAG_Bool(REGB1)) {
-          nit_abort("Reciever is null", NULL, LOCATE_syntax___flow, 262);
-        }
-        REGB1 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-        REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-        if (UNTAG_Bool(REGB1)) {
-          /* syntax/flow.nit:263 */
-          REGB1 = TAG_Bool(ATTR_syntax___flow___MergeFlowContext____base(fra.me.REG[0])!=NIT_NULL);
-          if (UNTAG_Bool(REGB1)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_base", LOCATE_syntax___flow, 263);
-          }
-          fra.me.REG[4] = ATTR_syntax___flow___MergeFlowContext____base(fra.me.REG[0]);
-          fra.me.REG[4] = CALL_syntax___flow___FlowContext___stype(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
-          fra.me.REG[7] = fra.me.REG[4];
-          goto label1;
-        }
-        /* ../lib/standard/collection/array.nit:275 */
-        REGB1 = TAG_Int(1);
-        /* ../lib/standard/kernel.nit:245 */
-        REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-        /* ../lib/standard/collection/array.nit:275 */
-        REGB0 = REGB1;
-      } else {
-        /* ../lib/standard/collection/array.nit:273 */
-        goto label4;
-      }
-    }
-    label4: while(0);
-  }
-  /* syntax/flow.nit:267 */
-  fra.me.REG[7] = fra.me.REG[2];
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[7];
-}
-static const char LOCATE_syntax___flow___MergeFlowContext___is_set[] = "flow::MergeFlowContext::(flow::FlowContext::is_set)";
-val_t syntax___flow___MergeFlowContext___is_set(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t REGB3;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___flow;
-  fra.me.line = 270;
-  fra.me.meth = LOCATE_syntax___flow___MergeFlowContext___is_set;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
-  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[0] = p0;
-  fra.me.REG[1] = p1;
-  /* syntax/flow.nit:272 */
-  REGB0 = TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow, 272);
-  }
-  fra.me.REG[2] = ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[0]);
-  REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/flow.nit:273 */
-    REGB0 = TAG_Bool(1);
-    goto label1;
-  } else {
-    /* syntax/flow.nit:275 */
-    REGB1 = TAG_Bool(ATTR_syntax___flow___MergeFlowContext____alts(fra.me.REG[0])!=NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_alts", LOCATE_syntax___flow, 275);
-    }
-    fra.me.REG[2] = ATTR_syntax___flow___MergeFlowContext____alts(fra.me.REG[0]);
-    /* ../lib/standard/collection/array.nit:270 */
-    REGB1 = TAG_Int(0);
-    /* ../lib/standard/collection/array.nit:271 */
-    REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
-    }
-    REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-    /* ../lib/standard/collection/array.nit:272 */
-    fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-    /* ../lib/standard/collection/array.nit:273 */
-    while(1) {
-      /* ../lib/standard/collection/array.nit:24 */
-      REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-      } else {
-        nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-      }
-      REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-      REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
-      if (UNTAG_Bool(REGB3)) {
-      } else {
-        nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-      }
-      /* ../lib/standard/kernel.nit:242 */
-      REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-      /* ../lib/standard/collection/array.nit:273 */
-      if (UNTAG_Bool(REGB2)) {
-        /* ../lib/standard/collection/array.nit:274 */
-        REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-        if (UNTAG_Bool(REGB2)) {
-          nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
-        }
-        /* ../lib/standard/collection/array.nit:725 */
-        fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB1)];
-        /* syntax/flow.nit:276 */
-        REGB2 = CALL_syntax___flow___FlowContext___is_set(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
-        REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
-        if (UNTAG_Bool(REGB2)) {
-          /* syntax/flow.nit:277 */
-          REGB2 = TAG_Bool(0);
-          REGB0 = REGB2;
-          goto label1;
-        }
-        /* ../lib/standard/collection/array.nit:275 */
-        REGB2 = TAG_Int(1);
-        /* ../lib/standard/kernel.nit:245 */
-        REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-        /* ../lib/standard/collection/array.nit:275 */
-        REGB1 = REGB2;
-      } else {
-        /* ../lib/standard/collection/array.nit:273 */
-        goto label2;
-      }
-    }
-    label2: while(0);
-    /* syntax/flow.nit:280 */
-    REGB1 = TAG_Bool(ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[0])!=NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_set_variables", LOCATE_syntax___flow, 280);
-    }
-    fra.me.REG[0] = ATTR_syntax___flow___FlowContext____set_variables(fra.me.REG[0]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-    /* syntax/flow.nit:281 */
-    REGB1 = TAG_Bool(1);
-    REGB0 = REGB1;
-    goto label1;
-  }
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___flow___Variable___must_be_set[] = "flow::Variable::must_be_set";
-val_t syntax___flow___Variable___must_be_set(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___flow;
-  fra.me.line = 288;
-  fra.me.meth = LOCATE_syntax___flow___Variable___must_be_set;
-  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;
-  /* syntax/flow.nit:289 */
-  REGB0 = TAG_Bool(0);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___flow___VarVariable___must_be_set[] = "flow::VarVariable::(flow::Variable::must_be_set)";
-val_t syntax___flow___VarVariable___must_be_set(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___flow;
-  fra.me.line = 293;
-  fra.me.meth = LOCATE_syntax___flow___VarVariable___must_be_set;
-  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;
-  /* syntax/flow.nit:293 */
-  REGB0 = TAG_Bool(1);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}