use nitg to bootstrap; drop bootstrap of nitc
[nit.git] / c_src / syntax___mmbuilder._sep.c
diff --git a/c_src/syntax___mmbuilder._sep.c b/c_src/syntax___mmbuilder._sep.c
deleted file mode 100644 (file)
index 9dbda0c..0000000
+++ /dev/null
@@ -1,11144 +0,0 @@
-/* This C file is generated by NIT to compile module syntax___mmbuilder. */
-#include "syntax___mmbuilder._sep.h"
-static const char LOCATE_syntax___mmbuilder___ToolContext___handle_property_conflict[] = "mmbuilder::ToolContext::(inheritance::MMContext::handle_property_conflict)";
-void syntax___mmbuilder___ToolContext___handle_property_conflict(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t tmp;
-  static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-  static val_t once_value_4; /* Once value */
-  static val_t once_value_5; /* Once value */
-  static val_t once_value_6; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 26;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ToolContext___handle_property_conflict;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 8;
-  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[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* syntax/mmbuilder.nit:28 */
-  fra.me.REG[3] = NIT_NULL;
-  /* syntax/mmbuilder.nit:29 */
-  REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_syntax___syntax_base___MMSrcLocalClass, ID_syntax___syntax_base___MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:30 */
-    fra.me.REG[4] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[1])(fra.me.REG[1]);
-    /* syntax/mmbuilder.nit:31 */
-    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)) {
-      REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 31);
-      }
-      CALL_parser___parser_nodes___ANode___location(fra.me.REG[4])(fra.me.REG[4]);
-    }
-  }
-  /* syntax/mmbuilder.nit:34 */
-  fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
-  /* ../lib/standard/collection/array.nit:267 */
-  fra.me.REG[5] = 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[5])!=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[5]);
-  /* ../lib/standard/collection/array.nit:272 */
-  fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-  /* ../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[5])!=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[5]);
-    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[6]==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[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
-      /* syntax/mmbuilder.nit:36 */
-      fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[7])(fra.me.REG[7]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
-      /* ../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);
-  /* syntax/mmbuilder.nit:38 */
-  REGB0 = TAG_Int(7);
-  fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_2) {
-    fra.me.REG[5] = BOX_NativeString("Property inheritance conflict in class ");
-    REGB0 = TAG_Int(39);
-    fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-    once_value_2 = fra.me.REG[5];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[5] = once_value_2;
-  fra.me.REG[5] = fra.me.REG[5];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
-  fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1]);
-  if (!once_value_3) {
-    fra.me.REG[1] = BOX_NativeString(" for `");
-    REGB0 = TAG_Int(6);
-    fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0);
-    once_value_3 = fra.me.REG[1];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[1] = once_value_3;
-  fra.me.REG[1] = fra.me.REG[1];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1]);
-  fra.me.REG[2] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 38);
-  }
-  fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
-  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[6])(fra.me.REG[6], fra.me.REG[2]);
-  if (!once_value_4) {
-    fra.me.REG[2] = BOX_NativeString("': conflicting properties are defined in ");
-    REGB0 = TAG_Int(41);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    once_value_4 = fra.me.REG[2];
-    register_static_object(&once_value_4);
-  } else fra.me.REG[2] = once_value_4;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
-  if (!once_value_5) {
-    fra.me.REG[2] = BOX_NativeString(", ");
-    REGB0 = TAG_Int(2);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    once_value_5 = fra.me.REG[2];
-    register_static_object(&once_value_5);
-  } else fra.me.REG[2] = once_value_5;
-  fra.me.REG[2] = fra.me.REG[2];
-  fra.me.REG[2] = CALL_standard___string___Collection___join(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
-  if (!once_value_6) {
-    fra.me.REG[2] = BOX_NativeString("");
-    REGB0 = TAG_Int(0);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    once_value_6 = fra.me.REG[2];
-    register_static_object(&once_value_6);
-  } else fra.me.REG[2] = once_value_6;
-  fra.me.REG[2] = fra.me.REG[2];
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2]);
-  fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-  CALL_toolcontext___ToolContext___fatal_error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[6]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___CSHSorter___compare[] = "mmbuilder::CSHSorter::(sorter::AbstractSorter::compare)";
-val_t syntax___mmbuilder___CSHSorter___compare(val_t p0, val_t p1, val_t p2){
-  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___mmbuilder;
-  fra.me.line = 45;
-  fra.me.meth = LOCATE_syntax___mmbuilder___CSHSorter___compare;
-  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/mmbuilder.nit:47 */
-  fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = CALL_metamodel___partial_order___PartialOrderElement___rank(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[2])(fra.me.REG[2]);
-  REGB1 = CALL_metamodel___partial_order___PartialOrderElement___rank(fra.me.REG[2])(fra.me.REG[2]);
-  REGB1 = CALL_standard___kernel___Comparable_____leqg(REGB0)(REGB0, REGB1);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB1;
-}
-static const char LOCATE_syntax___mmbuilder___CSHSorter___init[] = "mmbuilder::CSHSorter::init";
-void syntax___mmbuilder___CSHSorter___init(val_t p0, int* init_table){
-  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___CSHSorter].i;
-  struct {struct stack_frame_t me;} 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___mmbuilder;
-  fra.me.line = 50;
-  fra.me.meth = LOCATE_syntax___mmbuilder___CSHSorter___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[itpos0] = 1;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___MMSrcModule___do_mmbuilder[] = "mmbuilder::MMSrcModule::do_mmbuilder";
-void syntax___mmbuilder___MMSrcModule___do_mmbuilder(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t tmp;
-  static val_t once_value_3; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 54;
-  fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcModule___do_mmbuilder;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 8;
-  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[0] = p0;
-  fra.me.REG[1] = p1;
-  /* syntax/mmbuilder.nit:59 */
-  CALL_metamodel___inheritance___MMModule___import_global_classes(fra.me.REG[0])(fra.me.REG[0]);
-  /* syntax/mmbuilder.nit:62 */
-  fra.me.REG[2] = NEW_ClassBuilderVisitor_syntax___mmbuilder___ClassBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
-  /* syntax/mmbuilder.nit:63 */
-  fra.me.REG[3] = CALL_syntax___syntax_base___MMSrcModule___node(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_parser___parser_nodes___Visitor___enter_visit(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* syntax/mmbuilder.nit:64 */
-  CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:66 */
-  fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 66);
-  }
-  fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[3])(fra.me.REG[3]);
-  REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:67 */
-    CALL_syntax___mmbuilder___MMSrcModule___process_default_classes(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  }
-  /* syntax/mmbuilder.nit:71 */
-  CALL_metamodel___inheritance___MMModule___import_local_classes(fra.me.REG[0])(fra.me.REG[0]);
-  /* syntax/mmbuilder.nit:74 */
-  fra.me.REG[3] = NEW_ClassSpecializationBuilderVisitor_syntax___mmbuilder___ClassSpecializationBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
-  /* syntax/mmbuilder.nit:75 */
-  fra.me.REG[2] = CALL_syntax___syntax_base___MMSrcModule___node(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_parser___parser_nodes___Visitor___enter_visit(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* syntax/mmbuilder.nit:76 */
-  CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:79 */
-  fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcModule___do_mmbuilder_1));
-  /* syntax/mmbuilder.nit:85 */
-  CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:90 */
-  fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___class_specialization_hierarchy(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[2] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[2])(fra.me.REG[2]);
-  /* syntax/mmbuilder.nit:93 */
-  if (!once_value_3) {
-    fra.me.REG[3] = NEW_CSHSorter_syntax___mmbuilder___CSHSorter___init();
-    once_value_3 = fra.me.REG[3];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[3] = once_value_3;
-  fra.me.REG[3] = fra.me.REG[3];
-  /* syntax/mmbuilder.nit:94 */
-  CALL_standard___collection___sorter___AbstractSorter___sort(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* syntax/mmbuilder.nit:97 */
-  fra.me.REG[3] = NEW_ClassAncestorBuilder_syntax___mmbuilder___ClassAncestorBuilder___init(fra.me.REG[1], fra.me.REG[0]);
-  /* ../lib/standard/collection/array.nit:267 */
-  fra.me.REG[4] = 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[4])!=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[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 */
-    REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=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[4]);
-    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[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
-      /* syntax/mmbuilder.nit:99 */
-      CALL_syntax___mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
-      /* syntax/mmbuilder.nit:100 */
-      CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
-      /* syntax/mmbuilder.nit:101 */
-      CALL_metamodel___inheritance___MMLocalClass___compute_ancestors(fra.me.REG[6])(fra.me.REG[6]);
-      /* ../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/mmbuilder.nit:105 */
-  fra.me.REG[3] = NEW_ClassVerifierVisitor_syntax___mmbuilder___ClassVerifierVisitor___init(fra.me.REG[1], fra.me.REG[0]);
-  /* ../lib/standard/collection/array.nit:267 */
-  fra.me.REG[5] = 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[5])!=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[5]);
-  /* ../lib/standard/collection/array.nit:272 */
-  fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-  /* ../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[5])!=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[5]);
-    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[6] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
-      /* syntax/mmbuilder.nit:107 */
-      CALL_syntax___mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
-      /* ../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 label5;
-    }
-  }
-  label5: while(0);
-  /* syntax/mmbuilder.nit:109 */
-  CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:112 */
-  fra.me.REG[3] = NEW_PropertyBuilderVisitor_syntax___mmbuilder___PropertyBuilderVisitor___init(fra.me.REG[1], fra.me.REG[0]);
-  /* ../lib/standard/collection/array.nit:267 */
-  fra.me.REG[4] = 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[4])!=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[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 */
-    REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=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[4]);
-    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[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
-      /* syntax/mmbuilder.nit:115 */
-      CALL_syntax___mmbuilder___MMLocalClass___accept_class_visitor(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
-      /* syntax/mmbuilder.nit:118 */
-      REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[6], COLOR_syntax___syntax_base___MMSrcLocalClass, ID_syntax___syntax_base___MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
-      if (UNTAG_Bool(REGB1)) {
-        fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
-        fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[7])(fra.me.REG[7]);
-        REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[7],fra.me.REG[6]));
-        if (UNTAG_Bool(REGB1)) {
-        } else {
-          REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
-          REGB1 = REGB2;
-        }
-      } else {
-        REGB2 = TAG_Bool(0);
-        REGB1 = REGB2;
-      }
-      if (UNTAG_Bool(REGB1)) {
-        fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
-        REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[7])(fra.me.REG[7]);
-        REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-      } else {
-        REGB2 = TAG_Bool(0);
-        REGB1 = REGB2;
-      }
-      if (UNTAG_Bool(REGB1)) {
-        fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
-        REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[7])(fra.me.REG[7]);
-        REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-      } else {
-        REGB2 = TAG_Bool(0);
-        REGB1 = REGB2;
-      }
-      if (UNTAG_Bool(REGB1)) {
-        fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[6])(fra.me.REG[6]);
-        REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[7])(fra.me.REG[7]);
-        REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-      } else {
-        REGB2 = TAG_Bool(0);
-        REGB1 = REGB2;
-      }
-      if (UNTAG_Bool(REGB1)) {
-        /* syntax/mmbuilder.nit:119 */
-        CALL_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
-      }
-      /* ../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 label6;
-    }
-  }
-  label6: while(0);
-  /* syntax/mmbuilder.nit:124 */
-  CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:127 */
-  fra.me.REG[0] = NEW_PropertyVerifierVisitor_syntax___mmbuilder___PropertyVerifierVisitor___init(fra.me.REG[1], 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[2])!=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[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 */
-    REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=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[2]);
-    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[3]==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[3])->val[UNTAG_Int(REGB0)];
-      /* syntax/mmbuilder.nit:129 */
-      CALL_syntax___mmbuilder___MMLocalClass___accept_properties_visitor(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
-      /* ../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 label7;
-    }
-  }
-  label7: while(0);
-  /* syntax/mmbuilder.nit:132 */
-  CALL_toolcontext___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-  void OC_syntax___mmbuilder___MMSrcModule___do_mmbuilder_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;
-    val_t REGB1;
-    val_t REGB2;
-    fun_t CREG[1];
-    val_t tmp;
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_syntax___mmbuilder;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcModule___do_mmbuilder;
-    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;
-    /* syntax/mmbuilder.nit:80 */
-    fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
-    fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
-    fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
-    REGB0 = CALL_metamodel___abstractmetamodel___MMModule___visibility_for(closctx->REG[0])(closctx->REG[0], fra.me.REG[1]);
-    fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
-    REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[1])(fra.me.REG[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:242 */
-    REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* syntax/mmbuilder.nit:80 */
-    if (UNTAG_Bool(REGB1)) {
-      /* syntax/mmbuilder.nit:81 */
-      goto label2;
-    }
-    /* syntax/mmbuilder.nit:83 */
-    CALL_metamodel___inheritance___MMLocalClass___compute_super_classes(fra.me.REG[0])(fra.me.REG[0]);
-    label2: while(0);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-static const char LOCATE_syntax___mmbuilder___MMSrcModule___process_default_classes[] = "mmbuilder::MMSrcModule::process_default_classes";
-void syntax___mmbuilder___MMSrcModule___process_default_classes(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t REGB0;
-  val_t tmp;
-  static val_t once_value_1; /* Once value */
-    static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-    static val_t once_value_4; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 135;
-  fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcModule___process_default_classes;
-  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/mmbuilder.nit:138 */
-  if (!once_value_1) {
-    if (!once_value_2) {
-      fra.me.REG[1] = BOX_NativeString("Object");
-      REGB0 = TAG_Int(6);
-      fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0);
-      once_value_2 = fra.me.REG[1];
-      register_static_object(&once_value_2);
-    } else fra.me.REG[1] = once_value_2;
-    fra.me.REG[1] = fra.me.REG[1];
-    fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
-    once_value_1 = fra.me.REG[1];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[1] = once_value_1;
-  fra.me.REG[1] = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:139 */
-  REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:140 */
-    REGB0 = TAG_Int(0);
-    fra.me.REG[2] = NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0);
-    /* syntax/mmbuilder.nit:141 */
-    CALL_metamodel___abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
-    /* syntax/mmbuilder.nit:142 */
-    fra.me.REG[3] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra.me.REG[0])(fra.me.REG[0]);
-    CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[2]);
-  }
-  /* syntax/mmbuilder.nit:144 */
-  if (!once_value_3) {
-    if (!once_value_4) {
-      fra.me.REG[2] = BOX_NativeString("Bool");
-      REGB0 = TAG_Int(4);
-      fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-      once_value_4 = fra.me.REG[2];
-      register_static_object(&once_value_4);
-    } else fra.me.REG[2] = once_value_4;
-    fra.me.REG[2] = fra.me.REG[2];
-    fra.me.REG[2] = CALL_symbol___String___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
-    once_value_3 = fra.me.REG[2];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[2] = once_value_3;
-  fra.me.REG[2] = fra.me.REG[2];
-  fra.me.REG[1] = fra.me.REG[2];
-  /* syntax/mmbuilder.nit:145 */
-  REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:146 */
-    REGB0 = TAG_Int(0);
-    fra.me.REG[2] = NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init(fra.me.REG[0], fra.me.REG[1], NIT_NULL, REGB0);
-    /* syntax/mmbuilder.nit:147 */
-    CALL_metamodel___abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
-    /* syntax/mmbuilder.nit:148 */
-    fra.me.REG[0] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra.me.REG[0])(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[2]);
-  }
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___MMLocalClass___accept_class_visitor[] = "mmbuilder::MMLocalClass::accept_class_visitor";
-void syntax___mmbuilder___MMLocalClass___accept_class_visitor(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___mmbuilder;
-  fra.me.line = 154;
-  fra.me.meth = LOCATE_syntax___mmbuilder___MMLocalClass___accept_class_visitor;
-  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;
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___MMLocalClass___accept_properties_visitor[] = "mmbuilder::MMLocalClass::accept_properties_visitor";
-void syntax___mmbuilder___MMLocalClass___accept_properties_visitor(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___mmbuilder;
-  fra.me.line = 159;
-  fra.me.meth = LOCATE_syntax___mmbuilder___MMLocalClass___accept_properties_visitor;
-  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;
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___MMSrcLocalClass___accept_class_visitor[] = "mmbuilder::MMSrcLocalClass::(mmbuilder::MMLocalClass::accept_class_visitor)";
-void syntax___mmbuilder___MMSrcLocalClass___accept_class_visitor(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___mmbuilder;
-  fra.me.line = 166;
-  fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___accept_class_visitor;
-  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/mmbuilder.nit:168 */
-  fra.me.REG[0] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]);
-  /* syntax/mmbuilder.nit:169 */
-  while(1) {
-    REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        REGB1 = TAG_Bool(0);
-        REGB0 = REGB1;
-      } else {
-        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
-        REGB0 = REGB1;
-      }
-    }
-    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-    if (UNTAG_Bool(REGB0)) {
-      /* syntax/mmbuilder.nit:170 */
-      CALL_parser___parser_nodes___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-      /* syntax/mmbuilder.nit:171 */
-      REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 171);
-      }
-      fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[0])(fra.me.REG[0]);
-      fra.me.REG[0] = fra.me.REG[2];
-    } else {
-      /* syntax/mmbuilder.nit:169 */
-      goto label1;
-    }
-  }
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor[] = "mmbuilder::MMSrcLocalClass::(mmbuilder::MMLocalClass::accept_properties_visitor)";
-void syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor(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_syntax___mmbuilder;
-  fra.me.line = 175;
-  fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor;
-  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/mmbuilder.nit:178 */
-  fra.me.REG[2] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[0])(fra.me.REG[0]);
-  /* syntax/mmbuilder.nit:179 */
-  while(1) {
-    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)) {
-      /* syntax/mmbuilder.nit:180 */
-      CALL_parser___parser_nodes___Visitor___enter_visit(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-      /* syntax/mmbuilder.nit:181 */
-      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 181);
-      }
-      fra.me.REG[3] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[2])(fra.me.REG[2]);
-      fra.me.REG[2] = fra.me.REG[3];
-    } else {
-      /* syntax/mmbuilder.nit:179 */
-      goto label1;
-    }
-  }
-  label1: while(0);
-  /* syntax/mmbuilder.nit:184 */
-  fra.me.REG[0] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___values(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor_2));
-  stack_frame_head = fra.me.prev;
-  return;
-}
-  void OC_syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor_2(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_syntax___mmbuilder;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___accept_properties_visitor;
-    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;
-    /* syntax/mmbuilder.nit:185 */
-    CALL_syntax___mmbuilder___MMLocalProperty___accept_property_visitor(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-static const char LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors[] = "mmbuilder::MMSrcLocalClass::process_default_constructors";
-void syntax___mmbuilder___MMSrcLocalClass___process_default_constructors(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t tmp;
-      static val_t once_value_7; /* Once value */
-        static val_t once_value_8; /* Once value */
-      static val_t once_value_13; /* Once value */
-      static val_t once_value_14; /* Once value */
-      static val_t once_value_15; /* Once value */
-      static val_t once_value_16; /* Once value */
-      static val_t once_value_17; /* Once value */
-      static val_t once_value_18; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 189;
-  fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 11;
-  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[9] = NIT_NULL;
-  fra.me.REG[10] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* syntax/mmbuilder.nit:189 */
-  fra.me.REG[2] = fra.me.REG[0];
-  /* syntax/mmbuilder.nit:193 */
-  fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_1));
-  switch ((&(fra.me))->has_broke) {
-    case 0: break;
-    case 1: (&(fra.me))->has_broke = 0; goto label3;
-  }
-  /* syntax/mmbuilder.nit:201 */
-  fra.me.REG[3] = NEW_ArraySet_standard___collection___array___ArraySet___init();
-  /* syntax/mmbuilder.nit:202 */
-  fra.me.REG[4] = NEW_ArraySet_standard___collection___array___ArraySet___init();
-  /* syntax/mmbuilder.nit:203 */
-  fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[5])(fra.me.REG[5]);
-  /* ../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[5])!=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[5]);
-  /* ../lib/standard/collection/array.nit:272 */
-  fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-  /* ../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[5])!=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[5]);
-    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[6]==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[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
-      /* syntax/mmbuilder.nit:204 */
-      fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
-      REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[8])(fra.me.REG[8]);
-      if (UNTAG_Bool(REGB1)) {
-        fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
-        REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[8])(fra.me.REG[8]);
-        REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-      } else {
-        REGB2 = TAG_Bool(0);
-        REGB1 = REGB2;
-      }
-      if (UNTAG_Bool(REGB1)) {
-        REGB1 = TAG_Bool(1);
-      } else {
-        fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[7])(fra.me.REG[7]);
-        REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[8])(fra.me.REG[8]);
-        REGB1 = REGB2;
-      }
-      if (UNTAG_Bool(REGB1)) {
-        goto label4;
-      }
-      /* syntax/mmbuilder.nit:205 */
-      fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[7])(fra.me.REG[7]);
-      CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[8])(fra.me.REG[8], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_5));
-      /* syntax/mmbuilder.nit:209 */
-      if (!once_value_7) {
-        if (!once_value_8) {
-          fra.me.REG[8] = BOX_NativeString("init");
-          REGB1 = TAG_Int(4);
-          fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-          once_value_8 = fra.me.REG[8];
-          register_static_object(&once_value_8);
-        } else fra.me.REG[8] = once_value_8;
-        fra.me.REG[8] = fra.me.REG[8];
-        fra.me.REG[8] = CALL_symbol___String___to_symbol(fra.me.REG[8])(fra.me.REG[8]);
-        once_value_7 = fra.me.REG[8];
-        register_static_object(&once_value_7);
-      } else fra.me.REG[8] = once_value_7;
-      fra.me.REG[8] = fra.me.REG[8];
-      /* syntax/mmbuilder.nit:210 */
-      REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-      if (UNTAG_Bool(REGB1)) {
-        /* syntax/mmbuilder.nit:211 */
-        fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-        /* syntax/mmbuilder.nit:212 */
-        fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[8]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
-      }
-      label4: while(0);
-      /* ../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 label9;
-    }
-  }
-  label9: while(0);
-  /* syntax/mmbuilder.nit:217 */
-  fra.me.REG[6] = NEW_Array_standard___collection___array___Array___init();
-  /* syntax/mmbuilder.nit:218 */
-  fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[5] = CALL_standard___collection___abstract_collection___MapRead___values(fra.me.REG[5])(fra.me.REG[5]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[5])(fra.me.REG[5], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_10));
-  /* syntax/mmbuilder.nit:225 */
-  REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[4])(fra.me.REG[4]);
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:228 */
-    fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-    CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_11));
-    /* syntax/mmbuilder.nit:236 */
-    fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[2])(fra.me.REG[2]);
-    fra.me.REG[8] = CALL_metamodel___partial_order___PartialOrderElement___order(fra.me.REG[8])(fra.me.REG[8]);
-    fra.me.REG[8] = CALL_metamodel___partial_order___PartialOrder___select_smallests(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[5]);
-    fra.me.REG[5] = fra.me.REG[8];
-    /* syntax/mmbuilder.nit:239 */
-    fra.me.REG[8] = NIT_NULL;
-    /* ../lib/standard/collection/array.nit:24 */
-    REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=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[5]);
-    /* syntax/mmbuilder.nit:241 */
-    REGB1 = TAG_Int(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:244 */
-    REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-    /* syntax/mmbuilder.nit:241 */
-    if (UNTAG_Bool(REGB1)) {
-      /* syntax/mmbuilder.nit:242 */
-      fra.me.REG[7] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[2])(fra.me.REG[2]);
-      REGB1 = TAG_Int(7);
-      fra.me.REG[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-      if (!once_value_13) {
-        fra.me.REG[10] = BOX_NativeString("Error: Explicit constructor required in ");
-        REGB1 = TAG_Int(40);
-        fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB1);
-        once_value_13 = fra.me.REG[10];
-        register_static_object(&once_value_13);
-      } else fra.me.REG[10] = once_value_13;
-      fra.me.REG[10] = fra.me.REG[10];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
-      fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
-      if (!once_value_14) {
-        fra.me.REG[10] = BOX_NativeString(" since multiple inheritance of constructor is forbiden. Conflicting classes are ");
-        REGB1 = TAG_Int(80);
-        fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB1);
-        once_value_14 = fra.me.REG[10];
-        register_static_object(&once_value_14);
-      } else fra.me.REG[10] = once_value_14;
-      fra.me.REG[10] = fra.me.REG[10];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
-      if (!once_value_15) {
-        fra.me.REG[10] = BOX_NativeString(", ");
-        REGB1 = TAG_Int(2);
-        fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB1);
-        once_value_15 = fra.me.REG[10];
-        register_static_object(&once_value_15);
-      } else fra.me.REG[10] = once_value_15;
-      fra.me.REG[10] = fra.me.REG[10];
-      fra.me.REG[10] = CALL_standard___string___Collection___join(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[10]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
-      if (!once_value_16) {
-        fra.me.REG[10] = BOX_NativeString(". Costructors are ");
-        REGB1 = TAG_Int(18);
-        fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB1);
-        once_value_16 = fra.me.REG[10];
-        register_static_object(&once_value_16);
-      } else fra.me.REG[10] = once_value_16;
-      fra.me.REG[10] = fra.me.REG[10];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
-      if (!once_value_17) {
-        fra.me.REG[10] = BOX_NativeString(", ");
-        REGB1 = TAG_Int(2);
-        fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB1);
-        once_value_17 = fra.me.REG[10];
-        register_static_object(&once_value_17);
-      } else fra.me.REG[10] = once_value_17;
-      fra.me.REG[10] = fra.me.REG[10];
-      fra.me.REG[10] = CALL_standard___string___Collection___join(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[10]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
-      if (!once_value_18) {
-        fra.me.REG[10] = BOX_NativeString(".");
-        REGB1 = TAG_Int(1);
-        fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB1);
-        once_value_18 = fra.me.REG[10];
-        register_static_object(&once_value_18);
-      } else fra.me.REG[10] = once_value_18;
-      fra.me.REG[10] = fra.me.REG[10];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
-      fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
-      CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7], fra.me.REG[9]);
-      /* syntax/mmbuilder.nit:243 */
-      goto label3;
-    } else {
-      /* ../lib/standard/collection/array.nit:24 */
-      REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=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[5]);
-      /* syntax/mmbuilder.nit:244 */
-      REGB0 = TAG_Int(1);
-      REGB2 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB0));
-      if (UNTAG_Bool(REGB2)) {
-      } else {
-        /* ../lib/standard/kernel.nit:237 */
-        REGB0 = TAG_Bool((REGB1)==(REGB0));
-        /* syntax/mmbuilder.nit:244 */
-        REGB2 = REGB0;
-      }
-      if (UNTAG_Bool(REGB2)) {
-        /* syntax/mmbuilder.nit:245 */
-        fra.me.REG[5] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[5])(fra.me.REG[5]);
-        fra.me.REG[8] = fra.me.REG[5];
-      }
-    }
-    CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_19));
-    /* syntax/mmbuilder.nit:254 */
-    fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
-    REGB2 = TAG_Bool(fra.me.REG[8]!=NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-    } else {
-      nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 254);
-    }
-    REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 254);
-    }
-    fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[8])(fra.me.REG[8]);
-    CALL_metamodel___abstractmetamodel___MMGlobalClass___mixin_of__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
-  } else {
-    /* syntax/mmbuilder.nit:259 */
-    fra.me.REG[3] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[3])(fra.me.REG[3]);
-    fra.me.REG[3] = NEW_MMImplicitInit_syntax___syntax_base___MMImplicitInit___init(fra.me.REG[2], fra.me.REG[6], fra.me.REG[3]);
-    /* syntax/mmbuilder.nit:260 */
-    CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[3]);
-  }
-  label3: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-  void OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_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;
-    val_t REGB0;
-    val_t REGB1;
-    fun_t CREG[1];
-    val_t tmp;
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_syntax___mmbuilder;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
-    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;
-    /* syntax/mmbuilder.nit:194 */
-    REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
-    if (UNTAG_Bool(REGB0)) {
-      /* syntax/mmbuilder.nit:196 */
-      fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[0])(fra.me.REG[0]);
-      fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
-      REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],closctx->REG[2]));
-      if (UNTAG_Bool(REGB0)) {
-      } else {
-        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], closctx->REG[2]);
-        REGB0 = REGB1;
-      }
-      if (UNTAG_Bool(REGB0)) {
-        closctx->has_broke = 1;
-        goto label2;
-      }
-    }
-    label2: while(0);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-      void OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_5(struct stack_frame_t *closctx, 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___mmbuilder;
-        fra.me.line = 0;
-        fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
-        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/mmbuilder.nit:206 */
-        REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[0])(fra.me.REG[0]);
-        REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-        if (UNTAG_Bool(REGB0)) {
-          goto label6;
-        }
-        /* syntax/mmbuilder.nit:207 */
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[4])(closctx->REG[4], fra.me.REG[0]);
-        label6: while(0);
-        stack_frame_head = fra.me.prev;
-        return;
-      }
-  void OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_10(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;
-    val_t REGB1;
-    fun_t CREG[1];
-    val_t tmp;
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_syntax___mmbuilder;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
-    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;
-    /* syntax/mmbuilder.nit:219 */
-    REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_syntax___syntax_base___MMSrcAttribute, ID_syntax___syntax_base___MMSrcAttribute)) /*cast MMSrcAttribute*/;
-    if (UNTAG_Bool(REGB0)) {
-      /* syntax/mmbuilder.nit:220 */
-      fra.me.REG[1] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[0])(fra.me.REG[0]);
-      /* syntax/mmbuilder.nit:221 */
-      REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 221);
-      }
-      fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra.me.REG[1])(fra.me.REG[1]);
-      REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-      } else {
-        REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-        if (UNTAG_Bool(REGB1)) {
-          REGB1 = TAG_Bool(0);
-          REGB0 = REGB1;
-        } else {
-          REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
-          REGB0 = REGB1;
-        }
-      }
-      if (UNTAG_Bool(REGB0)) {
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[6])(closctx->REG[6], fra.me.REG[0]);
-      }
-    }
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-    void OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_11(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;
-      /* syntax/mmbuilder.nit:229 */
-      fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-      fra.me.file = LOCATE_syntax___mmbuilder;
-      fra.me.line = 0;
-      fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
-      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;
-      /* syntax/mmbuilder.nit:230 */
-      fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
-      /* syntax/mmbuilder.nit:231 */
-      REGB0 = CALL_standard___collection___abstract_collection___Collection___has(closctx->REG[5])(closctx->REG[5], fra.me.REG[0]);
-      if (UNTAG_Bool(REGB0)) {
-        goto label12;
-      }
-      /* syntax/mmbuilder.nit:232 */
-      fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
-      REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_mixin(fra.me.REG[1])(fra.me.REG[1]);
-      REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-      if (UNTAG_Bool(REGB0)) {
-        /* syntax/mmbuilder.nit:233 */
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[5])(closctx->REG[5], fra.me.REG[0]);
-      }
-      label12: while(0);
-      stack_frame_head = fra.me.prev;
-      return;
-    }
-    void OC_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors_19(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;
-      val_t REGB1;
-      val_t REGB2;
-      fun_t CREG[1];
-      val_t tmp;
-      /* syntax/mmbuilder.nit:248 */
-      fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-      fra.me.file = LOCATE_syntax___mmbuilder;
-      fra.me.line = 0;
-      fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___process_default_constructors;
-      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;
-      /* syntax/mmbuilder.nit:250 */
-      REGB0 = TAG_Bool(closctx->REG[8]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-      } else {
-        REGB1 = TAG_Bool(closctx->REG[8]==NIT_NULL);
-        if (UNTAG_Bool(REGB1)) {
-          REGB1 = TAG_Bool(0);
-          REGB0 = REGB1;
-        } else {
-          REGB1 = CALL_standard___kernel___Object_____eqeq(closctx->REG[8])(closctx->REG[8], NIT_NULL);
-          REGB0 = REGB1;
-        }
-      }
-      if (UNTAG_Bool(REGB0)) {
-        REGB0 = TAG_Bool(1);
-      } else {
-        fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
-        REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],closctx->REG[8]));
-        if (UNTAG_Bool(REGB1)) {
-        } else {
-          REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], closctx->REG[8]);
-          REGB1 = REGB2;
-        }
-        REGB0 = REGB1;
-      }
-      if (UNTAG_Bool(REGB0)) {
-        /* syntax/mmbuilder.nit:251 */
-        CALL_metamodel___inheritance___MMLocalClass___make_visible_an_inherited_global_property(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
-      }
-      stack_frame_head = fra.me.prev;
-      return;
-    }
-static const char LOCATE_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property[] = "mmbuilder::MMSrcLocalClass::add_src_local_property";
-void syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(val_t p0, val_t p1, val_t p2){
-  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
-  val_t REGB0;
-  val_t tmp;
-    static val_t once_value_1; /* Once value */
-    static val_t once_value_2; /* Once value */
-    static val_t once_value_3; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 265;
-  fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property;
-  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;
-  /* syntax/mmbuilder.nit:269 */
-  fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
-  /* syntax/mmbuilder.nit:271 */
-  fra.me.REG[4] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:272 */
-    fra.me.REG[4] = CALL_syntax___syntax_base___MMLocalProperty___node(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = TAG_Int(5);
-    fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_1) {
-      fra.me.REG[6] = BOX_NativeString("Error: A property ");
-      REGB0 = TAG_Int(18);
-      fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-      once_value_1 = fra.me.REG[6];
-      register_static_object(&once_value_1);
-    } else fra.me.REG[6] = once_value_1;
-    fra.me.REG[6] = fra.me.REG[6];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-    fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-    if (!once_value_2) {
-      fra.me.REG[6] = BOX_NativeString(" is already defined in class ");
-      REGB0 = TAG_Int(29);
-      fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-      once_value_2 = fra.me.REG[6];
-      register_static_object(&once_value_2);
-    } else fra.me.REG[6] = once_value_2;
-    fra.me.REG[6] = fra.me.REG[6];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-    fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[0])(fra.me.REG[0]);
-    fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-    if (!once_value_3) {
-      fra.me.REG[6] = BOX_NativeString(".");
-      REGB0 = TAG_Int(1);
-      fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-      once_value_3 = fra.me.REG[6];
-      register_static_object(&once_value_3);
-    } else fra.me.REG[6] = once_value_3;
-    fra.me.REG[6] = fra.me.REG[6];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-    fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-    CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[5]);
-    /* syntax/mmbuilder.nit:273 */
-    goto label4;
-  }
-  /* syntax/mmbuilder.nit:275 */
-  fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcLocalClass___src_local_properties(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[2]);
-  /* syntax/mmbuilder.nit:278 */
-  REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:279 */
-    fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-    /* syntax/mmbuilder.nit:280 */
-    CALL_metamodel___inheritance___MMLocalProperty___inherit_global(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  }
-  /* syntax/mmbuilder.nit:283 */
-  REGB0 = CALL_metamodel___abstractmetamodel___MMLocalProperty___is_global_set(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:284 */
-    CALL_metamodel___abstractmetamodel___MMLocalProperty___new_global(fra.me.REG[2])(fra.me.REG[2]);
-    /* syntax/mmbuilder.nit:285 */
-    fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = CALL_syntax___syntax_base___MMLocalProperty___is_init(fra.me.REG[2])(fra.me.REG[2]);
-    CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
-  }
-  label4: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___MMLocalProperty___accept_property_visitor[] = "mmbuilder::MMLocalProperty::accept_property_visitor";
-void syntax___mmbuilder___MMLocalProperty___accept_property_visitor(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___mmbuilder;
-  fra.me.line = 291;
-  fra.me.meth = LOCATE_syntax___mmbuilder___MMLocalProperty___accept_property_visitor;
-  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;
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___MMImplicitInit___super_init[] = "mmbuilder::MMImplicitInit::(syntax_base::MMImplicitInit::super_init)";
-val_t syntax___mmbuilder___MMImplicitInit___super_init(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 297;
-  fra.me.meth = LOCATE_syntax___mmbuilder___MMImplicitInit___super_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;
-  /* syntax/mmbuilder.nit:297 */
-  fra.me.REG[0] = ATTR_syntax___mmbuilder___MMImplicitInit____super_init(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_syntax___mmbuilder___MMImplicitInit___accept_property_visitor[] = "mmbuilder::MMImplicitInit::(mmbuilder::MMLocalProperty::accept_property_visitor)";
-void syntax___mmbuilder___MMImplicitInit___accept_property_visitor(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 REGB4;
-  val_t tmp;
-          static val_t once_value_1; /* Once value */
-          static val_t once_value_2; /* Once value */
-          static val_t once_value_3; /* Once value */
-          static val_t once_value_4; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 298;
-  fra.me.meth = LOCATE_syntax___mmbuilder___MMImplicitInit___accept_property_visitor;
-  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/mmbuilder.nit:298 */
-  fra.me.REG[2] = fra.me.REG[0];
-  /* syntax/mmbuilder.nit:300 */
-  fra.me.REG[3] = NIT_NULL;
-  /* syntax/mmbuilder.nit:301 */
-  fra.me.REG[4] = CALL_syntax___syntax_base___MMImplicitInit___super_inits(fra.me.REG[2])(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[4])!=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[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 */
-    REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=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[4]);
-    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[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
-      /* syntax/mmbuilder.nit:302 */
-      fra.me.REG[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[6])(fra.me.REG[6]);
-      REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 302);
-      }
-      REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
-      REGB2 = TAG_Int(0);
-      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:244 */
-      REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
-      /* syntax/mmbuilder.nit:302 */
-      if (UNTAG_Bool(REGB2)) {
-        /* syntax/mmbuilder.nit:303 */
-        REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-        if (UNTAG_Bool(REGB2)) {
-        } else {
-          REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-          if (UNTAG_Bool(REGB1)) {
-            REGB1 = TAG_Bool(0);
-            REGB2 = REGB1;
-          } else {
-            REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
-            REGB2 = REGB1;
-          }
-        }
-        if (UNTAG_Bool(REGB2)) {
-          /* syntax/mmbuilder.nit:304 */
-          fra.me.REG[3] = fra.me.REG[6];
-        } else {
-          /* syntax/mmbuilder.nit:306 */
-          REGB2 = TAG_Int(7);
-          fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-          if (!once_value_1) {
-            fra.me.REG[8] = BOX_NativeString("Error: explicit constructor needed in ");
-            REGB2 = TAG_Int(38);
-            fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
-            once_value_1 = fra.me.REG[8];
-            register_static_object(&once_value_1);
-          } else fra.me.REG[8] = once_value_1;
-          fra.me.REG[8] = fra.me.REG[8];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-          fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
-          fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-          if (!once_value_2) {
-            fra.me.REG[8] = BOX_NativeString(" since both super-constructor ");
-            REGB2 = TAG_Int(30);
-            fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
-            once_value_2 = fra.me.REG[8];
-            register_static_object(&once_value_2);
-          } else fra.me.REG[8] = once_value_2;
-          fra.me.REG[8] = fra.me.REG[8];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-          REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-          if (UNTAG_Bool(REGB2)) {
-            nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 306);
-          }
-          fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[3])(fra.me.REG[3]);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-          if (!once_value_3) {
-            fra.me.REG[8] = BOX_NativeString(" and ");
-            REGB2 = TAG_Int(5);
-            fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
-            once_value_3 = fra.me.REG[8];
-            register_static_object(&once_value_3);
-          } else fra.me.REG[8] = once_value_3;
-          fra.me.REG[8] = fra.me.REG[8];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-          fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[6])(fra.me.REG[6]);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
-          if (!once_value_4) {
-            fra.me.REG[6] = BOX_NativeString(" have paramters");
-            REGB2 = TAG_Int(15);
-            fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-            once_value_4 = fra.me.REG[6];
-            register_static_object(&once_value_4);
-          } else fra.me.REG[6] = once_value_4;
-          fra.me.REG[6] = fra.me.REG[6];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
-          fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
-          CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[7]);
-          /* syntax/mmbuilder.nit:307 */
-          goto label5;
-        }
-      }
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB2 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:245 */
-      REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB0 = REGB2;
-    } else {
-      /* ../lib/standard/collection/array.nit:273 */
-      goto label6;
-    }
-  }
-  label6: while(0);
-  /* syntax/mmbuilder.nit:311 */
-  ATTR_syntax___mmbuilder___MMImplicitInit____super_init(fra.me.REG[2]) = fra.me.REG[3];
-  /* syntax/mmbuilder.nit:313 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  /* syntax/mmbuilder.nit:314 */
-  REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-      REGB2 = TAG_Bool(0);
-      REGB0 = REGB2;
-    } else {
-      REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
-      REGB0 = REGB2;
-    }
-  }
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:315 */
-    REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 315);
-    }
-    fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[3])(fra.me.REG[3]);
-    /* syntax/mmbuilder.nit:316 */
-    REGB0 = TAG_Int(0);
-    REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 316);
-    }
-    REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[3])(fra.me.REG[3]);
-    /* ../lib/standard/kernel.nit:404 */
-    while(1) {
-      REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
-      if (UNTAG_Bool(REGB1)) {
-      } else {
-        nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-      }
-      /* ../lib/standard/kernel.nit:242 */
-      REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
-      /* ../lib/standard/kernel.nit:404 */
-      if (UNTAG_Bool(REGB1)) {
-        /* syntax/mmbuilder.nit:316 */
-        REGB1 = REGB0;
-        /* syntax/mmbuilder.nit:317 */
-        REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-          nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 317);
-        }
-        fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___params(fra.me.REG[3])(fra.me.REG[3]);
-        /* ../lib/standard/collection/array.nit:281 */
-        REGB3 = TAG_Int(0);
-        REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
-        if (UNTAG_Bool(REGB4)) {
-        } else {
-          nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-        }
-        /* ../lib/standard/kernel.nit:243 */
-        REGB3 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB3));
-        /* ../lib/standard/collection/array.nit:281 */
-        if (UNTAG_Bool(REGB3)) {
-          REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
-          }
-          REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-          REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
-          if (UNTAG_Bool(REGB4)) {
-          } else {
-            nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-          }
-          /* ../lib/standard/kernel.nit:242 */
-          REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB3));
-        } else {
-          /* ../lib/standard/collection/array.nit:281 */
-          REGB4 = TAG_Bool(0);
-          REGB3 = REGB4;
-        }
-        if (UNTAG_Bool(REGB3)) {
-        } else {
-          nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
-        }
-        /* ../lib/standard/collection/array.nit:282 */
-        fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-        REGB3 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-          nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
-        }
-        /* ../lib/standard/collection/array.nit:725 */
-        fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
-        /* ../lib/standard/collection/array.nit:282 */
-        goto label7;
-        label7: while(0);
-        /* syntax/mmbuilder.nit:317 */
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-        /* ../lib/standard/kernel.nit:406 */
-        REGB1 = TAG_Int(1);
-        /* ../lib/standard/kernel.nit:245 */
-        REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-        /* ../lib/standard/kernel.nit:406 */
-        REGB0 = REGB1;
-      } else {
-        /* ../lib/standard/kernel.nit:404 */
-        goto label8;
-      }
-    }
-    label8: while(0);
-  }
-  /* syntax/mmbuilder.nit:320 */
-  fra.me.REG[3] = CALL_syntax___syntax_base___MMImplicitInit___unassigned_attributes(fra.me.REG[2])(fra.me.REG[2]);
-  /* ../lib/standard/collection/array.nit:270 */
-  REGB0 = TAG_Int(0);
-  /* ../lib/standard/collection/array.nit:271 */
-  REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=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[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 */
-    REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=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[3]);
-    REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-    }
-    /* ../lib/standard/kernel.nit:242 */
-    REGB2 = TAG_Bool(UNTAG_Int(REGB0)<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[4] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
-      /* syntax/mmbuilder.nit:321 */
-      fra.me.REG[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[4])(fra.me.REG[4]);
-      /* syntax/mmbuilder.nit:322 */
-      REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-      } else {
-        REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-        if (UNTAG_Bool(REGB1)) {
-          REGB1 = TAG_Bool(0);
-          REGB2 = REGB1;
-        } else {
-          REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
-          REGB2 = REGB1;
-        }
-      }
-      if (UNTAG_Bool(REGB2)) {
-        goto label5;
-      }
-      /* syntax/mmbuilder.nit:323 */
-      fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[4])(fra.me.REG[4]);
-      /* syntax/mmbuilder.nit:324 */
-      fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-      fra.me.REG[8] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[8])(fra.me.REG[8]);
-      REGB2 = TAG_Char('_');
-      REGB1 = TAG_Bool(IS_EQUAL_ON(REGB2,fra.me.REG[8]));
-      if (UNTAG_Bool(REGB1)) {
-      } else {
-        REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-          REGB3 = TAG_Bool(0);
-          REGB1 = REGB3;
-        } else {
-          /* ../lib/standard/kernel.nit:434 */
-          REGB2 = TAG_Bool((fra.me.REG[8])==(REGB2));
-          /* syntax/mmbuilder.nit:324 */
-          REGB1 = REGB2;
-        }
-      }
-      if (UNTAG_Bool(REGB1)) {
-        REGB1 = TAG_Bool(1);
-      } else {
-        fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-        fra.me.REG[8] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[8])(fra.me.REG[8]);
-        REGB2 = TAG_Char('@');
-        REGB3 = TAG_Bool(IS_EQUAL_ON(REGB2,fra.me.REG[8]));
-        if (UNTAG_Bool(REGB3)) {
-        } else {
-          REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
-          if (UNTAG_Bool(REGB4)) {
-            REGB4 = TAG_Bool(0);
-            REGB3 = REGB4;
-          } else {
-            /* ../lib/standard/kernel.nit:434 */
-            REGB2 = TAG_Bool((fra.me.REG[8])==(REGB2));
-            /* syntax/mmbuilder.nit:324 */
-            REGB3 = REGB2;
-          }
-        }
-        REGB1 = REGB3;
-      }
-      if (UNTAG_Bool(REGB1)) {
-        /* syntax/mmbuilder.nit:325 */
-        fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-        REGB1 = TAG_Int(1);
-        fra.me.REG[4] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[4])(fra.me.REG[4], REGB1);
-        fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
-        fra.me.REG[6] = fra.me.REG[4];
-      }
-      /* syntax/mmbuilder.nit:327 */
-      REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 327);
-      }
-      fra.me.REG[7] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[7])(fra.me.REG[7]);
-      REGB1 = TAG_Bool((fra.me.REG[7]!=NIT_NULL) && VAL_ISA(fra.me.REG[7], COLOR_metamodel___static_type___MMType, ID_metamodel___static_type___MMType)) /*cast MMType*/;
-      if (UNTAG_Bool(REGB1)) {
-      } else {
-        nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 327);
-      }
-      fra.me.REG[6] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[7], fra.me.REG[6]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ../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 label9;
-    }
-  }
-  label9: while(0);
-  /* syntax/mmbuilder.nit:329 */
-  fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[0] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[1], NIT_NULL, fra.me.REG[0]);
-  CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  label5: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___MMSrcAncestor___local_class[] = "mmbuilder::MMSrcAncestor::(static_type::MMAncestor::local_class)";
-val_t syntax___mmbuilder___MMSrcAncestor___local_class(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___mmbuilder;
-  fra.me.line = 337;
-  fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcAncestor___local_class;
-  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/mmbuilder.nit:337 */
-  REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___MMSrcAncestor____local_class(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_syntax___mmbuilder, 337);
-  }
-  fra.me.REG[0] = ATTR_syntax___mmbuilder___MMSrcAncestor____local_class(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_syntax___mmbuilder___MMSrcAncestor___init[] = "mmbuilder::MMSrcAncestor::init";
-void syntax___mmbuilder___MMSrcAncestor___init(val_t p0, val_t p1, int* init_table){
-  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___MMSrcAncestor].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___mmbuilder;
-  fra.me.line = 339;
-  fra.me.meth = LOCATE_syntax___mmbuilder___MMSrcAncestor___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;
-  /* syntax/mmbuilder.nit:339 */
-  fra.me.REG[2] = fra.me.REG[0];
-  CALL_metamodel___static_type___MMAncestor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* syntax/mmbuilder.nit:341 */
-  ATTR_syntax___mmbuilder___MMSrcAncestor____local_class(fra.me.REG[2]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos1] = 1;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity[] = "mmbuilder::ClassBuilderVisitor::local_class_arity";
-val_t syntax___mmbuilder___ClassBuilderVisitor___local_class_arity(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___mmbuilder;
-  fra.me.line = 352;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity;
-  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/mmbuilder.nit:352 */
-  REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_local_class_arity", LOCATE_syntax___mmbuilder, 352);
-  }
-  REGB0 = ATTR_syntax___mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq[] = "mmbuilder::ClassBuilderVisitor::local_class_arity=";
-void syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__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___mmbuilder;
-  fra.me.line = 352;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__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/mmbuilder.nit:352 */
-  ATTR_syntax___mmbuilder___ClassBuilderVisitor____local_class_arity(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ClassBuilderVisitor___formals[] = "mmbuilder::ClassBuilderVisitor::formals";
-val_t syntax___mmbuilder___ClassBuilderVisitor___formals(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 355;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___formals;
-  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/mmbuilder.nit:355 */
-  fra.me.REG[0] = ATTR_syntax___mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_syntax___mmbuilder___ClassBuilderVisitor___formals__eq[] = "mmbuilder::ClassBuilderVisitor::formals=";
-void syntax___mmbuilder___ClassBuilderVisitor___formals__eq(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___mmbuilder;
-  fra.me.line = 355;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___formals__eq;
-  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/mmbuilder.nit:355 */
-  ATTR_syntax___mmbuilder___ClassBuilderVisitor____formals(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ClassBuilderVisitor___visit[] = "mmbuilder::ClassBuilderVisitor::(parser_nodes::Visitor::visit)";
-void syntax___mmbuilder___ClassBuilderVisitor___visit(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___mmbuilder;
-  fra.me.line = 358;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___visit;
-  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/mmbuilder.nit:358 */
-  CALL_syntax___mmbuilder___ANode___accept_class_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ClassBuilderVisitor___init[] = "mmbuilder::ClassBuilderVisitor::init";
-void syntax___mmbuilder___ClassBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassBuilderVisitor].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  if (init_table[itpos2]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 359;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ClassBuilderVisitor___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/mmbuilder.nit:359 */
-  CALL_syntax___syntax_base___AbsSyntaxVisitor___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[itpos2] = 1;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ClassSpecializationBuilderVisitor___visit[] = "mmbuilder::ClassSpecializationBuilderVisitor::(parser_nodes::Visitor::visit)";
-void syntax___mmbuilder___ClassSpecializationBuilderVisitor___visit(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___mmbuilder;
-  fra.me.line = 366;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ClassSpecializationBuilderVisitor___visit;
-  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/mmbuilder.nit:366 */
-  CALL_syntax___mmbuilder___ANode___accept_class_specialization_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ClassSpecializationBuilderVisitor___init[] = "mmbuilder::ClassSpecializationBuilderVisitor::init";
-void syntax___mmbuilder___ClassSpecializationBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassSpecializationBuilderVisitor].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} 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___mmbuilder;
-  fra.me.line = 367;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ClassSpecializationBuilderVisitor___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/mmbuilder.nit:367 */
-  CALL_syntax___syntax_base___AbsSyntaxVisitor___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[itpos3] = 1;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ClassAncestorBuilder___visit[] = "mmbuilder::ClassAncestorBuilder::(parser_nodes::Visitor::visit)";
-void syntax___mmbuilder___ClassAncestorBuilder___visit(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___mmbuilder;
-  fra.me.line = 374;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ClassAncestorBuilder___visit;
-  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/mmbuilder.nit:374 */
-  CALL_syntax___mmbuilder___ANode___accept_class_ancestor_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ClassAncestorBuilder___init[] = "mmbuilder::ClassAncestorBuilder::init";
-void syntax___mmbuilder___ClassAncestorBuilder___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassAncestorBuilder].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  if (init_table[itpos4]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 375;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ClassAncestorBuilder___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/mmbuilder.nit:375 */
-  CALL_syntax___syntax_base___AbsSyntaxVisitor___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[itpos4] = 1;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ClassVerifierVisitor___visit[] = "mmbuilder::ClassVerifierVisitor::(parser_nodes::Visitor::visit)";
-void syntax___mmbuilder___ClassVerifierVisitor___visit(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___mmbuilder;
-  fra.me.line = 382;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ClassVerifierVisitor___visit;
-  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/mmbuilder.nit:382 */
-  CALL_syntax___mmbuilder___ANode___accept_class_verifier(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ClassVerifierVisitor___init[] = "mmbuilder::ClassVerifierVisitor::init";
-void syntax___mmbuilder___ClassVerifierVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___ClassVerifierVisitor].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  if (init_table[itpos5]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 383;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ClassVerifierVisitor___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/mmbuilder.nit:383 */
-  CALL_syntax___syntax_base___AbsSyntaxVisitor___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[itpos5] = 1;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___PropertyBuilderVisitor___visit[] = "mmbuilder::PropertyBuilderVisitor::(parser_nodes::Visitor::visit)";
-void syntax___mmbuilder___PropertyBuilderVisitor___visit(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___mmbuilder;
-  fra.me.line = 393;
-  fra.me.meth = LOCATE_syntax___mmbuilder___PropertyBuilderVisitor___visit;
-  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/mmbuilder.nit:393 */
-  CALL_syntax___mmbuilder___ANode___accept_property_builder(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___PropertyBuilderVisitor___init[] = "mmbuilder::PropertyBuilderVisitor::init";
-void syntax___mmbuilder___PropertyBuilderVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___PropertyBuilderVisitor].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  if (init_table[itpos6]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 394;
-  fra.me.meth = LOCATE_syntax___mmbuilder___PropertyBuilderVisitor___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/mmbuilder.nit:394 */
-  CALL_syntax___syntax_base___AbsSyntaxVisitor___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[itpos6] = 1;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder[] = "mmbuilder::PropertyVerifierVisitor::signature_builder";
-val_t syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(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___mmbuilder;
-  fra.me.line = 402;
-  fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder;
-  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/mmbuilder.nit:402 */
-  REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_signature_builder", LOCATE_syntax___mmbuilder, 402);
-  }
-  fra.me.REG[0] = ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq[] = "mmbuilder::PropertyVerifierVisitor::signature_builder=";
-void syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(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___mmbuilder;
-  fra.me.line = 402;
-  fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq;
-  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/mmbuilder.nit:402 */
-  ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___visit[] = "mmbuilder::PropertyVerifierVisitor::(parser_nodes::Visitor::visit)";
-void syntax___mmbuilder___PropertyVerifierVisitor___visit(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___mmbuilder;
-  fra.me.line = 405;
-  fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___visit;
-  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/mmbuilder.nit:405 */
-  CALL_syntax___mmbuilder___ANode___accept_property_verifier(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___init[] = "mmbuilder::PropertyVerifierVisitor::init";
-void syntax___mmbuilder___PropertyVerifierVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___PropertyVerifierVisitor].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t tmp;
-  if (init_table[itpos7]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 407;
-  fra.me.meth = LOCATE_syntax___mmbuilder___PropertyVerifierVisitor___init;
-  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/mmbuilder.nit:407 */
-  fra.me.REG[3] = fra.me.REG[0];
-  /* syntax/mmbuilder.nit:409 */
-  CALL_syntax___syntax_base___AbsSyntaxVisitor___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  /* syntax/mmbuilder.nit:410 */
-  fra.me.REG[2] = NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init();
-  ATTR_syntax___mmbuilder___PropertyVerifierVisitor____signature_builder(fra.me.REG[3]) = fra.me.REG[2];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos7] = 1;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___SignatureBuilder___params[] = "mmbuilder::SignatureBuilder::params";
-val_t syntax___mmbuilder___SignatureBuilder___params(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___mmbuilder;
-  fra.me.line = 416;
-  fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___params;
-  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/mmbuilder.nit:416 */
-  REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_params", LOCATE_syntax___mmbuilder, 416);
-  }
-  fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_syntax___mmbuilder___SignatureBuilder___params__eq[] = "mmbuilder::SignatureBuilder::params=";
-void syntax___mmbuilder___SignatureBuilder___params__eq(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___mmbuilder;
-  fra.me.line = 416;
-  fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___params__eq;
-  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/mmbuilder.nit:416 */
-  ATTR_syntax___mmbuilder___SignatureBuilder____params(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___SignatureBuilder___untyped_params[] = "mmbuilder::SignatureBuilder::untyped_params";
-val_t syntax___mmbuilder___SignatureBuilder___untyped_params(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___mmbuilder;
-  fra.me.line = 419;
-  fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___untyped_params;
-  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/mmbuilder.nit:419 */
-  REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_untyped_params", LOCATE_syntax___mmbuilder, 419);
-  }
-  fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_syntax___mmbuilder___SignatureBuilder___untyped_params__eq[] = "mmbuilder::SignatureBuilder::untyped_params=";
-void syntax___mmbuilder___SignatureBuilder___untyped_params__eq(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___mmbuilder;
-  fra.me.line = 419;
-  fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___untyped_params__eq;
-  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/mmbuilder.nit:419 */
-  ATTR_syntax___mmbuilder___SignatureBuilder____untyped_params(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___SignatureBuilder___vararg_rank[] = "mmbuilder::SignatureBuilder::vararg_rank";
-val_t syntax___mmbuilder___SignatureBuilder___vararg_rank(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___mmbuilder;
-  fra.me.line = 422;
-  fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___vararg_rank;
-  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/mmbuilder.nit:422 */
-  REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_vararg_rank", LOCATE_syntax___mmbuilder, 422);
-  }
-  REGB0 = ATTR_syntax___mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___mmbuilder___SignatureBuilder___vararg_rank__eq[] = "mmbuilder::SignatureBuilder::vararg_rank=";
-void syntax___mmbuilder___SignatureBuilder___vararg_rank__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___mmbuilder;
-  fra.me.line = 422;
-  fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___vararg_rank__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/mmbuilder.nit:422 */
-  ATTR_syntax___mmbuilder___SignatureBuilder____vararg_rank(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___SignatureBuilder___closure_decls[] = "mmbuilder::SignatureBuilder::closure_decls";
-val_t syntax___mmbuilder___SignatureBuilder___closure_decls(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___mmbuilder;
-  fra.me.line = 425;
-  fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___closure_decls;
-  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/mmbuilder.nit:425 */
-  REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_closure_decls", LOCATE_syntax___mmbuilder, 425);
-  }
-  fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_syntax___mmbuilder___SignatureBuilder___closure_decls__eq[] = "mmbuilder::SignatureBuilder::closure_decls=";
-void syntax___mmbuilder___SignatureBuilder___closure_decls__eq(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___mmbuilder;
-  fra.me.line = 425;
-  fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___closure_decls__eq;
-  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/mmbuilder.nit:425 */
-  ATTR_syntax___mmbuilder___SignatureBuilder____closure_decls(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___SignatureBuilder___has_error_occured[] = "mmbuilder::SignatureBuilder::has_error_occured";
-val_t syntax___mmbuilder___SignatureBuilder___has_error_occured(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___mmbuilder;
-  fra.me.line = 428;
-  fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___has_error_occured;
-  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/mmbuilder.nit:428 */
-  REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_has_error_occured", LOCATE_syntax___mmbuilder, 428);
-  }
-  REGB0 = ATTR_syntax___mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq[] = "mmbuilder::SignatureBuilder::has_error_occured=";
-void syntax___mmbuilder___SignatureBuilder___has_error_occured__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___mmbuilder;
-  fra.me.line = 428;
-  fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___has_error_occured__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/mmbuilder.nit:428 */
-  ATTR_syntax___mmbuilder___SignatureBuilder____has_error_occured(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___SignatureBuilder___signature[] = "mmbuilder::SignatureBuilder::signature";
-val_t syntax___mmbuilder___SignatureBuilder___signature(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 431;
-  fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___signature;
-  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/mmbuilder.nit:431 */
-  fra.me.REG[0] = ATTR_syntax___mmbuilder___SignatureBuilder____signature(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_syntax___mmbuilder___SignatureBuilder___signature__eq[] = "mmbuilder::SignatureBuilder::signature=";
-void syntax___mmbuilder___SignatureBuilder___signature__eq(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___mmbuilder;
-  fra.me.line = 431;
-  fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___signature__eq;
-  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/mmbuilder.nit:431 */
-  ATTR_syntax___mmbuilder___SignatureBuilder____signature(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___SignatureBuilder___init[] = "mmbuilder::SignatureBuilder::init";
-void syntax___mmbuilder___SignatureBuilder___init(val_t p0, int* init_table){
-  int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___mmbuilder___SignatureBuilder].i;
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  if (init_table[itpos8]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_syntax___mmbuilder___SignatureBuilder___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-  init_table[itpos8] = 1;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ANode___accept_class_builder[] = "mmbuilder::ANode::accept_class_builder";
-void syntax___mmbuilder___ANode___accept_class_builder(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___mmbuilder;
-  fra.me.line = 438;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_class_builder;
-  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/mmbuilder.nit:438 */
-  CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ANode___accept_class_specialization_builder[] = "mmbuilder::ANode::accept_class_specialization_builder";
-void syntax___mmbuilder___ANode___accept_class_specialization_builder(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___mmbuilder;
-  fra.me.line = 439;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_class_specialization_builder;
-  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/mmbuilder.nit:439 */
-  CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ANode___accept_class_ancestor_builder[] = "mmbuilder::ANode::accept_class_ancestor_builder";
-void syntax___mmbuilder___ANode___accept_class_ancestor_builder(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___mmbuilder;
-  fra.me.line = 440;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_class_ancestor_builder;
-  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/mmbuilder.nit:440 */
-  CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ANode___accept_class_verifier[] = "mmbuilder::ANode::accept_class_verifier";
-void syntax___mmbuilder___ANode___accept_class_verifier(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___mmbuilder;
-  fra.me.line = 441;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_class_verifier;
-  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/mmbuilder.nit:441 */
-  CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ANode___accept_property_builder[] = "mmbuilder::ANode::accept_property_builder";
-void syntax___mmbuilder___ANode___accept_property_builder(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___mmbuilder;
-  fra.me.line = 442;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_property_builder;
-  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/mmbuilder.nit:442 */
-  CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ANode___accept_property_verifier[] = "mmbuilder::ANode::accept_property_verifier";
-void syntax___mmbuilder___ANode___accept_property_verifier(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___mmbuilder;
-  fra.me.line = 443;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ANode___accept_property_verifier;
-  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/mmbuilder.nit:443 */
-  CALL_syntax___syntax_base___ANode___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AModule___import_super_modules[] = "mmbuilder::AModule::import_super_modules";
-void syntax___mmbuilder___AModule___import_super_modules(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_2; /* Once value */
-      static val_t once_value_3; /* Once value */
-        static val_t once_value_4; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 447;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AModule___import_super_modules;
-  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/mmbuilder.nit:451 */
-  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
-  /* syntax/mmbuilder.nit:452 */
-  fra.me.REG[4] = NIT_NULL;
-  /* syntax/mmbuilder.nit:453 */
-  fra.me.REG[0] = CALL_parser___parser_nodes___AModule___n_imports(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___AModule___import_super_modules_1));
-  /* syntax/mmbuilder.nit:463 */
-  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)) {
-    /* syntax/mmbuilder.nit:464 */
-    REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
-    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-    if (UNTAG_Bool(REGB0)) {
-      /* syntax/mmbuilder.nit:465 */
-      REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 465);
-      }
-      fra.me.REG[4] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[4])(fra.me.REG[4]);
-      if (!once_value_2) {
-        fra.me.REG[0] = BOX_NativeString("Error: Top modules cannot import other modules.");
-        REGB0 = TAG_Int(47);
-        fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-        once_value_2 = fra.me.REG[0];
-        register_static_object(&once_value_2);
-      } else fra.me.REG[0] = once_value_2;
-      fra.me.REG[0] = fra.me.REG[0];
-      CALL_toolcontext___ToolContext___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
-    }
-  } else {
-    /* syntax/mmbuilder.nit:467 */
-    REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[3])(fra.me.REG[3]);
-    if (UNTAG_Bool(REGB0)) {
-      /* syntax/mmbuilder.nit:468 */
-      if (!once_value_3) {
-        if (!once_value_4) {
-          fra.me.REG[0] = BOX_NativeString("standard");
-          REGB0 = TAG_Int(8);
-          fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-          once_value_4 = fra.me.REG[0];
-          register_static_object(&once_value_4);
-        } else fra.me.REG[0] = once_value_4;
-        fra.me.REG[0] = fra.me.REG[0];
-        fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
-        once_value_3 = fra.me.REG[0];
-        register_static_object(&once_value_3);
-      } else fra.me.REG[0] = once_value_3;
-      fra.me.REG[0] = fra.me.REG[0];
-      /* syntax/mmbuilder.nit:469 */
-      fra.me.REG[0] = CALL_mmloader___ToolContext___get_module(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
-      /* syntax/mmbuilder.nit:470 */
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-      /* syntax/mmbuilder.nit:471 */
-      REGB0 = TAG_Int(1);
-      CALL_metamodel___abstractmetamodel___MMModule___add_super_module(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0], REGB0);
-    }
-  }
-  /* syntax/mmbuilder.nit:474 */
-  CALL_metamodel___abstractmetamodel___MMContext___add_module(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2], fra.me.REG[3]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-  void OC_syntax___mmbuilder___AModule___import_super_modules_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;
-    val_t REGB1;
-    fun_t CREG[1];
-    val_t tmp;
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_syntax___mmbuilder;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_syntax___mmbuilder___AModule___import_super_modules;
-    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;
-    /* syntax/mmbuilder.nit:454 */
-    fra.me.REG[1] = CALL_syntax___mmbuilder___AImport___module_name(fra.me.REG[0])(fra.me.REG[0]);
-    /* syntax/mmbuilder.nit:455 */
-    REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        REGB1 = TAG_Bool(0);
-        REGB0 = REGB1;
-      } else {
-        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
-        REGB0 = REGB1;
-      }
-    }
-    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-    if (UNTAG_Bool(REGB0)) {
-      /* syntax/mmbuilder.nit:456 */
-      fra.me.REG[1] = CALL_mmloader___ToolContext___get_module(closctx->REG[1])(closctx->REG[1], fra.me.REG[1], closctx->REG[2]);
-      /* syntax/mmbuilder.nit:457 */
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[3])(closctx->REG[3], fra.me.REG[1]);
-      /* syntax/mmbuilder.nit:458 */
-      REGB0 = CALL_syntax___mmbuilder___AImport___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
-      CALL_metamodel___abstractmetamodel___MMModule___add_super_module(closctx->REG[2])(closctx->REG[2], fra.me.REG[1], REGB0);
-    } else {
-      /* syntax/mmbuilder.nit:460 */
-      closctx->REG[4] = fra.me.REG[0];
-    }
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-static const char LOCATE_syntax___mmbuilder___AModuledecl___accept_class_builder[] = "mmbuilder::AModuledecl::(mmbuilder::ANode::accept_class_builder)";
-void syntax___mmbuilder___AModuledecl___accept_class_builder(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 tmp;
-    static val_t once_value_1; /* Once value */
-    static val_t once_value_2; /* Once value */
-    static val_t once_value_3; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 479;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AModuledecl___accept_class_builder;
-  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/mmbuilder.nit:481 */
-  fra.me.REG[2] = CALL_parser___parser_nodes___AModuledecl___n_name(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[2] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[2] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[3])(fra.me.REG[3]);
-  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-    REGB0 = REGB1;
-  }
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:482 */
-    fra.me.REG[3] = CALL_parser___parser_nodes___AModuledecl___n_name(fra.me.REG[0])(fra.me.REG[0]);
-    fra.me.REG[3] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[3])(fra.me.REG[3]);
-    REGB0 = TAG_Int(5);
-    fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_1) {
-      fra.me.REG[4] = BOX_NativeString("Error: Module name mismatch between ");
-      REGB0 = TAG_Int(36);
-      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[2])(fra.me.REG[2], fra.me.REG[4]);
-    fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
-    fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMModule___name(fra.me.REG[4])(fra.me.REG[4]);
-    fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-    if (!once_value_2) {
-      fra.me.REG[4] = BOX_NativeString(" and ");
-      REGB0 = TAG_Int(5);
-      fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-      once_value_2 = fra.me.REG[4];
-      register_static_object(&once_value_2);
-    } else fra.me.REG[4] = once_value_2;
-    fra.me.REG[4] = fra.me.REG[4];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-    fra.me.REG[0] = CALL_parser___parser_nodes___AModuledecl___n_name(fra.me.REG[0])(fra.me.REG[0]);
-    fra.me.REG[0] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[0])(fra.me.REG[0]);
-    fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
-    fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-    if (!once_value_3) {
-      fra.me.REG[0] = BOX_NativeString("");
-      REGB0 = TAG_Int(0);
-      fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-      once_value_3 = fra.me.REG[0];
-      register_static_object(&once_value_3);
-    } else fra.me.REG[0] = once_value_3;
-    fra.me.REG[0] = fra.me.REG[0];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-    fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-    CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2]);
-  }
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AImport___module_name[] = "mmbuilder::AImport::module_name";
-val_t syntax___mmbuilder___AImport___module_name(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 488;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AImport___module_name;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* syntax/mmbuilder.nit:488 */
-  nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 488);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_syntax___mmbuilder___AImport___visibility_level[] = "mmbuilder::AImport::visibility_level";
-val_t syntax___mmbuilder___AImport___visibility_level(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 491;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AImport___visibility_level;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* syntax/mmbuilder.nit:491 */
-  nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 491);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_syntax___mmbuilder___AStdImport___module_name[] = "mmbuilder::AStdImport::(mmbuilder::AImport::module_name)";
-val_t syntax___mmbuilder___AStdImport___module_name(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 495;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AStdImport___module_name;
-  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/mmbuilder.nit:497 */
-  fra.me.REG[0] = CALL_parser___parser_nodes___AStdImport___n_name(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_parser___parser_nodes___AModuleName___n_id(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_syntax___mmbuilder___AStdImport___visibility_level[] = "mmbuilder::AStdImport::(mmbuilder::AImport::visibility_level)";
-val_t syntax___mmbuilder___AStdImport___visibility_level(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___mmbuilder;
-  fra.me.line = 499;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AStdImport___visibility_level;
-  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/mmbuilder.nit:501 */
-  fra.me.REG[0] = CALL_parser___parser_nodes___AStdImport___n_visibility(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___mmbuilder___ANoImport___module_name[] = "mmbuilder::ANoImport::(mmbuilder::AImport::module_name)";
-val_t syntax___mmbuilder___ANoImport___module_name(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 505;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ANoImport___module_name;
-  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/mmbuilder.nit:507 */
-  fra.me.REG[0] = NIT_NULL;
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_syntax___mmbuilder___AVisibility___level[] = "mmbuilder::AVisibility::level";
-val_t syntax___mmbuilder___AVisibility___level(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 512;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AVisibility___level;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* syntax/mmbuilder.nit:512 */
-  nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 512);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_syntax___mmbuilder___APublicVisibility___level[] = "mmbuilder::APublicVisibility::(mmbuilder::AVisibility::level)";
-val_t syntax___mmbuilder___APublicVisibility___level(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___mmbuilder;
-  fra.me.line = 516;
-  fra.me.meth = LOCATE_syntax___mmbuilder___APublicVisibility___level;
-  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/mmbuilder.nit:516 */
-  REGB0 = TAG_Int(1);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___mmbuilder___AProtectedVisibility___level[] = "mmbuilder::AProtectedVisibility::(mmbuilder::AVisibility::level)";
-val_t syntax___mmbuilder___AProtectedVisibility___level(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___mmbuilder;
-  fra.me.line = 519;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AProtectedVisibility___level;
-  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/mmbuilder.nit:519 */
-  REGB0 = TAG_Int(2);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___mmbuilder___APrivateVisibility___level[] = "mmbuilder::APrivateVisibility::(mmbuilder::AVisibility::level)";
-val_t syntax___mmbuilder___APrivateVisibility___level(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___mmbuilder;
-  fra.me.line = 522;
-  fra.me.meth = LOCATE_syntax___mmbuilder___APrivateVisibility___level;
-  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/mmbuilder.nit:522 */
-  REGB0 = TAG_Int(3);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___mmbuilder___AIntrudeVisibility___level[] = "mmbuilder::AIntrudeVisibility::(mmbuilder::AVisibility::level)";
-val_t syntax___mmbuilder___AIntrudeVisibility___level(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___mmbuilder;
-  fra.me.line = 525;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AIntrudeVisibility___level;
-  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/mmbuilder.nit:525 */
-  REGB0 = TAG_Int(0);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___mmbuilder___AClassdef___local_class[] = "mmbuilder::AClassdef::(syntax_base::AClassdef::local_class)";
-val_t syntax___mmbuilder___AClassdef___local_class(val_t p0){
-  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___mmbuilder;
-  fra.me.line = 530;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___local_class;
-  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;
-  /* syntax/mmbuilder.nit:530 */
-  fra.me.REG[1] = fra.me.REG[0];
-  fra.me.REG[1] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[1]);
-  REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 530);
-  }
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-static const char LOCATE_syntax___mmbuilder___AClassdef___name[] = "mmbuilder::AClassdef::name";
-val_t syntax___mmbuilder___AClassdef___name(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 533;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___name;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* syntax/mmbuilder.nit:533 */
-  nit_abort("Deferred method called", NULL, LOCATE_syntax___mmbuilder, 533);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_syntax___mmbuilder___AClassdef___arity[] = "mmbuilder::AClassdef::arity";
-val_t syntax___mmbuilder___AClassdef___arity(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___mmbuilder;
-  fra.me.line = 536;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___arity;
-  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/mmbuilder.nit:537 */
-  REGB0 = TAG_Int(0);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___mmbuilder___AClassdef___visibility_level[] = "mmbuilder::AClassdef::visibility_level";
-val_t syntax___mmbuilder___AClassdef___visibility_level(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___mmbuilder;
-  fra.me.line = 539;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___visibility_level;
-  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/mmbuilder.nit:540 */
-  REGB0 = TAG_Int(1);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___mmbuilder___AClassdef___accept_class_builder[] = "mmbuilder::AClassdef::(mmbuilder::ANode::accept_class_builder)";
-void syntax___mmbuilder___AClassdef___accept_class_builder(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 tmp;
-      static val_t once_value_1; /* Once value */
-      static val_t once_value_2; /* Once value */
-      static val_t once_value_3; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 542;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___accept_class_builder;
-  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/mmbuilder.nit:542 */
-  fra.me.REG[2] = fra.me.REG[0];
-  fra.me.REG[3] = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:545 */
-  fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
-  /* syntax/mmbuilder.nit:546 */
-  fra.me.REG[5] = CALL_syntax___syntax_base___MMSrcModule___src_local_classes(fra.me.REG[4])(fra.me.REG[4]);
-  /* syntax/mmbuilder.nit:547 */
-  fra.me.REG[6] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:548 */
-    fra.me.REG[6] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
-    fra.me.REG[6] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-    /* syntax/mmbuilder.nit:549 */
-    ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]) = fra.me.REG[6];
-    /* syntax/mmbuilder.nit:550 */
-    REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
-    if (UNTAG_Bool(REGB0)) {
-      /* syntax/mmbuilder.nit:552 */
-      REGB0 = TAG_Int(5);
-      fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-      if (!once_value_1) {
-        fra.me.REG[8] = BOX_NativeString("Error: A class ");
-        REGB0 = TAG_Int(15);
-        fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
-        once_value_1 = fra.me.REG[8];
-        register_static_object(&once_value_1);
-      } else fra.me.REG[8] = once_value_1;
-      fra.me.REG[8] = fra.me.REG[8];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-      fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
-      fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-      if (!once_value_2) {
-        fra.me.REG[8] = BOX_NativeString(" is already defined at line ");
-        REGB0 = TAG_Int(28);
-        fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
-        once_value_2 = fra.me.REG[8];
-        register_static_object(&once_value_2);
-      } else fra.me.REG[8] = once_value_2;
-      fra.me.REG[8] = fra.me.REG[8];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-      fra.me.REG[8] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]);
-      REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 552);
-      }
-      fra.me.REG[8] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[8])(fra.me.REG[8]);
-      REGB0 = CALL_location___Location___line_start(fra.me.REG[8])(fra.me.REG[8]);
-      fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-      if (!once_value_3) {
-        fra.me.REG[8] = BOX_NativeString(".");
-        REGB0 = TAG_Int(1);
-        fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
-        once_value_3 = fra.me.REG[8];
-        register_static_object(&once_value_3);
-      } else fra.me.REG[8] = once_value_3;
-      fra.me.REG[8] = fra.me.REG[8];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-      fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
-      CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
-      /* syntax/mmbuilder.nit:553 */
-      goto label4;
-    }
-    /* syntax/mmbuilder.nit:556 */
-    fra.me.REG[7] = CALL_syntax___syntax_base___MMSrcLocalClass___node(fra.me.REG[6])(fra.me.REG[6]);
-    /* syntax/mmbuilder.nit:557 */
-    while(1) {
-      REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 557);
-      }
-      fra.me.REG[8] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[7])(fra.me.REG[7]);
-      REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-      } else {
-        REGB1 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
-        if (UNTAG_Bool(REGB1)) {
-          REGB1 = TAG_Bool(0);
-          REGB0 = REGB1;
-        } else {
-          REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
-          REGB0 = REGB1;
-        }
-      }
-      REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-      if (UNTAG_Bool(REGB0)) {
-        REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-        if (UNTAG_Bool(REGB0)) {
-          nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 557);
-        }
-        fra.me.REG[8] = CALL_syntax___syntax_base___AClassdef___next_node(fra.me.REG[7])(fra.me.REG[7]);
-        fra.me.REG[7] = fra.me.REG[8];
-      } else {
-        goto label5;
-      }
-    }
-    label5: while(0);
-    /* syntax/mmbuilder.nit:558 */
-    REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 558);
-    }
-    CALL_syntax___syntax_base___AClassdef___next_node__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[2]);
-  } else {
-    /* syntax/mmbuilder.nit:560 */
-    fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = CALL_syntax___mmbuilder___AClassdef___arity(fra.me.REG[2])(fra.me.REG[2]);
-    fra.me.REG[7] = NEW_MMSrcLocalClass_syntax___syntax_base___MMSrcLocalClass___init(fra.me.REG[4], fra.me.REG[7], fra.me.REG[2], REGB0);
-    fra.me.REG[6] = fra.me.REG[7];
-    /* syntax/mmbuilder.nit:561 */
-    ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]) = fra.me.REG[6];
-    /* syntax/mmbuilder.nit:562 */
-    fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
-    CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7], fra.me.REG[6]);
-    /* syntax/mmbuilder.nit:563 */
-    fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
-    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-    if (UNTAG_Bool(REGB0)) {
-      /* syntax/mmbuilder.nit:564 */
-      CALL_syntax___mmbuilder___AClassdef___build_class_introduction(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-    } else {
-      /* syntax/mmbuilder.nit:566 */
-      fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
-      fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMModule___global_class_named(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
-      /* syntax/mmbuilder.nit:567 */
-      CALL_syntax___mmbuilder___AClassdef___build_class_refinement(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[7]);
-    }
-  }
-  /* syntax/mmbuilder.nit:571 */
-  REGB0 = TAG_Int(0);
-  CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB0);
-  /* syntax/mmbuilder.nit:572 */
-  fra.me.REG[6] = CALL_syntax___syntax_base___MMSrcLocalClass___formal_dict(fra.me.REG[6])(fra.me.REG[6]);
-  CALL_syntax___mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
-  /* syntax/mmbuilder.nit:575 */
-  CALL_SUPER_syntax___mmbuilder___AClassdef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:578 */
-  CALL_syntax___mmbuilder___ClassBuilderVisitor___formals__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
-  label4: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AClassdef___build_class_introduction[] = "mmbuilder::AClassdef::build_class_introduction";
-void syntax___mmbuilder___AClassdef___build_class_introduction(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 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___mmbuilder;
-  fra.me.line = 581;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___build_class_introduction;
-  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/mmbuilder.nit:583 */
-  fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_metamodel___abstractmetamodel___MMLocalClass___new_global(fra.me.REG[2])(fra.me.REG[2]);
-  /* syntax/mmbuilder.nit:584 */
-  fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
-  /* syntax/mmbuilder.nit:586 */
-  REGB0 = CALL_syntax___mmbuilder___AClassdef___visibility_level(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
-  /* syntax/mmbuilder.nit:587 */
-  REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:588 */
-    fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[0])(fra.me.REG[0]);
-    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)) {
-      /* syntax/mmbuilder.nit:589 */
-      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("Redef error: No class ");
-        REGB0 = TAG_Int(22);
-        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[4] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[0])(fra.me.REG[0]);
-      fra.me.REG[4] = CALL_standard___string___Object___to_s(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]);
-      if (!once_value_2) {
-        fra.me.REG[4] = BOX_NativeString(" is imported. Remove the redef keyword to define a new class.");
-        REGB0 = TAG_Int(61);
-        fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-        once_value_2 = fra.me.REG[4];
-        register_static_object(&once_value_2);
-      } else fra.me.REG[4] = once_value_2;
-      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[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-      CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
-      /* syntax/mmbuilder.nit:590 */
-      goto label3;
-    }
-    /* syntax/mmbuilder.nit:592 */
-    fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
-    REGB0 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[3])(fra.me.REG[3]);
-    CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    /* syntax/mmbuilder.nit:593 */
-    fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
-    REGB0 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
-    CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    /* syntax/mmbuilder.nit:594 */
-    fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
-    REGB0 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[0])(fra.me.REG[0]);
-    CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
-  }
-  label3: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AClassdef___build_class_refinement[] = "mmbuilder::AClassdef::build_class_refinement";
-void syntax___mmbuilder___AClassdef___build_class_refinement(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 REGB2;
-  val_t tmp;
-    static val_t once_value_1; /* Once value */
-    static val_t once_value_2; /* Once value */
-    static val_t once_value_4; /* Once value */
-    static val_t once_value_5; /* Once value */
-    static val_t once_value_6; /* Once value */
-    static val_t once_value_7; /* Once value */
-    static val_t once_value_8; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 598;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___build_class_refinement;
-  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/mmbuilder.nit:600 */
-  fra.me.REG[3] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_metamodel___abstractmetamodel___MMLocalClass___set_global(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* syntax/mmbuilder.nit:602 */
-  fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_syntax___syntax_base___MMGlobalClass___check_visibility(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
-  /* syntax/mmbuilder.nit:603 */
-  REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
-  if (UNTAG_Bool(REGB0)) {
-    fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[0])(fra.me.REG[0]);
-    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;
-      }
-    }
-  } else {
-    REGB1 = TAG_Bool(0);
-    REGB0 = REGB1;
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:604 */
-    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("Redef error: ");
-      REGB0 = TAG_Int(13);
-      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[4] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[0])(fra.me.REG[0]);
-    fra.me.REG[4] = CALL_standard___string___Object___to_s(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]);
-    if (!once_value_2) {
-      fra.me.REG[4] = BOX_NativeString(" is an imported class. Add the redef keyword to refine it.");
-      REGB0 = TAG_Int(58);
-      fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-      once_value_2 = fra.me.REG[4];
-      register_static_object(&once_value_2);
-    } else fra.me.REG[4] = once_value_2;
-    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[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-    CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
-    /* syntax/mmbuilder.nit:605 */
-    goto label3;
-  }
-  /* syntax/mmbuilder.nit:608 */
-  fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[3])(fra.me.REG[3]);
-  fra.me.REG[3] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[0]);
-  REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 608);
-  }
-  REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[3])(fra.me.REG[3]);
-  REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
-  if (UNTAG_Bool(REGB2)) {
-  } else {
-    /* ../lib/standard/kernel.nit:237 */
-    REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* syntax/mmbuilder.nit:608 */
-    REGB2 = REGB1;
-  }
-  REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
-  if (UNTAG_Bool(REGB2)) {
-    /* syntax/mmbuilder.nit:609 */
-    REGB2 = TAG_Int(5);
-    fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-    if (!once_value_4) {
-      fra.me.REG[4] = BOX_NativeString("Redef error: Formal parameter arity missmatch; got ");
-      REGB2 = TAG_Int(51);
-      fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
-      once_value_4 = fra.me.REG[4];
-      register_static_object(&once_value_4);
-    } else fra.me.REG[4] = once_value_4;
-    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[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[0]);
-    REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 609);
-    }
-    REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
-    fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-    if (!once_value_5) {
-      fra.me.REG[4] = BOX_NativeString(", expected ");
-      REGB2 = TAG_Int(11);
-      fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
-      once_value_5 = fra.me.REG[4];
-      register_static_object(&once_value_5);
-    } else fra.me.REG[4] = once_value_5;
-    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[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[2])(fra.me.REG[2]);
-    REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
-    fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-    if (!once_value_6) {
-      fra.me.REG[4] = BOX_NativeString(".");
-      REGB2 = TAG_Int(1);
-      fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
-      once_value_6 = fra.me.REG[4];
-      register_static_object(&once_value_6);
-    } else fra.me.REG[4] = once_value_6;
-    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[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-    CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
-  }
-  /* syntax/mmbuilder.nit:612 */
-  REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AStdClassdef, ID_parser___parser_nodes___AStdClassdef)) /*cast AStdClassdef*/;
-  if (UNTAG_Bool(REGB2)) {
-    REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[2])(fra.me.REG[2]);
-    REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
-    if (UNTAG_Bool(REGB2)) {
-      fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
-      REGB2 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[3])(fra.me.REG[3]);
-    } else {
-      REGB1 = TAG_Bool(0);
-      REGB2 = REGB1;
-    }
-    if (UNTAG_Bool(REGB2)) {
-      REGB2 = TAG_Bool(1);
-    } else {
-      /* syntax/mmbuilder.nit:613 */
-      REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[2])(fra.me.REG[2]);
-      REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-      /* syntax/mmbuilder.nit:612 */
-      REGB2 = REGB1;
-    }
-    if (UNTAG_Bool(REGB2)) {
-      /* syntax/mmbuilder.nit:613 */
-      fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
-      REGB2 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
-    } else {
-      /* syntax/mmbuilder.nit:612 */
-      REGB1 = TAG_Bool(0);
-      REGB2 = REGB1;
-    }
-    if (UNTAG_Bool(REGB2)) {
-      REGB2 = TAG_Bool(1);
-    } else {
-      /* syntax/mmbuilder.nit:614 */
-      REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[2])(fra.me.REG[2]);
-      REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-      /* syntax/mmbuilder.nit:612 */
-      REGB2 = REGB1;
-    }
-    if (UNTAG_Bool(REGB2)) {
-      /* syntax/mmbuilder.nit:614 */
-      fra.me.REG[2] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[0])(fra.me.REG[0]);
-      REGB2 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[2])(fra.me.REG[2]);
-    } else {
-      /* syntax/mmbuilder.nit:612 */
-      REGB1 = TAG_Bool(0);
-      REGB2 = REGB1;
-    }
-  } else {
-    REGB1 = TAG_Bool(0);
-    REGB2 = REGB1;
-  }
-  if (UNTAG_Bool(REGB2)) {
-    /* syntax/mmbuilder.nit:616 */
-    REGB2 = TAG_Int(3);
-    fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-    if (!once_value_7) {
-      fra.me.REG[3] = BOX_NativeString("Redef error: cannot change kind of class ");
-      REGB2 = TAG_Int(41);
-      fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB2);
-      once_value_7 = fra.me.REG[3];
-      register_static_object(&once_value_7);
-    } else fra.me.REG[3] = once_value_7;
-    fra.me.REG[3] = fra.me.REG[3];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-    fra.me.REG[3] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[0])(fra.me.REG[0]);
-    fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-    if (!once_value_8) {
-      fra.me.REG[3] = BOX_NativeString(".");
-      REGB2 = TAG_Int(1);
-      fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB2);
-      once_value_8 = fra.me.REG[3];
-      register_static_object(&once_value_8);
-    } else fra.me.REG[3] = once_value_8;
-    fra.me.REG[3] = fra.me.REG[3];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-    fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-    CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
-  }
-  label3: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AClassdef___accept_class_verifier[] = "mmbuilder::AClassdef::(mmbuilder::ANode::accept_class_verifier)";
-void syntax___mmbuilder___AClassdef___accept_class_verifier(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 tmp;
-          static val_t once_value_1; /* Once value */
-          static val_t once_value_2; /* Once value */
-          static val_t once_value_3; /* Once value */
-            static val_t once_value_4; /* Once value */
-            static val_t once_value_5; /* Once value */
-            static val_t once_value_6; /* Once value */
-            static val_t once_value_7; /* Once value */
-            static val_t once_value_8; /* Once value */
-            static val_t once_value_9; /* Once value */
-            static val_t once_value_10; /* Once value */
-            static val_t once_value_11; /* Once value */
-            static val_t once_value_12; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 620;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___accept_class_verifier;
-  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/mmbuilder.nit:620 */
-  fra.me.REG[2] = fra.me.REG[0];
-  fra.me.REG[3] = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:622 */
-  CALL_SUPER_syntax___mmbuilder___AClassdef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:623 */
-  fra.me.REG[1] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
-  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 623);
-  }
-  fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:624 */
-  fra.me.REG[0] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
-  REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 624);
-  }
-  fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[0])(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[0])!=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[0]);
-  /* ../lib/standard/collection/array.nit:272 */
-  fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
-  /* ../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[0])!=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[0]);
-    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/mmbuilder.nit:625 */
-      fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
-      /* syntax/mmbuilder.nit:626 */
-      REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
-      if (UNTAG_Bool(REGB1)) {
-        /* syntax/mmbuilder.nit:627 */
-        REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
-        if (UNTAG_Bool(REGB1)) {
-          /* syntax/mmbuilder.nit:628 */
-          REGB1 = TAG_Int(5);
-          fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-          if (!once_value_1) {
-            fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
-            REGB1 = TAG_Int(25);
-            fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-            once_value_1 = fra.me.REG[8];
-            register_static_object(&once_value_1);
-          } else fra.me.REG[8] = once_value_1;
-          fra.me.REG[8] = fra.me.REG[8];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-          fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
-          fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-          if (!once_value_2) {
-            fra.me.REG[8] = BOX_NativeString(" try to specialise enum class ");
-            REGB1 = TAG_Int(30);
-            fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-            once_value_2 = fra.me.REG[8];
-            register_static_object(&once_value_2);
-          } else fra.me.REG[8] = once_value_2;
-          fra.me.REG[8] = fra.me.REG[8];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-          fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
-          fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-          if (!once_value_3) {
-            fra.me.REG[8] = BOX_NativeString(".");
-            REGB1 = TAG_Int(1);
-            fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-            once_value_3 = fra.me.REG[8];
-            register_static_object(&once_value_3);
-          } else fra.me.REG[8] = once_value_3;
-          fra.me.REG[8] = fra.me.REG[8];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-          fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
-          CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
-        } else {
-          /* syntax/mmbuilder.nit:629 */
-          REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
-          REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-          if (UNTAG_Bool(REGB1)) {
-            /* syntax/mmbuilder.nit:630 */
-            REGB1 = TAG_Int(5);
-            fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-            if (!once_value_4) {
-              fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
-              REGB1 = TAG_Int(25);
-              fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-              once_value_4 = fra.me.REG[8];
-              register_static_object(&once_value_4);
-            } else fra.me.REG[8] = once_value_4;
-            fra.me.REG[8] = fra.me.REG[8];
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-            fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
-            fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-            if (!once_value_5) {
-              fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
-              REGB1 = TAG_Int(25);
-              fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-              once_value_5 = fra.me.REG[8];
-              register_static_object(&once_value_5);
-            } else fra.me.REG[8] = once_value_5;
-            fra.me.REG[8] = fra.me.REG[8];
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-            fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
-            fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-            if (!once_value_6) {
-              fra.me.REG[8] = BOX_NativeString(".");
-              REGB1 = TAG_Int(1);
-              fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-              once_value_6 = fra.me.REG[8];
-              register_static_object(&once_value_6);
-            } else fra.me.REG[8] = once_value_6;
-            fra.me.REG[8] = fra.me.REG[8];
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-            fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
-            CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
-          }
-        }
-      } else {
-        /* syntax/mmbuilder.nit:632 */
-        REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
-        if (UNTAG_Bool(REGB1)) {
-          /* syntax/mmbuilder.nit:633 */
-          REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
-          REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-          if (UNTAG_Bool(REGB1)) {
-            REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
-            REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-          } else {
-            REGB2 = TAG_Bool(0);
-            REGB1 = REGB2;
-          }
-          if (UNTAG_Bool(REGB1)) {
-            /* syntax/mmbuilder.nit:634 */
-            REGB1 = TAG_Int(5);
-            fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-            if (!once_value_7) {
-              fra.me.REG[8] = BOX_NativeString("Special error: Enum class ");
-              REGB1 = TAG_Int(26);
-              fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-              once_value_7 = fra.me.REG[8];
-              register_static_object(&once_value_7);
-            } else fra.me.REG[8] = once_value_7;
-            fra.me.REG[8] = fra.me.REG[8];
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-            fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
-            fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-            if (!once_value_8) {
-              fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
-              REGB1 = TAG_Int(25);
-              fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-              once_value_8 = fra.me.REG[8];
-              register_static_object(&once_value_8);
-            } else fra.me.REG[8] = once_value_8;
-            fra.me.REG[8] = fra.me.REG[8];
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-            fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
-            fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-            if (!once_value_9) {
-              fra.me.REG[8] = BOX_NativeString(".");
-              REGB1 = TAG_Int(1);
-              fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-              once_value_9 = fra.me.REG[8];
-              register_static_object(&once_value_9);
-            } else fra.me.REG[8] = once_value_9;
-            fra.me.REG[8] = fra.me.REG[8];
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-            fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
-            CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
-          }
-        } else {
-          /* syntax/mmbuilder.nit:637 */
-          REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
-          if (UNTAG_Bool(REGB1)) {
-            /* syntax/mmbuilder.nit:638 */
-            REGB1 = TAG_Int(5);
-            fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-            if (!once_value_10) {
-              fra.me.REG[7] = BOX_NativeString("Special error: Class ");
-              REGB1 = TAG_Int(21);
-              fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB1);
-              once_value_10 = fra.me.REG[7];
-              register_static_object(&once_value_10);
-            } else fra.me.REG[7] = once_value_10;
-            fra.me.REG[7] = fra.me.REG[7];
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-            fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
-            fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-            if (!once_value_11) {
-              fra.me.REG[7] = BOX_NativeString(" try to specialise enum class ");
-              REGB1 = TAG_Int(30);
-              fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB1);
-              once_value_11 = fra.me.REG[7];
-              register_static_object(&once_value_11);
-            } else fra.me.REG[7] = once_value_11;
-            fra.me.REG[7] = fra.me.REG[7];
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-            fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
-            fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
-            if (!once_value_12) {
-              fra.me.REG[5] = BOX_NativeString(".");
-              REGB1 = TAG_Int(1);
-              fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB1);
-              once_value_12 = fra.me.REG[5];
-              register_static_object(&once_value_12);
-            } else fra.me.REG[5] = once_value_12;
-            fra.me.REG[5] = fra.me.REG[5];
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
-            fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-            CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
-          }
-        }
-      }
-      /* ../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 label13;
-    }
-  }
-  label13: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor[] = "mmbuilder::AClassdef::(syntax_base::ANode::accept_abs_syntax_visitor)";
-void syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
-  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___mmbuilder;
-  fra.me.line = 645;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor;
-  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/mmbuilder.nit:645 */
-  fra.me.REG[2] = fra.me.REG[0];
-  fra.me.REG[3] = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:647 */
-  fra.me.REG[2] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
-  CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* syntax/mmbuilder.nit:648 */
-  CALL_SUPER_syntax___mmbuilder___AClassdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:649 */
-  CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AClasskind___is_interface[] = "mmbuilder::AClasskind::is_interface";
-val_t syntax___mmbuilder___AClasskind___is_interface(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___mmbuilder;
-  fra.me.line = 654;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_interface;
-  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/mmbuilder.nit:654 */
-  REGB0 = TAG_Bool(0);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___mmbuilder___AClasskind___is_enum[] = "mmbuilder::AClasskind::is_enum";
-val_t syntax___mmbuilder___AClasskind___is_enum(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___mmbuilder;
-  fra.me.line = 655;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_enum;
-  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/mmbuilder.nit:655 */
-  REGB0 = TAG_Bool(0);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___mmbuilder___AClasskind___is_abstract[] = "mmbuilder::AClasskind::is_abstract";
-val_t syntax___mmbuilder___AClasskind___is_abstract(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___mmbuilder;
-  fra.me.line = 656;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_abstract;
-  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/mmbuilder.nit:656 */
-  REGB0 = TAG_Bool(0);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___mmbuilder___AClasskind___is_extern[] = "mmbuilder::AClasskind::is_extern";
-val_t syntax___mmbuilder___AClasskind___is_extern(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___mmbuilder;
-  fra.me.line = 657;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AClasskind___is_extern;
-  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/mmbuilder.nit:657 */
-  REGB0 = TAG_Bool(0);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___mmbuilder___AInterfaceClasskind___is_interface[] = "mmbuilder::AInterfaceClasskind::(mmbuilder::AClasskind::is_interface)";
-val_t syntax___mmbuilder___AInterfaceClasskind___is_interface(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___mmbuilder;
-  fra.me.line = 661;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AInterfaceClasskind___is_interface;
-  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/mmbuilder.nit:661 */
-  REGB0 = TAG_Bool(1);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___mmbuilder___AEnumClasskind___is_enum[] = "mmbuilder::AEnumClasskind::(mmbuilder::AClasskind::is_enum)";
-val_t syntax___mmbuilder___AEnumClasskind___is_enum(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___mmbuilder;
-  fra.me.line = 664;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AEnumClasskind___is_enum;
-  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/mmbuilder.nit:664 */
-  REGB0 = TAG_Bool(1);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___mmbuilder___AExternClasskind___is_extern[] = "mmbuilder::AExternClasskind::(mmbuilder::AClasskind::is_extern)";
-val_t syntax___mmbuilder___AExternClasskind___is_extern(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___mmbuilder;
-  fra.me.line = 667;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AExternClasskind___is_extern;
-  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/mmbuilder.nit:667 */
-  REGB0 = TAG_Bool(1);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___mmbuilder___AAbstractClasskind___is_abstract[] = "mmbuilder::AAbstractClasskind::(mmbuilder::AClasskind::is_abstract)";
-val_t syntax___mmbuilder___AAbstractClasskind___is_abstract(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___mmbuilder;
-  fra.me.line = 670;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AAbstractClasskind___is_abstract;
-  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/mmbuilder.nit:670 */
-  REGB0 = TAG_Bool(1);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___mmbuilder___AStdClassdef___name[] = "mmbuilder::AStdClassdef::(mmbuilder::AClassdef::name)";
-val_t syntax___mmbuilder___AStdClassdef___name(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___mmbuilder;
-  fra.me.line = 674;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___name;
-  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/mmbuilder.nit:676 */
-  fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_id(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 676);
-  }
-  fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_syntax___mmbuilder___AStdClassdef___arity[] = "mmbuilder::AStdClassdef::(mmbuilder::AClassdef::arity)";
-val_t syntax___mmbuilder___AStdClassdef___arity(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___mmbuilder;
-  fra.me.line = 678;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___arity;
-  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/mmbuilder.nit:680 */
-  fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_formaldefs(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder[] = "mmbuilder::AStdClassdef::(mmbuilder::ANode::accept_class_specialization_builder)";
-void syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder(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_syntax___mmbuilder;
-  fra.me.line = 682;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder;
-  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/mmbuilder.nit:682 */
-  fra.me.REG[2] = fra.me.REG[0];
-  /* syntax/mmbuilder.nit:684 */
-  CALL_SUPER_syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:686 */
-  fra.me.REG[1] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:687 */
-  fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[3] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[3]));
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-    REGB0 = REGB1;
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:688 */
-    fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[3])(fra.me.REG[3]);
-    CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
-    /* syntax/mmbuilder.nit:689 */
-    fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[3])(fra.me.REG[3]);
-    CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
-    /* syntax/mmbuilder.nit:690 */
-    fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[3])(fra.me.REG[3]);
-    CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
-    /* syntax/mmbuilder.nit:691 */
-    fra.me.REG[3] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = CALL_syntax___mmbuilder___AClasskind___is_extern(fra.me.REG[3])(fra.me.REG[3]);
-    CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
-    /* syntax/mmbuilder.nit:692 */
-    REGB0 = CALL_syntax___mmbuilder___AClassdef___visibility_level(fra.me.REG[2])(fra.me.REG[2]);
-    CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
-  }
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AStdClassdef___accept_class_verifier[] = "mmbuilder::AStdClassdef::(mmbuilder::ANode::accept_class_verifier)";
-void syntax___mmbuilder___AStdClassdef___accept_class_verifier(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 tmp;
-      static val_t once_value_1; /* Once value */
-      static val_t once_value_2; /* Once value */
-            static val_t once_value_3; /* Once value */
-            static val_t once_value_4; /* Once value */
-            static val_t once_value_5; /* Once value */
-              static val_t once_value_6; /* Once value */
-              static val_t once_value_7; /* Once value */
-              static val_t once_value_8; /* Once value */
-              static val_t once_value_9; /* Once value */
-              static val_t once_value_10; /* Once value */
-              static val_t once_value_11; /* Once value */
-               static val_t once_value_12; /* Once value */
-               static val_t once_value_13; /* Once value */
-               static val_t once_value_14; /* Once value */
-               static val_t once_value_15; /* Once value */
-               static val_t once_value_16; /* Once value */
-               static val_t once_value_17; /* Once value */
-               static val_t once_value_18; /* Once value */
-               static val_t once_value_19; /* Once value */
-               static val_t once_value_20; /* Once value */
-    static val_t once_value_23; /* Once value */
-    static val_t once_value_24; /* Once value */
-    static val_t once_value_25; /* Once value */
-    static val_t once_value_26; /* Once value */
-    static val_t once_value_27; /* Once value */
-    static val_t once_value_28; /* Once value */
-    static val_t once_value_29; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 695;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___accept_class_verifier;
-  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/mmbuilder.nit:695 */
-  fra.me.REG[2] = fra.me.REG[0];
-  fra.me.REG[3] = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:697 */
-  CALL_SUPER_syntax___mmbuilder___AStdClassdef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:698 */
-  fra.me.REG[1] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
-  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 698);
-  }
-  fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:699 */
-  fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
-  REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[4]));
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-    REGB0 = REGB1;
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:701 */
-    fra.me.REG[4] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
-    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)) {
-      /* syntax/mmbuilder.nit:702 */
-      REGB0 = TAG_Int(3);
-      fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-      if (!once_value_1) {
-        fra.me.REG[0] = BOX_NativeString("Redef error: No class ");
-        REGB0 = TAG_Int(22);
-        fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-        once_value_1 = fra.me.REG[0];
-        register_static_object(&once_value_1);
-      } else fra.me.REG[0] = once_value_1;
-      fra.me.REG[0] = fra.me.REG[0];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
-      fra.me.REG[0] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
-      fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
-      if (!once_value_2) {
-        fra.me.REG[0] = BOX_NativeString(" is imported. Remove the redef keyword to define a new class.");
-        REGB0 = TAG_Int(61);
-        fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-        once_value_2 = fra.me.REG[0];
-        register_static_object(&once_value_2);
-      } else fra.me.REG[0] = once_value_2;
-      fra.me.REG[0] = fra.me.REG[0];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
-      fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-      CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]);
-    }
-    /* syntax/mmbuilder.nit:704 */
-    REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
-    if (UNTAG_Bool(REGB0)) {
-      /* syntax/mmbuilder.nit:705 */
-      fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
-      REGB0 = TAG_Bool(1);
-      CALL_metamodel___abstractmetamodel___MMModule___is_extern_hybrid__eq(fra.me.REG[4])(fra.me.REG[4], REGB0);
-    }
-    /* syntax/mmbuilder.nit:708 */
-    fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
-    REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 708);
-    }
-    fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[4])(fra.me.REG[4]);
-    fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[4])(fra.me.REG[4]);
-    /* ../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[4])!=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[4]);
-    /* ../lib/standard/collection/array.nit:272 */
-    fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
-    /* ../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[4])!=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[4]);
-      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[0]==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[0])->val[UNTAG_Int(REGB0)];
-        /* syntax/mmbuilder.nit:709 */
-        fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
-        /* syntax/mmbuilder.nit:710 */
-        REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
-        if (UNTAG_Bool(REGB1)) {
-          /* syntax/mmbuilder.nit:711 */
-          REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
-          if (UNTAG_Bool(REGB1)) {
-            /* syntax/mmbuilder.nit:712 */
-            REGB1 = TAG_Int(5);
-            fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-            if (!once_value_3) {
-              fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
-              REGB1 = TAG_Int(25);
-              fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-              once_value_3 = fra.me.REG[8];
-              register_static_object(&once_value_3);
-            } else fra.me.REG[8] = once_value_3;
-            fra.me.REG[8] = fra.me.REG[8];
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-            fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
-            fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-            if (!once_value_4) {
-              fra.me.REG[8] = BOX_NativeString(" try to specialise enum class ");
-              REGB1 = TAG_Int(30);
-              fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-              once_value_4 = fra.me.REG[8];
-              register_static_object(&once_value_4);
-            } else fra.me.REG[8] = once_value_4;
-            fra.me.REG[8] = fra.me.REG[8];
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-            fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
-            fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-            if (!once_value_5) {
-              fra.me.REG[8] = BOX_NativeString(".");
-              REGB1 = TAG_Int(1);
-              fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-              once_value_5 = fra.me.REG[8];
-              register_static_object(&once_value_5);
-            } else fra.me.REG[8] = once_value_5;
-            fra.me.REG[8] = fra.me.REG[8];
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-            fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
-            CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
-          } else {
-            /* syntax/mmbuilder.nit:713 */
-            REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
-            REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-            if (UNTAG_Bool(REGB1)) {
-              /* syntax/mmbuilder.nit:714 */
-              REGB1 = TAG_Int(5);
-              fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-              if (!once_value_6) {
-               fra.me.REG[8] = BOX_NativeString("Special error: Interface ");
-               REGB1 = TAG_Int(25);
-               fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-               once_value_6 = fra.me.REG[8];
-               register_static_object(&once_value_6);
-              } else fra.me.REG[8] = once_value_6;
-              fra.me.REG[8] = fra.me.REG[8];
-              CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-              fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
-              fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-              CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-              if (!once_value_7) {
-               fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
-               REGB1 = TAG_Int(25);
-               fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-               once_value_7 = fra.me.REG[8];
-               register_static_object(&once_value_7);
-              } else fra.me.REG[8] = once_value_7;
-              fra.me.REG[8] = fra.me.REG[8];
-              CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-              fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
-              fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-              CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-              if (!once_value_8) {
-               fra.me.REG[8] = BOX_NativeString(".");
-               REGB1 = TAG_Int(1);
-               fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-               once_value_8 = fra.me.REG[8];
-               register_static_object(&once_value_8);
-              } else fra.me.REG[8] = once_value_8;
-              fra.me.REG[8] = fra.me.REG[8];
-              CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-              fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
-              CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
-            }
-          }
-        } else {
-          /* syntax/mmbuilder.nit:716 */
-          REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
-          if (UNTAG_Bool(REGB1)) {
-            /* syntax/mmbuilder.nit:717 */
-            REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
-            REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-            if (UNTAG_Bool(REGB1)) {
-              REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
-              REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-            } else {
-              REGB2 = TAG_Bool(0);
-              REGB1 = REGB2;
-            }
-            if (UNTAG_Bool(REGB1)) {
-              /* syntax/mmbuilder.nit:718 */
-              REGB1 = TAG_Int(5);
-              fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-              if (!once_value_9) {
-               fra.me.REG[8] = BOX_NativeString("Special error: Enum class ");
-               REGB1 = TAG_Int(26);
-               fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-               once_value_9 = fra.me.REG[8];
-               register_static_object(&once_value_9);
-              } else fra.me.REG[8] = once_value_9;
-              fra.me.REG[8] = fra.me.REG[8];
-              CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-              fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
-              fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-              CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-              if (!once_value_10) {
-               fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
-               REGB1 = TAG_Int(25);
-               fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-               once_value_10 = fra.me.REG[8];
-               register_static_object(&once_value_10);
-              } else fra.me.REG[8] = once_value_10;
-              fra.me.REG[8] = fra.me.REG[8];
-              CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-              fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
-              fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-              CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-              if (!once_value_11) {
-               fra.me.REG[8] = BOX_NativeString(".");
-               REGB1 = TAG_Int(1);
-               fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-               once_value_11 = fra.me.REG[8];
-               register_static_object(&once_value_11);
-              } else fra.me.REG[8] = once_value_11;
-              fra.me.REG[8] = fra.me.REG[8];
-              CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-              fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
-              CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
-            }
-          } else {
-            /* syntax/mmbuilder.nit:720 */
-            REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
-            if (UNTAG_Bool(REGB1)) {
-              /* syntax/mmbuilder.nit:721 */
-              REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[6])(fra.me.REG[6]);
-              REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-              if (UNTAG_Bool(REGB1)) {
-               REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[6])(fra.me.REG[6]);
-               REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-              } else {
-               REGB2 = TAG_Bool(0);
-               REGB1 = REGB2;
-              }
-              if (UNTAG_Bool(REGB1)) {
-               /* syntax/mmbuilder.nit:722 */
-               REGB1 = TAG_Int(5);
-               fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-               if (!once_value_12) {
-               fra.me.REG[8] = BOX_NativeString("Special error: Extern class ");
-               REGB1 = TAG_Int(28);
-               fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-               once_value_12 = fra.me.REG[8];
-               register_static_object(&once_value_12);
-               } else fra.me.REG[8] = once_value_12;
-               fra.me.REG[8] = fra.me.REG[8];
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-               fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
-               fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-               if (!once_value_13) {
-               fra.me.REG[8] = BOX_NativeString(" try to specialise class ");
-               REGB1 = TAG_Int(25);
-               fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-               once_value_13 = fra.me.REG[8];
-               register_static_object(&once_value_13);
-               } else fra.me.REG[8] = once_value_13;
-               fra.me.REG[8] = fra.me.REG[8];
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-               fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
-               fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-               if (!once_value_14) {
-               fra.me.REG[8] = BOX_NativeString(".");
-               REGB1 = TAG_Int(1);
-               fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-               once_value_14 = fra.me.REG[8];
-               register_static_object(&once_value_14);
-               } else fra.me.REG[8] = once_value_14;
-               fra.me.REG[8] = fra.me.REG[8];
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-               fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
-               CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
-              }
-            } else {
-              /* syntax/mmbuilder.nit:725 */
-              REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[6])(fra.me.REG[6]);
-              if (UNTAG_Bool(REGB1)) {
-               /* syntax/mmbuilder.nit:726 */
-               REGB1 = TAG_Int(5);
-               fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-               if (!once_value_15) {
-               fra.me.REG[8] = BOX_NativeString("Special error: Class ");
-               REGB1 = TAG_Int(21);
-               fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-               once_value_15 = fra.me.REG[8];
-               register_static_object(&once_value_15);
-               } else fra.me.REG[8] = once_value_15;
-               fra.me.REG[8] = fra.me.REG[8];
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-               fra.me.REG[8] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
-               fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-               if (!once_value_16) {
-               fra.me.REG[8] = BOX_NativeString(" try to specialise enum class ");
-               REGB1 = TAG_Int(30);
-               fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-               once_value_16 = fra.me.REG[8];
-               register_static_object(&once_value_16);
-               } else fra.me.REG[8] = once_value_16;
-               fra.me.REG[8] = fra.me.REG[8];
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-               fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
-               fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-               if (!once_value_17) {
-               fra.me.REG[8] = BOX_NativeString(".");
-               REGB1 = TAG_Int(1);
-               fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
-               once_value_17 = fra.me.REG[8];
-               register_static_object(&once_value_17);
-               } else fra.me.REG[8] = once_value_17;
-               fra.me.REG[8] = fra.me.REG[8];
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-               fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
-               CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[7]);
-              } else {
-               /* syntax/mmbuilder.nit:727 */
-               REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[6])(fra.me.REG[6]);
-               if (UNTAG_Bool(REGB1)) {
-               /* syntax/mmbuilder.nit:728 */
-               REGB1 = TAG_Int(5);
-               fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-               if (!once_value_18) {
-               fra.me.REG[7] = BOX_NativeString("Special error: Class ");
-               REGB1 = TAG_Int(21);
-               fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB1);
-               once_value_18 = fra.me.REG[7];
-               register_static_object(&once_value_18);
-               } else fra.me.REG[7] = once_value_18;
-               fra.me.REG[7] = fra.me.REG[7];
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-               fra.me.REG[7] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
-               fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-               if (!once_value_19) {
-               fra.me.REG[7] = BOX_NativeString(" try to specialise extern class ");
-               REGB1 = TAG_Int(32);
-               fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB1);
-               once_value_19 = fra.me.REG[7];
-               register_static_object(&once_value_19);
-               } else fra.me.REG[7] = once_value_19;
-               fra.me.REG[7] = fra.me.REG[7];
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
-               fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[5])(fra.me.REG[5]);
-               fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
-               if (!once_value_20) {
-               fra.me.REG[5] = BOX_NativeString(".");
-               REGB1 = TAG_Int(1);
-               fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB1);
-               once_value_20 = fra.me.REG[5];
-               register_static_object(&once_value_20);
-               } else fra.me.REG[5] = once_value_20;
-               fra.me.REG[5] = fra.me.REG[5];
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
-               fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-               CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
-               }
-              }
-            }
-          }
-        }
-        /* ../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 label21;
-      }
-    }
-    label21: while(0);
-    /* syntax/mmbuilder.nit:733 */
-    goto label22;
-  }
-  /* syntax/mmbuilder.nit:738 */
-  fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
-  CALL_syntax___syntax_base___MMGlobalClass___check_visibility(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
-  /* syntax/mmbuilder.nit:739 */
-  fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(0);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:740 */
-    REGB0 = TAG_Int(3);
-    fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_23) {
-      fra.me.REG[4] = BOX_NativeString("Redef error: ");
-      REGB0 = TAG_Int(13);
-      fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-      once_value_23 = fra.me.REG[4];
-      register_static_object(&once_value_23);
-    } else fra.me.REG[4] = once_value_23;
-    fra.me.REG[4] = fra.me.REG[4];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-    fra.me.REG[4] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
-    fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-    if (!once_value_24) {
-      fra.me.REG[4] = BOX_NativeString(" is an imported class. Add the redef keyword to refine it.");
-      REGB0 = TAG_Int(58);
-      fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-      once_value_24 = fra.me.REG[4];
-      register_static_object(&once_value_24);
-    } else fra.me.REG[4] = once_value_24;
-    fra.me.REG[4] = fra.me.REG[4];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-    fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
-    CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
-    /* syntax/mmbuilder.nit:741 */
-    goto label22;
-  }
-  /* syntax/mmbuilder.nit:744 */
-  fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
-  REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 744);
-  }
-  REGB1 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[0])(fra.me.REG[0]);
-  REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
-  if (UNTAG_Bool(REGB2)) {
-  } else {
-    /* ../lib/standard/kernel.nit:237 */
-    REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* syntax/mmbuilder.nit:744 */
-    REGB2 = REGB1;
-  }
-  REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
-  if (UNTAG_Bool(REGB2)) {
-    /* syntax/mmbuilder.nit:745 */
-    REGB2 = TAG_Int(5);
-    fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-    if (!once_value_25) {
-      fra.me.REG[4] = BOX_NativeString("Redef error: Formal parameter arity mismatch; got ");
-      REGB2 = TAG_Int(50);
-      fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
-      once_value_25 = fra.me.REG[4];
-      register_static_object(&once_value_25);
-    } else fra.me.REG[4] = once_value_25;
-    fra.me.REG[4] = fra.me.REG[4];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-    fra.me.REG[4] = ATTR_syntax___mmbuilder___AClassdef____local_class(fra.me.REG[2]);
-    REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 745);
-    }
-    REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
-    fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-    if (!once_value_26) {
-      fra.me.REG[4] = BOX_NativeString(", expected ");
-      REGB2 = TAG_Int(11);
-      fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
-      once_value_26 = fra.me.REG[4];
-      register_static_object(&once_value_26);
-    } else fra.me.REG[4] = once_value_26;
-    fra.me.REG[4] = fra.me.REG[4];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-    fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[1])(fra.me.REG[1]);
-    REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra.me.REG[4])(fra.me.REG[4]);
-    fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-    if (!once_value_27) {
-      fra.me.REG[4] = BOX_NativeString(".");
-      REGB2 = TAG_Int(1);
-      fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
-      once_value_27 = fra.me.REG[4];
-      register_static_object(&once_value_27);
-    } else fra.me.REG[4] = once_value_27;
-    fra.me.REG[4] = fra.me.REG[4];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-    fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
-    CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
-  }
-  /* syntax/mmbuilder.nit:749 */
-  REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
-  REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
-  if (UNTAG_Bool(REGB2)) {
-    fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
-    REGB2 = CALL_syntax___mmbuilder___AClasskind___is_interface(fra.me.REG[0])(fra.me.REG[0]);
-  } else {
-    REGB1 = TAG_Bool(0);
-    REGB2 = REGB1;
-  }
-  if (UNTAG_Bool(REGB2)) {
-    REGB2 = TAG_Bool(1);
-  } else {
-    /* syntax/mmbuilder.nit:750 */
-    REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[1])(fra.me.REG[1]);
-    REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-    /* syntax/mmbuilder.nit:749 */
-    REGB2 = REGB1;
-  }
-  if (UNTAG_Bool(REGB2)) {
-    /* syntax/mmbuilder.nit:750 */
-    fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
-    REGB2 = CALL_syntax___mmbuilder___AClasskind___is_abstract(fra.me.REG[0])(fra.me.REG[0]);
-  } else {
-    /* syntax/mmbuilder.nit:749 */
-    REGB1 = TAG_Bool(0);
-    REGB2 = REGB1;
-  }
-  if (UNTAG_Bool(REGB2)) {
-    REGB2 = TAG_Bool(1);
-  } else {
-    /* syntax/mmbuilder.nit:751 */
-    REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[1])(fra.me.REG[1]);
-    REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-    /* syntax/mmbuilder.nit:749 */
-    REGB2 = REGB1;
-  }
-  if (UNTAG_Bool(REGB2)) {
-    /* syntax/mmbuilder.nit:751 */
-    fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
-    REGB2 = CALL_syntax___mmbuilder___AClasskind___is_enum(fra.me.REG[0])(fra.me.REG[0]);
-  } else {
-    /* syntax/mmbuilder.nit:749 */
-    REGB1 = TAG_Bool(0);
-    REGB2 = REGB1;
-  }
-  if (UNTAG_Bool(REGB2)) {
-    REGB2 = TAG_Bool(1);
-  } else {
-    /* syntax/mmbuilder.nit:752 */
-    REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[1])(fra.me.REG[1]);
-    REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-    /* syntax/mmbuilder.nit:749 */
-    REGB2 = REGB1;
-  }
-  if (UNTAG_Bool(REGB2)) {
-    /* syntax/mmbuilder.nit:752 */
-    fra.me.REG[1] = CALL_parser___parser_nodes___AStdClassdef___n_classkind(fra.me.REG[2])(fra.me.REG[2]);
-    REGB2 = CALL_syntax___mmbuilder___AClasskind___is_extern(fra.me.REG[1])(fra.me.REG[1]);
-  } else {
-    /* syntax/mmbuilder.nit:749 */
-    REGB1 = TAG_Bool(0);
-    REGB2 = REGB1;
-  }
-  /* syntax/mmbuilder.nit:748 */
-  if (UNTAG_Bool(REGB2)) {
-    /* syntax/mmbuilder.nit:754 */
-    REGB2 = TAG_Int(3);
-    fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-    if (!once_value_28) {
-      fra.me.REG[0] = BOX_NativeString("Redef error: cannot change kind of class ");
-      REGB2 = TAG_Int(41);
-      fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB2);
-      once_value_28 = fra.me.REG[0];
-      register_static_object(&once_value_28);
-    } else fra.me.REG[0] = once_value_28;
-    fra.me.REG[0] = fra.me.REG[0];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    fra.me.REG[0] = CALL_syntax___mmbuilder___AClassdef___name(fra.me.REG[2])(fra.me.REG[2]);
-    fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    if (!once_value_29) {
-      fra.me.REG[0] = BOX_NativeString(".");
-      REGB2 = TAG_Int(1);
-      fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB2);
-      once_value_29 = fra.me.REG[0];
-      register_static_object(&once_value_29);
-    } else fra.me.REG[0] = once_value_29;
-    fra.me.REG[0] = fra.me.REG[0];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
-    CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]);
-  }
-  label22: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AStdClassdef___visibility_level[] = "mmbuilder::AStdClassdef::(mmbuilder::AClassdef::visibility_level)";
-val_t syntax___mmbuilder___AStdClassdef___visibility_level(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___mmbuilder;
-  fra.me.line = 758;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AStdClassdef___visibility_level;
-  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/mmbuilder.nit:760 */
-  fra.me.REG[0] = CALL_parser___parser_nodes___AStdClassdef___n_visibility(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[0])(fra.me.REG[0]);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___mmbuilder___AMainClassdef___name[] = "mmbuilder::AMainClassdef::(mmbuilder::AClassdef::name)";
-val_t syntax___mmbuilder___AMainClassdef___name(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  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___mmbuilder;
-  fra.me.line = 765;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AMainClassdef___name;
-  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/mmbuilder.nit:767 */
-  if (!once_value_1) {
-    if (!once_value_2) {
-      fra.me.REG[0] = BOX_NativeString("Sys");
-      REGB0 = TAG_Int(3);
-      fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-      once_value_2 = fra.me.REG[0];
-      register_static_object(&once_value_2);
-    } else fra.me.REG[0] = once_value_2;
-    fra.me.REG[0] = fra.me.REG[0];
-    fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
-    once_value_1 = fra.me.REG[0];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[0] = once_value_1;
-  fra.me.REG[0] = fra.me.REG[0];
-  goto label3;
-  label3: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_syntax___mmbuilder___ATopClassdef___name[] = "mmbuilder::ATopClassdef::(mmbuilder::AClassdef::name)";
-val_t syntax___mmbuilder___ATopClassdef___name(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  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___mmbuilder;
-  fra.me.line = 772;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ATopClassdef___name;
-  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/mmbuilder.nit:774 */
-  if (!once_value_1) {
-    if (!once_value_2) {
-      fra.me.REG[0] = BOX_NativeString("Object");
-      REGB0 = TAG_Int(6);
-      fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-      once_value_2 = fra.me.REG[0];
-      register_static_object(&once_value_2);
-    } else fra.me.REG[0] = once_value_2;
-    fra.me.REG[0] = fra.me.REG[0];
-    fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
-    once_value_1 = fra.me.REG[0];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[0] = once_value_1;
-  fra.me.REG[0] = fra.me.REG[0];
-  goto label3;
-  label3: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_syntax___mmbuilder___AFormaldef___accept_class_builder[] = "mmbuilder::AFormaldef::(mmbuilder::ANode::accept_class_builder)";
-void syntax___mmbuilder___AFormaldef___accept_class_builder(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} 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___mmbuilder;
-  fra.me.line = 782;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AFormaldef___accept_class_builder;
-  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;
-  /* syntax/mmbuilder.nit:782 */
-  fra.me.REG[2] = fra.me.REG[0];
-  fra.me.REG[3] = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:784 */
-  fra.me.REG[4] = CALL_parser___parser_nodes___AFormaldef___n_id(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[4] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
-  /* syntax/mmbuilder.nit:785 */
-  REGB0 = CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]);
-  fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
-  fra.me.REG[5] = NEW_MMTypeFormalParameter_metamodel___genericity___MMTypeFormalParameter___init(fra.me.REG[4], REGB0, fra.me.REG[5]);
-  /* syntax/mmbuilder.nit:786 */
-  ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]) = fra.me.REG[5];
-  /* syntax/mmbuilder.nit:787 */
-  REGB0 = CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity(fra.me.REG[3])(fra.me.REG[3]);
-  REGB1 = TAG_Int(1);
-  /* ../lib/standard/kernel.nit:245 */
-  REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-  /* syntax/mmbuilder.nit:787 */
-  CALL_syntax___mmbuilder___ClassBuilderVisitor___local_class_arity__eq(fra.me.REG[3])(fra.me.REG[3], REGB1);
-  /* syntax/mmbuilder.nit:788 */
-  fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
-  CALL_metamodel___genericity___MMLocalClass___register_formal(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
-  /* syntax/mmbuilder.nit:789 */
-  fra.me.REG[3] = CALL_syntax___mmbuilder___ClassBuilderVisitor___formals(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___mmbuilder, 789);
-  }
-  CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]);
-  /* syntax/mmbuilder.nit:790 */
-  CALL_SUPER_syntax___mmbuilder___AFormaldef___accept_class_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AFormaldef___accept_class_verifier[] = "mmbuilder::AFormaldef::(mmbuilder::ANode::accept_class_verifier)";
-void syntax___mmbuilder___AFormaldef___accept_class_verifier(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t tmp;
-        static val_t once_value_2; /* Once value */
-        static val_t once_value_3; /* Once value */
-        static val_t once_value_4; /* Once value */
-        static val_t once_value_5; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 793;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AFormaldef___accept_class_verifier;
-  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;
-  /* syntax/mmbuilder.nit:793 */
-  fra.me.REG[2] = fra.me.REG[0];
-  fra.me.REG[3] = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:795 */
-  CALL_SUPER_syntax___mmbuilder___AFormaldef___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:796 */
-  fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
-  /* syntax/mmbuilder.nit:797 */
-  fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[0])(fra.me.REG[0]);
-  /* syntax/mmbuilder.nit:798 */
-  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    REGB0 = REGB1;
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:799 */
-    fra.me.REG[4] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
-    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;
-      }
-    }
-    if (UNTAG_Bool(REGB0)) {
-      /* syntax/mmbuilder.nit:800 */
-      fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
-      fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
-      fra.me.REG[5] = CALL_metamodel___inheritance___MMModule___type_any(fra.me.REG[5])(fra.me.REG[5]);
-      fra.me.REG[5] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[5])(fra.me.REG[5]);
-      REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 800);
-      }
-      CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    } else {
-      /* syntax/mmbuilder.nit:802 */
-      fra.me.REG[5] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
-      REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 802);
-      }
-      fra.me.REG[5] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
-      /* syntax/mmbuilder.nit:803 */
-      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;
-        }
-      }
-      if (UNTAG_Bool(REGB0)) {
-        goto label1;
-      }
-      /* syntax/mmbuilder.nit:804 */
-      fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
-      REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 804);
-      }
-      CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    }
-  } else {
-    /* syntax/mmbuilder.nit:807 */
-    fra.me.REG[5] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
-    REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 807);
-    }
-    REGB0 = CALL_metamodel___genericity___MMTypeFormalParameter___position(fra.me.REG[5])(fra.me.REG[5]);
-    fra.me.REG[0] = CALL_metamodel___genericity___MMLocalClass___get_formal(fra.me.REG[0])(fra.me.REG[0], REGB0);
-    fra.me.REG[0] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
-    fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
-    fra.me.REG[5] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
-    /* syntax/mmbuilder.nit:808 */
-    fra.me.REG[0] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        REGB1 = TAG_Bool(0);
-        REGB0 = REGB1;
-      } else {
-        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
-        REGB0 = REGB1;
-      }
-    }
-    if (UNTAG_Bool(REGB0)) {
-      /* syntax/mmbuilder.nit:809 */
-      fra.me.REG[0] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
-      REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 809);
-      }
-      CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
-    } else {
-      /* syntax/mmbuilder.nit:811 */
-      fra.me.REG[0] = CALL_parser___parser_nodes___AFormaldef___n_type(fra.me.REG[2])(fra.me.REG[2]);
-      REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 811);
-      }
-      fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-      /* syntax/mmbuilder.nit:812 */
-      REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-      } else {
-        REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-        if (UNTAG_Bool(REGB1)) {
-          REGB1 = TAG_Bool(0);
-          REGB0 = REGB1;
-        } else {
-          REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
-          REGB0 = REGB1;
-        }
-      }
-      if (UNTAG_Bool(REGB0)) {
-        goto label1;
-      }
-      /* syntax/mmbuilder.nit:813 */
-      fra.me.REG[4] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
-      REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 813);
-      }
-      CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
-      /* syntax/mmbuilder.nit:814 */
-      fra.me.REG[0] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
-      REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 814);
-      }
-      fra.me.REG[0] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[0])(fra.me.REG[0]);
-      REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[5]));
-      if (UNTAG_Bool(REGB0)) {
-      } else {
-        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
-        REGB0 = REGB1;
-      }
-      REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-      if (UNTAG_Bool(REGB0)) {
-        /* syntax/mmbuilder.nit:815 */
-        REGB0 = TAG_Int(7);
-        fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-        if (!once_value_2) {
-          fra.me.REG[4] = BOX_NativeString("Redef error: Cannot change formal parameter type of class ");
-          REGB0 = TAG_Int(58);
-          fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-          once_value_2 = fra.me.REG[4];
-          register_static_object(&once_value_2);
-        } else fra.me.REG[4] = once_value_2;
-        fra.me.REG[4] = fra.me.REG[4];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-        fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-        if (!once_value_3) {
-          fra.me.REG[1] = BOX_NativeString("; got ");
-          REGB0 = TAG_Int(6);
-          fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0);
-          once_value_3 = fra.me.REG[1];
-          register_static_object(&once_value_3);
-        } else fra.me.REG[1] = once_value_3;
-        fra.me.REG[1] = fra.me.REG[1];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-        fra.me.REG[1] = ATTR_syntax___mmbuilder___AFormaldef____formal(fra.me.REG[2]);
-        REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-        if (UNTAG_Bool(REGB0)) {
-          nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 815);
-        }
-        fra.me.REG[1] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra.me.REG[1])(fra.me.REG[1]);
-        fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-        if (!once_value_4) {
-          fra.me.REG[1] = BOX_NativeString(", expected ");
-          REGB0 = TAG_Int(11);
-          fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0);
-          once_value_4 = fra.me.REG[1];
-          register_static_object(&once_value_4);
-        } else fra.me.REG[1] = once_value_4;
-        fra.me.REG[1] = fra.me.REG[1];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-        fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
-        if (!once_value_5) {
-          fra.me.REG[5] = BOX_NativeString(".");
-          REGB0 = TAG_Int(1);
-          fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-          once_value_5 = fra.me.REG[5];
-          register_static_object(&once_value_5);
-        } else fra.me.REG[5] = once_value_5;
-        fra.me.REG[5] = fra.me.REG[5];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
-        fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
-        CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[0]);
-      }
-    }
-  }
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ASuperclass___ancestor[] = "mmbuilder::ASuperclass::ancestor";
-val_t syntax___mmbuilder___ASuperclass___ancestor(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 823;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___ancestor;
-  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/mmbuilder.nit:823 */
-  fra.me.REG[0] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_syntax___mmbuilder___ASuperclass___accept_class_specialization_builder[] = "mmbuilder::ASuperclass::(mmbuilder::ANode::accept_class_specialization_builder)";
-void syntax___mmbuilder___ASuperclass___accept_class_specialization_builder(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_syntax___mmbuilder;
-  fra.me.line = 825;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___accept_class_specialization_builder;
-  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/mmbuilder.nit:825 */
-  fra.me.REG[2] = fra.me.REG[0];
-  fra.me.REG[3] = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:827 */
-  CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_specialization_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:828 */
-  fra.me.REG[1] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[1] = CALL_syntax___syntax_base___AType___get_local_class(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* syntax/mmbuilder.nit:829 */
-  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(0);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  if (UNTAG_Bool(REGB0)) {
-    goto label1;
-  }
-  /* syntax/mmbuilder.nit:830 */
-  fra.me.REG[1] = NEW_MMSrcAncestor_syntax___mmbuilder___MMSrcAncestor___init(fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:831 */
-  ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]) = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:832 */
-  fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
-  CALL_metamodel___inheritance___MMLocalClass___add_direct_parent(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder[] = "mmbuilder::ASuperclass::(mmbuilder::ANode::accept_class_ancestor_builder)";
-void syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder(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___mmbuilder;
-  fra.me.line = 835;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder;
-  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/mmbuilder.nit:835 */
-  fra.me.REG[2] = fra.me.REG[0];
-  fra.me.REG[3] = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:837 */
-  CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_ancestor_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:838 */
-  fra.me.REG[1] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]);
-  fra.me.REG[0] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_unchecked_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 838);
-  }
-  CALL_metamodel___static_type___MMAncestor___stype__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* syntax/mmbuilder.nit:839 */
-  fra.me.REG[2] = ATTR_syntax___mmbuilder___ASuperclass____ancestor(fra.me.REG[2]);
-  fra.me.REG[3] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
-  fra.me.REG[3] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[3])(fra.me.REG[3]);
-  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 839);
-  }
-  CALL_metamodel___static_type___MMAncestor___inheriter__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ASuperclass___accept_class_verifier[] = "mmbuilder::ASuperclass::(mmbuilder::ANode::accept_class_verifier)";
-void syntax___mmbuilder___ASuperclass___accept_class_verifier(val_t p0, val_t p1){
-  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___mmbuilder;
-  fra.me.line = 842;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ASuperclass___accept_class_verifier;
-  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/mmbuilder.nit:842 */
-  fra.me.REG[2] = fra.me.REG[0];
-  fra.me.REG[3] = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:844 */
-  CALL_SUPER_syntax___mmbuilder___ASuperclass___accept_class_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:845 */
-  fra.me.REG[2] = CALL_parser___parser_nodes___ASuperclass___n_type(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_syntax___syntax_base___AType___check_conform(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___APropdef___process_and_check[] = "mmbuilder::APropdef::process_and_check";
-void syntax___mmbuilder___APropdef___process_and_check(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
-  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 tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 850;
-  fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___process_and_check;
-  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;
-  REGB0 = p3;
-  REGB1 = p4;
-  /* syntax/mmbuilder.nit:858 */
-  fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra.me.REG[3])(fra.me.REG[3]);
-  REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[2]));
-  if (UNTAG_Bool(REGB2)) {
-  } else {
-    REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-    REGB2 = REGB3;
-  }
-  if (UNTAG_Bool(REGB2)) {
-    /* syntax/mmbuilder.nit:859 */
-    CALL_syntax___mmbuilder___APropdef___do_and_check_intro(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, REGB1);
-  } else {
-    /* syntax/mmbuilder.nit:861 */
-    CALL_syntax___mmbuilder___APropdef___do_and_check_redef(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], REGB0, REGB1);
-  }
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___APropdef___do_and_check_intro[] = "mmbuilder::APropdef::do_and_check_intro";
-void syntax___mmbuilder___APropdef___do_and_check_intro(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
-  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t REGB3;
-  val_t REGB4;
-  val_t tmp;
-    static val_t once_value_1; /* Once value */
-    static val_t once_value_2; /* Once value */
-    static val_t once_value_3; /* Once value */
-      static val_t once_value_4; /* Once value */
-      static val_t once_value_5; /* Once value */
-      static val_t once_value_6; /* Once value */
-        static val_t once_value_7; /* Once value */
-        static val_t once_value_8; /* Once value */
-        static val_t once_value_9; /* Once value */
-          static val_t once_value_10; /* Once value */
-          static val_t once_value_11; /* Once value */
-          static val_t once_value_12; /* Once value */
-        static val_t once_value_13; /* Once value */
-        static val_t once_value_14; /* Once value */
-        static val_t once_value_15; /* Once value */
-          static val_t once_value_16; /* Once value */
-          static val_t once_value_17; /* Once value */
-          static val_t once_value_18; /* Once value */
-        static val_t once_value_19; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 865;
-  fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___do_and_check_intro;
-  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;
-  REGB0 = p3;
-  REGB1 = p4;
-  /* syntax/mmbuilder.nit:868 */
-  fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
-  /* syntax/mmbuilder.nit:869 */
-  fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
-  /* syntax/mmbuilder.nit:870 */
-  fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
-  REGB2 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[5])(fra.me.REG[5]);
-  REGB3 = TAG_Int(3);
-  REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
-  if (UNTAG_Bool(REGB4)) {
-  } else {
-    nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-  }
-  /* ../lib/standard/kernel.nit:243 */
-  REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
-  /* syntax/mmbuilder.nit:870 */
-  if (UNTAG_Bool(REGB3)) {
-    /* syntax/mmbuilder.nit:872 */
-    REGB3 = TAG_Int(3);
-    REGB1 = REGB3;
-  }
-  /* syntax/mmbuilder.nit:874 */
-  CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[3])(fra.me.REG[3], REGB1);
-  /* syntax/mmbuilder.nit:875 */
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:876 */
-    REGB0 = TAG_Int(5);
-    fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_1) {
-      fra.me.REG[6] = BOX_NativeString("Error: No property ");
-      REGB0 = TAG_Int(19);
-      fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-      once_value_1 = fra.me.REG[6];
-      register_static_object(&once_value_1);
-    } else fra.me.REG[6] = once_value_1;
-    fra.me.REG[6] = fra.me.REG[6];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-    fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
-    fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-    if (!once_value_2) {
-      fra.me.REG[6] = BOX_NativeString("::");
-      REGB0 = TAG_Int(2);
-      fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-      once_value_2 = fra.me.REG[6];
-      register_static_object(&once_value_2);
-    } else fra.me.REG[6] = once_value_2;
-    fra.me.REG[6] = fra.me.REG[6];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-    fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-    if (!once_value_3) {
-      fra.me.REG[6] = BOX_NativeString(" is inherited. Remove the redef keyword to define a new property.");
-      REGB0 = TAG_Int(65);
-      fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-      once_value_3 = fra.me.REG[6];
-      register_static_object(&once_value_3);
-    } else fra.me.REG[6] = once_value_3;
-    fra.me.REG[6] = fra.me.REG[6];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-    fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-    CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
-  }
-  /* syntax/mmbuilder.nit:878 */
-  REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_attribute(fra.me.REG[3])(fra.me.REG[3]);
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:879 */
-    REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]);
-    if (UNTAG_Bool(REGB0)) {
-      /* syntax/mmbuilder.nit:880 */
-      REGB0 = TAG_Int(5);
-      fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-      if (!once_value_4) {
-        fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
-        REGB0 = TAG_Int(35);
-        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-        once_value_4 = fra.me.REG[6];
-        register_static_object(&once_value_4);
-      } else fra.me.REG[6] = once_value_4;
-      fra.me.REG[6] = fra.me.REG[6];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-      fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-      if (!once_value_5) {
-        fra.me.REG[6] = BOX_NativeString(" in the interface ");
-        REGB0 = TAG_Int(18);
-        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-        once_value_5 = fra.me.REG[6];
-        register_static_object(&once_value_5);
-      } else fra.me.REG[6] = once_value_5;
-      fra.me.REG[6] = fra.me.REG[6];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-      fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
-      fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-      if (!once_value_6) {
-        fra.me.REG[6] = BOX_NativeString(".");
-        REGB0 = TAG_Int(1);
-        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-        once_value_6 = fra.me.REG[6];
-        register_static_object(&once_value_6);
-      } else fra.me.REG[6] = once_value_6;
-      fra.me.REG[6] = fra.me.REG[6];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-      fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-      CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
-    } else {
-      /* syntax/mmbuilder.nit:881 */
-      REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[4])(fra.me.REG[4]);
-      if (UNTAG_Bool(REGB0)) {
-        /* syntax/mmbuilder.nit:882 */
-        REGB0 = TAG_Int(5);
-        fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-        if (!once_value_7) {
-          fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
-          REGB0 = TAG_Int(35);
-          fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-          once_value_7 = fra.me.REG[6];
-          register_static_object(&once_value_7);
-        } else fra.me.REG[6] = once_value_7;
-        fra.me.REG[6] = fra.me.REG[6];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-        fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-        if (!once_value_8) {
-          fra.me.REG[6] = BOX_NativeString(" in the enum class ");
-          REGB0 = TAG_Int(19);
-          fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-          once_value_8 = fra.me.REG[6];
-          register_static_object(&once_value_8);
-        } else fra.me.REG[6] = once_value_8;
-        fra.me.REG[6] = fra.me.REG[6];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-        fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
-        fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-        if (!once_value_9) {
-          fra.me.REG[6] = BOX_NativeString(".");
-          REGB0 = TAG_Int(1);
-          fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-          once_value_9 = fra.me.REG[6];
-          register_static_object(&once_value_9);
-        } else fra.me.REG[6] = once_value_9;
-        fra.me.REG[6] = fra.me.REG[6];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-        fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-        CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
-      } else {
-        /* syntax/mmbuilder.nit:883 */
-        REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[4])(fra.me.REG[4]);
-        if (UNTAG_Bool(REGB0)) {
-          /* syntax/mmbuilder.nit:884 */
-          REGB0 = TAG_Int(5);
-          fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-          if (!once_value_10) {
-            fra.me.REG[6] = BOX_NativeString("Error: Attempt to define attribute ");
-            REGB0 = TAG_Int(35);
-            fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-            once_value_10 = fra.me.REG[6];
-            register_static_object(&once_value_10);
-          } else fra.me.REG[6] = once_value_10;
-          fra.me.REG[6] = fra.me.REG[6];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-          fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-          if (!once_value_11) {
-            fra.me.REG[6] = BOX_NativeString(" in the extern class ");
-            REGB0 = TAG_Int(21);
-            fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-            once_value_11 = fra.me.REG[6];
-            register_static_object(&once_value_11);
-          } else fra.me.REG[6] = once_value_11;
-          fra.me.REG[6] = fra.me.REG[6];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-          fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
-          fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-          if (!once_value_12) {
-            fra.me.REG[6] = BOX_NativeString(".");
-            REGB0 = TAG_Int(1);
-            fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-            once_value_12 = fra.me.REG[6];
-            register_static_object(&once_value_12);
-          } else fra.me.REG[6] = once_value_12;
-          fra.me.REG[6] = fra.me.REG[6];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-          fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-          CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
-        }
-      }
-    }
-  } else {
-    /* syntax/mmbuilder.nit:886 */
-    REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
-    if (UNTAG_Bool(REGB0)) {
-      /* syntax/mmbuilder.nit:887 */
-      REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[4])(fra.me.REG[4]);
-      if (UNTAG_Bool(REGB0)) {
-        /* syntax/mmbuilder.nit:888 */
-        REGB0 = TAG_Int(5);
-        fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-        if (!once_value_13) {
-          fra.me.REG[6] = BOX_NativeString("Error: Attempt to define a constructor ");
-          REGB0 = TAG_Int(39);
-          fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-          once_value_13 = fra.me.REG[6];
-          register_static_object(&once_value_13);
-        } else fra.me.REG[6] = once_value_13;
-        fra.me.REG[6] = fra.me.REG[6];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-        fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-        if (!once_value_14) {
-          fra.me.REG[6] = BOX_NativeString(" in the class ");
-          REGB0 = TAG_Int(14);
-          fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-          once_value_14 = fra.me.REG[6];
-          register_static_object(&once_value_14);
-        } else fra.me.REG[6] = once_value_14;
-        fra.me.REG[6] = fra.me.REG[6];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-        fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
-        fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-        if (!once_value_15) {
-          fra.me.REG[6] = BOX_NativeString(".");
-          REGB0 = TAG_Int(1);
-          fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
-          once_value_15 = fra.me.REG[6];
-          register_static_object(&once_value_15);
-        } else fra.me.REG[6] = once_value_15;
-        fra.me.REG[6] = fra.me.REG[6];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-        fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-        CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
-      } else {
-        /* syntax/mmbuilder.nit:889 */
-        REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_enum(fra.me.REG[4])(fra.me.REG[4]);
-        if (UNTAG_Bool(REGB0)) {
-          /* syntax/mmbuilder.nit:890 */
-          REGB0 = TAG_Int(5);
-          fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-          if (!once_value_16) {
-            fra.me.REG[5] = BOX_NativeString("Error: Attempt to define a constructor ");
-            REGB0 = TAG_Int(39);
-            fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-            once_value_16 = fra.me.REG[5];
-            register_static_object(&once_value_16);
-          } else fra.me.REG[5] = once_value_16;
-          fra.me.REG[5] = fra.me.REG[5];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-          fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-          if (!once_value_17) {
-            fra.me.REG[5] = BOX_NativeString(" in the enum ");
-            REGB0 = TAG_Int(13);
-            fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-            once_value_17 = fra.me.REG[5];
-            register_static_object(&once_value_17);
-          } else fra.me.REG[5] = once_value_17;
-          fra.me.REG[5] = fra.me.REG[5];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-          fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
-          fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-          if (!once_value_18) {
-            fra.me.REG[5] = BOX_NativeString(".");
-            REGB0 = TAG_Int(1);
-            fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-            once_value_18 = fra.me.REG[5];
-            register_static_object(&once_value_18);
-          } else fra.me.REG[5] = once_value_18;
-          fra.me.REG[5] = fra.me.REG[5];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-          fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-          CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
-        }
-      }
-    }
-  }
-  /* syntax/mmbuilder.nit:895 */
-  fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
-  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;
-    }
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:896 */
-    REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
-    if (UNTAG_Bool(REGB0)) {
-      /* syntax/mmbuilder.nit:897 */
-      fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
-      fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[2])(fra.me.REG[2]);
-      fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___super_methods_named(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-      /* syntax/mmbuilder.nit:898 */
-      CALL_syntax___mmbuilder___APropdef___inherit_signature(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], fra.me.REG[4]);
-    }
-    /* syntax/mmbuilder.nit:900 */
-    fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
-    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)) {
-      REGB0 = TAG_Bool(1);
-    } else {
-      fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
-      REGB1 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[4])(fra.me.REG[4]);
-      REGB0 = REGB1;
-    }
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      /* syntax/mmbuilder.nit:902 */
-      fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
-      fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
-      REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[4])(fra.me.REG[4]);
-      REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-      if (UNTAG_Bool(REGB0)) {
-        /* syntax/mmbuilder.nit:903 */
-        fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
-        fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
-        fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
-        if (!once_value_19) {
-          fra.me.REG[0] = BOX_NativeString("Error: Untyped parameter.");
-          REGB0 = TAG_Int(25);
-          fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-          once_value_19 = fra.me.REG[0];
-          register_static_object(&once_value_19);
-        } else fra.me.REG[0] = once_value_19;
-        fra.me.REG[0] = fra.me.REG[0];
-        CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4], fra.me.REG[0]);
-      } else {
-        /* syntax/mmbuilder.nit:905 */
-        fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
-        fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
-        fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
-        fra.me.REG[4] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[4]);
-        CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-        /* syntax/mmbuilder.nit:906 */
-        fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
-        fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[1])(fra.me.REG[1]);
-        /* ../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[1])!=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[1]);
-        /* ../lib/standard/collection/array.nit:272 */
-        fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
-        /* ../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[1])!=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[1]);
-          REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
-          if (UNTAG_Bool(REGB3)) {
-          } 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[0] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
-            /* syntax/mmbuilder.nit:907 */
-            fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
-            REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-            if (UNTAG_Bool(REGB1)) {
-              nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 907);
-            }
-            fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[3])(fra.me.REG[3]);
-            fra.me.REG[0] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[0])(fra.me.REG[0]);
-            fra.me.REG[0] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[0])(fra.me.REG[0]);
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-            /* ../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 label20;
-          }
-        }
-        label20: while(0);
-      }
-    }
-  }
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___APropdef___inherit_signature[] = "mmbuilder::APropdef::inherit_signature";
-void syntax___mmbuilder___APropdef___inherit_signature(val_t p0, val_t p1, val_t p2, val_t p3){
-  struct {struct stack_frame_t me; val_t MORE_REG[10];} 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_syntax___mmbuilder;
-  fra.me.line = 913;
-  fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___inherit_signature;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 11;
-  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[9] = NIT_NULL;
-  fra.me.REG[10] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  fra.me.REG[3] = p3;
-  /* syntax/mmbuilder.nit:915 */
-  fra.me.REG[0] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(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/mmbuilder.nit:917 */
-      fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[5])(fra.me.REG[5]);
-      fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
-      fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
-      REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 917);
-      }
-      fra.me.REG[6] = CALL_metamodel___static_type___MMSignature___adaptation_to(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
-      /* syntax/mmbuilder.nit:919 */
-      REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-      } else {
-        REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-        if (UNTAG_Bool(REGB2)) {
-          REGB2 = TAG_Bool(0);
-          REGB1 = REGB2;
-        } else {
-          REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
-          REGB1 = REGB2;
-        }
-      }
-      if (UNTAG_Bool(REGB1)) {
-        /* syntax/mmbuilder.nit:920 */
-        fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
-        fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[5])(fra.me.REG[5]);
-        /* ../lib/standard/collection/array.nit:24 */
-        REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=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[5]);
-        /* syntax/mmbuilder.nit:920 */
-        REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[6])(fra.me.REG[6]);
-        REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
-        if (UNTAG_Bool(REGB3)) {
-        } else {
-          /* ../lib/standard/kernel.nit:237 */
-          REGB2 = TAG_Bool((REGB1)==(REGB2));
-          /* syntax/mmbuilder.nit:920 */
-          REGB3 = REGB2;
-        }
-        REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
-        if (UNTAG_Bool(REGB3)) {
-          /* syntax/mmbuilder.nit:921 */
-          goto label1;
-        }
-        /* syntax/mmbuilder.nit:923 */
-        fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
-        fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[5])(fra.me.REG[5]);
-        /* ../lib/standard/collection/array.nit:270 */
-        REGB3 = TAG_Int(0);
-        /* ../lib/standard/collection/array.nit:271 */
-        REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=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[5]);
-        /* ../lib/standard/collection/array.nit:272 */
-        fra.me.REG[7] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-        /* ../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[5])!=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[5]);
-          REGB1 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
-          if (UNTAG_Bool(REGB1)) {
-          } else {
-            nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-          }
-          /* ../lib/standard/kernel.nit:242 */
-          REGB2 = TAG_Bool(UNTAG_Int(REGB3)<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[7]==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[8] = ((Nit_NativeArray)fra.me.REG[7])->val[UNTAG_Int(REGB3)];
-            /* syntax/mmbuilder.nit:924 */
-            REGB2 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[8])(fra.me.REG[8]);
-            fra.me.REG[9] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[6])(fra.me.REG[6], REGB2);
-            /* syntax/mmbuilder.nit:925 */
-            CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
-            /* syntax/mmbuilder.nit:926 */
-            REGB2 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[8])(fra.me.REG[8]);
-            REGB1 = CALL_metamodel___vararg___MMSignature___vararg_rank(fra.me.REG[6])(fra.me.REG[6]);
-            REGB4 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
-            if (UNTAG_Bool(REGB4)) {
-            } else {
-              /* ../lib/standard/kernel.nit:237 */
-              REGB1 = TAG_Bool((REGB2)==(REGB1));
-              /* syntax/mmbuilder.nit:926 */
-              REGB4 = REGB1;
-            }
-            if (UNTAG_Bool(REGB4)) {
-              /* syntax/mmbuilder.nit:927 */
-              fra.me.REG[10] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[9]);
-              fra.me.REG[9] = fra.me.REG[10];
-            }
-            /* syntax/mmbuilder.nit:929 */
-            fra.me.REG[8] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[8])(fra.me.REG[8]);
-            CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
-            /* ../lib/standard/collection/array.nit:275 */
-            REGB4 = TAG_Int(1);
-            /* ../lib/standard/kernel.nit:245 */
-            REGB4 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB4));
-            /* ../lib/standard/collection/array.nit:275 */
-            REGB3 = REGB4;
-          } else {
-            /* ../lib/standard/collection/array.nit:273 */
-            goto label2;
-          }
-        }
-        label2: while(0);
-        /* syntax/mmbuilder.nit:932 */
-        fra.me.REG[0] = fra.me.REG[6];
-        /* syntax/mmbuilder.nit:933 */
-        CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-      }
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB3 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:245 */
-      REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB0 = REGB3;
-    } else {
-      /* ../lib/standard/collection/array.nit:273 */
-      goto label3;
-    }
-  }
-  label3: while(0);
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___APropdef___do_and_check_redef[] = "mmbuilder::APropdef::do_and_check_redef";
-void syntax___mmbuilder___APropdef___do_and_check_redef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
-  struct {struct stack_frame_t me; val_t MORE_REG[13];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t REGB3;
-  val_t REGB4;
-  val_t REGB5;
-  val_t REGB6;
-  val_t REGB7;
-  val_t tmp;
-    static val_t once_value_1; /* Once value */
-    static val_t once_value_2; /* Once value */
-    static val_t once_value_3; /* Once value */
-    static val_t once_value_5; /* Once value */
-    static val_t once_value_6; /* Once value */
-    static val_t once_value_7; /* Once value */
-      static val_t once_value_8; /* Once value */
-      static val_t once_value_9; /* Once value */
-      static val_t once_value_10; /* Once value */
-          static val_t once_value_12; /* Once value */
-          static val_t once_value_13; /* Once value */
-          static val_t once_value_14; /* Once value */
-          static val_t once_value_15; /* Once value */
-          static val_t once_value_16; /* Once value */
-          static val_t once_value_17; /* Once value */
-          static val_t once_value_18; /* Once value */
-          static val_t once_value_19; /* Once value */
-          static val_t once_value_20; /* Once value */
-          static val_t once_value_21; /* Once value */
-          static val_t once_value_22; /* Once value */
-          static val_t once_value_23; /* Once value */
-        static val_t once_value_26; /* Once value */
-        static val_t once_value_27; /* Once value */
-        static val_t once_value_28; /* Once value */
-        static val_t once_value_29; /* Once value */
-        static val_t once_value_30; /* Once value */
-        static val_t once_value_31; /* Once value */
-               static val_t once_value_32; /* Once value */
-               static val_t once_value_33; /* Once value */
-               static val_t once_value_34; /* Once value */
-               static val_t once_value_35; /* Once value */
-               static val_t once_value_37; /* Once value */
-               static val_t once_value_38; /* Once value */
-               static val_t once_value_39; /* Once value */
-               static val_t once_value_40; /* Once value */
-        static val_t once_value_41; /* Once value */
-        static val_t once_value_42; /* Once value */
-        static val_t once_value_43; /* Once value */
-        static val_t once_value_44; /* Once value */
-        static val_t once_value_45; /* Once value */
-          static val_t once_value_46; /* Once value */
-          static val_t once_value_47; /* Once value */
-          static val_t once_value_48; /* Once value */
-          static val_t once_value_49; /* Once value */
-          static val_t once_value_50; /* Once value */
-            static val_t once_value_51; /* Once value */
-            static val_t once_value_52; /* Once value */
-            static val_t once_value_53; /* Once value */
-            static val_t once_value_54; /* Once value */
-              static val_t once_value_55; /* Once value */
-              static val_t once_value_56; /* Once value */
-              static val_t once_value_57; /* Once value */
-              static val_t once_value_58; /* Once value */
-              static val_t once_value_59; /* Once value */
-               static val_t once_value_60; /* Once value */
-               static val_t once_value_61; /* Once value */
-               static val_t once_value_62; /* Once value */
-               static val_t once_value_63; /* Once value */
-    static val_t once_value_65; /* Once value */
-    static val_t once_value_66; /* Once value */
-    static val_t once_value_67; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 938;
-  fra.me.meth = LOCATE_syntax___mmbuilder___APropdef___do_and_check_redef;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 14;
-  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[9] = NIT_NULL;
-  fra.me.REG[10] = NIT_NULL;
-  fra.me.REG[11] = NIT_NULL;
-  fra.me.REG[12] = NIT_NULL;
-  fra.me.REG[13] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  REGB0 = p3;
-  REGB1 = p4;
-  /* syntax/mmbuilder.nit:941 */
-  REGB2 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AInitPropdef, ID_parser___parser_nodes___AInitPropdef)) /*cast AInitPropdef*/;
-  /* syntax/mmbuilder.nit:942 */
-  fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
-  /* syntax/mmbuilder.nit:944 */
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:945 */
-    REGB0 = TAG_Int(5);
-    fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_1) {
-      fra.me.REG[5] = BOX_NativeString("Redef error: ");
-      REGB0 = TAG_Int(13);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-      once_value_1 = fra.me.REG[5];
-      register_static_object(&once_value_1);
-    } else fra.me.REG[5] = once_value_1;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
-    fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    if (!once_value_2) {
-      fra.me.REG[5] = BOX_NativeString("::");
-      REGB0 = TAG_Int(2);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-      once_value_2 = fra.me.REG[5];
-      register_static_object(&once_value_2);
-    } else fra.me.REG[5] = once_value_2;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    if (!once_value_3) {
-      fra.me.REG[5] = BOX_NativeString(" is an inherited property. To redefine it, add the redef keyword.");
-      REGB0 = TAG_Int(65);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-      once_value_3 = fra.me.REG[5];
-      register_static_object(&once_value_3);
-    } else fra.me.REG[5] = once_value_3;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-    CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
-    /* syntax/mmbuilder.nit:946 */
-    goto label4;
-  }
-  /* syntax/mmbuilder.nit:948 */
-  REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
-  if (UNTAG_Bool(REGB0)) {
-    REGB0 = TAG_Bool(!UNTAG_Bool(REGB2));
-  } else {
-    REGB3 = TAG_Bool(0);
-    REGB0 = REGB3;
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:949 */
-    REGB0 = TAG_Int(5);
-    fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_5) {
-      fra.me.REG[5] = BOX_NativeString("Redef error: A method ");
-      REGB0 = TAG_Int(22);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-      once_value_5 = fra.me.REG[5];
-      register_static_object(&once_value_5);
-    } else fra.me.REG[5] = once_value_5;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
-    fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    if (!once_value_6) {
-      fra.me.REG[5] = BOX_NativeString("::");
-      REGB0 = TAG_Int(2);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-      once_value_6 = fra.me.REG[5];
-      register_static_object(&once_value_6);
-    } else fra.me.REG[5] = once_value_6;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    if (!once_value_7) {
-      fra.me.REG[5] = BOX_NativeString(" cannot redefine a constructor.");
-      REGB0 = TAG_Int(31);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-      once_value_7 = fra.me.REG[5];
-      register_static_object(&once_value_7);
-    } else fra.me.REG[5] = once_value_7;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-    CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
-  } else {
-    /* syntax/mmbuilder.nit:950 */
-    REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[3])(fra.me.REG[3]);
-    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      REGB0 = TAG_Bool(0);
-      REGB2 = REGB0;
-    }
-    if (UNTAG_Bool(REGB2)) {
-      /* syntax/mmbuilder.nit:951 */
-      REGB2 = TAG_Int(5);
-      fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-      if (!once_value_8) {
-        fra.me.REG[5] = BOX_NativeString("Redef error: A constructor ");
-        REGB2 = TAG_Int(27);
-        fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
-        once_value_8 = fra.me.REG[5];
-        register_static_object(&once_value_8);
-      } else fra.me.REG[5] = once_value_8;
-      fra.me.REG[5] = fra.me.REG[5];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-      fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
-      fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-      if (!once_value_9) {
-        fra.me.REG[5] = BOX_NativeString("::");
-        REGB2 = TAG_Int(2);
-        fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
-        once_value_9 = fra.me.REG[5];
-        register_static_object(&once_value_9);
-      } else fra.me.REG[5] = once_value_9;
-      fra.me.REG[5] = fra.me.REG[5];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-      fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-      if (!once_value_10) {
-        fra.me.REG[5] = BOX_NativeString(" cannot redefine a method.");
-        REGB2 = TAG_Int(26);
-        fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
-        once_value_10 = fra.me.REG[5];
-        register_static_object(&once_value_10);
-      } else fra.me.REG[5] = once_value_10;
-      fra.me.REG[5] = fra.me.REG[5];
-      CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-      fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-      CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
-    }
-  }
-  /* syntax/mmbuilder.nit:954 */
-  fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[2])(fra.me.REG[2]);
-  /* syntax/mmbuilder.nit:956 */
-  fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[5])(fra.me.REG[5]);
-  /* ../lib/standard/collection/array.nit:270 */
-  REGB2 = TAG_Int(0);
-  /* ../lib/standard/collection/array.nit:271 */
-  REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
-  }
-  REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-  /* ../lib/standard/collection/array.nit:272 */
-  fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-  /* ../lib/standard/collection/array.nit:273 */
-  while(1) {
-    /* ../lib/standard/collection/array.nit:24 */
-    REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=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[5]);
-    REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
-    if (UNTAG_Bool(REGB3)) {
-    } else {
-      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-    }
-    /* ../lib/standard/kernel.nit:242 */
-    REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
-    /* ../lib/standard/collection/array.nit:273 */
-    if (UNTAG_Bool(REGB0)) {
-      /* ../lib/standard/collection/array.nit:274 */
-      REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
-      }
-      /* ../lib/standard/collection/array.nit:725 */
-      fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB2)];
-      /* syntax/mmbuilder.nit:957 */
-      fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[7])(fra.me.REG[7]);
-      fra.me.REG[9] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
-      fra.me.REG[9] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
-      /* syntax/mmbuilder.nit:958 */
-      fra.me.REG[7] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[7])(fra.me.REG[7]);
-      /* syntax/mmbuilder.nit:959 */
-      REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-      } else {
-        REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-          REGB3 = TAG_Bool(0);
-          REGB0 = REGB3;
-        } else {
-          REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
-          REGB0 = REGB3;
-        }
-      }
-      if (UNTAG_Bool(REGB0)) {
-        goto label11;
-      }
-      /* syntax/mmbuilder.nit:960 */
-      fra.me.REG[8] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
-      fra.me.REG[8] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[8])(fra.me.REG[8]);
-      REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 960);
-      }
-      fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___adaptation_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
-      fra.me.REG[7] = fra.me.REG[8];
-      /* syntax/mmbuilder.nit:962 */
-      REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-      } else {
-        REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-          REGB3 = TAG_Bool(0);
-          REGB0 = REGB3;
-        } else {
-          REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
-          REGB0 = REGB3;
-        }
-      }
-      if (UNTAG_Bool(REGB0)) {
-        /* syntax/mmbuilder.nit:964 */
-        fra.me.REG[8] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
-        fra.me.REG[8] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[8])(fra.me.REG[8]);
-        /* ../lib/standard/collection/array.nit:24 */
-        REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=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[8]);
-        /* syntax/mmbuilder.nit:964 */
-        REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-          nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 964);
-        }
-        REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
-        REGB4 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB3));
-        if (UNTAG_Bool(REGB4)) {
-        } else {
-          /* ../lib/standard/kernel.nit:237 */
-          REGB3 = TAG_Bool((REGB0)==(REGB3));
-          /* syntax/mmbuilder.nit:964 */
-          REGB4 = REGB3;
-        }
-        REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
-        if (UNTAG_Bool(REGB4)) {
-          /* syntax/mmbuilder.nit:965 */
-          REGB4 = TAG_Int(11);
-          fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
-          if (!once_value_12) {
-            fra.me.REG[10] = BOX_NativeString("Redef error: ");
-            REGB4 = TAG_Int(13);
-            fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB4);
-            once_value_12 = fra.me.REG[10];
-            register_static_object(&once_value_12);
-          } else fra.me.REG[10] = once_value_12;
-          fra.me.REG[10] = fra.me.REG[10];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-          fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
-          fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-          if (!once_value_13) {
-            fra.me.REG[10] = BOX_NativeString("::");
-            REGB4 = TAG_Int(2);
-            fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB4);
-            once_value_13 = fra.me.REG[10];
-            register_static_object(&once_value_13);
-          } else fra.me.REG[10] = once_value_13;
-          fra.me.REG[10] = fra.me.REG[10];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-          fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-          if (!once_value_14) {
-            fra.me.REG[10] = BOX_NativeString(" redefines ");
-            REGB4 = TAG_Int(11);
-            fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB4);
-            once_value_14 = fra.me.REG[10];
-            register_static_object(&once_value_14);
-          } else fra.me.REG[10] = once_value_14;
-          fra.me.REG[10] = fra.me.REG[10];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-          fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
-          fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-          if (!once_value_15) {
-            fra.me.REG[10] = BOX_NativeString("::");
-            REGB4 = TAG_Int(2);
-            fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB4);
-            once_value_15 = fra.me.REG[10];
-            register_static_object(&once_value_15);
-          } else fra.me.REG[10] = once_value_15;
-          fra.me.REG[10] = fra.me.REG[10];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-          fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-          if (!once_value_16) {
-            fra.me.REG[10] = BOX_NativeString(" with ");
-            REGB4 = TAG_Int(6);
-            fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB4);
-            once_value_16 = fra.me.REG[10];
-            register_static_object(&once_value_16);
-          } else fra.me.REG[10] = once_value_16;
-          fra.me.REG[10] = fra.me.REG[10];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-          REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-          if (UNTAG_Bool(REGB4)) {
-            nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 965);
-          }
-          REGB4 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
-          fra.me.REG[10] = CALL_standard___string___Object___to_s(REGB4)(REGB4);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-          if (!once_value_17) {
-            fra.me.REG[10] = BOX_NativeString(" parameter(s).");
-            REGB4 = TAG_Int(14);
-            fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB4);
-            once_value_17 = fra.me.REG[10];
-            register_static_object(&once_value_17);
-          } else fra.me.REG[10] = once_value_17;
-          fra.me.REG[10] = fra.me.REG[10];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-          fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-          CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
-          /* syntax/mmbuilder.nit:966 */
-          goto label4;
-        }
-        /* syntax/mmbuilder.nit:968 */
-        fra.me.REG[8] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
-        fra.me.REG[8] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[8])(fra.me.REG[8]);
-        /* ../lib/standard/collection/array.nit:24 */
-        REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
-        if (UNTAG_Bool(REGB4)) {
-        } else {
-          nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-        }
-        REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
-        /* syntax/mmbuilder.nit:968 */
-        REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-          nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 968);
-        }
-        fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[7])(fra.me.REG[7]);
-        /* ../lib/standard/collection/array.nit:24 */
-        REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-        } else {
-          nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-        }
-        REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
-        /* syntax/mmbuilder.nit:968 */
-        REGB0 = TAG_Bool(IS_EQUAL_OO(REGB4,REGB3));
-        if (UNTAG_Bool(REGB0)) {
-        } else {
-          /* ../lib/standard/kernel.nit:237 */
-          REGB3 = TAG_Bool((REGB4)==(REGB3));
-          /* syntax/mmbuilder.nit:968 */
-          REGB0 = REGB3;
-        }
-        REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-        if (UNTAG_Bool(REGB0)) {
-          /* syntax/mmbuilder.nit:969 */
-          REGB0 = TAG_Int(11);
-          fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-          if (!once_value_18) {
-            fra.me.REG[10] = BOX_NativeString("Redef error: ");
-            REGB0 = TAG_Int(13);
-            fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB0);
-            once_value_18 = fra.me.REG[10];
-            register_static_object(&once_value_18);
-          } else fra.me.REG[10] = once_value_18;
-          fra.me.REG[10] = fra.me.REG[10];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-          fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
-          fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-          if (!once_value_19) {
-            fra.me.REG[10] = BOX_NativeString("::");
-            REGB0 = TAG_Int(2);
-            fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB0);
-            once_value_19 = fra.me.REG[10];
-            register_static_object(&once_value_19);
-          } else fra.me.REG[10] = once_value_19;
-          fra.me.REG[10] = fra.me.REG[10];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-          fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-          if (!once_value_20) {
-            fra.me.REG[10] = BOX_NativeString(" redefines ");
-            REGB0 = TAG_Int(11);
-            fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB0);
-            once_value_20 = fra.me.REG[10];
-            register_static_object(&once_value_20);
-          } else fra.me.REG[10] = once_value_20;
-          fra.me.REG[10] = fra.me.REG[10];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-          fra.me.REG[10] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
-          fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-          if (!once_value_21) {
-            fra.me.REG[10] = BOX_NativeString("::");
-            REGB0 = TAG_Int(2);
-            fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB0);
-            once_value_21 = fra.me.REG[10];
-            register_static_object(&once_value_21);
-          } else fra.me.REG[10] = once_value_21;
-          fra.me.REG[10] = fra.me.REG[10];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-          fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-          if (!once_value_22) {
-            fra.me.REG[10] = BOX_NativeString(" with ");
-            REGB0 = TAG_Int(6);
-            fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB0);
-            once_value_22 = fra.me.REG[10];
-            register_static_object(&once_value_22);
-          } else fra.me.REG[10] = once_value_22;
-          fra.me.REG[10] = fra.me.REG[10];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-          REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-          if (UNTAG_Bool(REGB0)) {
-            nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 969);
-          }
-          REGB0 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
-          fra.me.REG[10] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-          if (!once_value_23) {
-            fra.me.REG[10] = BOX_NativeString(" closure(s).");
-            REGB0 = TAG_Int(12);
-            fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB0);
-            once_value_23 = fra.me.REG[10];
-            register_static_object(&once_value_23);
-          } else fra.me.REG[10] = once_value_23;
-          fra.me.REG[10] = fra.me.REG[10];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[10]);
-          fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-          CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[8]);
-          /* syntax/mmbuilder.nit:970 */
-          goto label4;
-        }
-        /* syntax/mmbuilder.nit:972 */
-        fra.me.REG[8] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[1])(fra.me.REG[1]);
-        fra.me.REG[8] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[8])(fra.me.REG[8]);
-        /* ../lib/standard/collection/array.nit:270 */
-        REGB0 = TAG_Int(0);
-        /* ../lib/standard/collection/array.nit:271 */
-        REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-        } else {
-          nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
-        }
-        REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
-        /* ../lib/standard/collection/array.nit:272 */
-        fra.me.REG[10] = ATTR_standard___collection___array___Array____items(fra.me.REG[8]);
-        /* ../lib/standard/collection/array.nit:273 */
-        while(1) {
-          /* ../lib/standard/collection/array.nit:24 */
-          REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8])!=NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
-          }
-          REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[8]);
-          REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
-          if (UNTAG_Bool(REGB4)) {
-          } else {
-            nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-          }
-          /* ../lib/standard/kernel.nit:242 */
-          REGB3 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB3));
-          /* ../lib/standard/collection/array.nit:273 */
-          if (UNTAG_Bool(REGB3)) {
-            /* ../lib/standard/collection/array.nit:274 */
-            REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
-            if (UNTAG_Bool(REGB3)) {
-              nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
-            }
-            /* ../lib/standard/collection/array.nit:725 */
-            fra.me.REG[11] = ((Nit_NativeArray)fra.me.REG[10])->val[UNTAG_Int(REGB0)];
-            /* syntax/mmbuilder.nit:973 */
-            REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
-            REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-            if (UNTAG_Bool(REGB4)) {
-              nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 973);
-            }
-            fra.me.REG[12] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB3);
-            /* syntax/mmbuilder.nit:974 */
-            CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
-            /* syntax/mmbuilder.nit:975 */
-            REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
-            REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-            if (UNTAG_Bool(REGB4)) {
-              nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 975);
-            }
-            REGB4 = CALL_metamodel___vararg___MMSignature___vararg_rank(fra.me.REG[7])(fra.me.REG[7]);
-            REGB5 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB4));
-            if (UNTAG_Bool(REGB5)) {
-            } else {
-              /* ../lib/standard/kernel.nit:237 */
-              REGB4 = TAG_Bool((REGB3)==(REGB4));
-              /* syntax/mmbuilder.nit:975 */
-              REGB5 = REGB4;
-            }
-            if (UNTAG_Bool(REGB5)) {
-              /* syntax/mmbuilder.nit:976 */
-              fra.me.REG[13] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[12]);
-              fra.me.REG[12] = fra.me.REG[13];
-            }
-            /* syntax/mmbuilder.nit:978 */
-            fra.me.REG[13] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[11])(fra.me.REG[11]);
-            CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[13])(fra.me.REG[13], fra.me.REG[12]);
-            /* syntax/mmbuilder.nit:980 */
-            REGB5 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-            if (UNTAG_Bool(REGB5)) {
-              nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 980);
-            }
-            fra.me.REG[12] = CALL_metamodel___static_type___MMSignature___params(fra.me.REG[7])(fra.me.REG[7]);
-            REGB5 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[11])(fra.me.REG[11]);
-            /* ../lib/standard/collection/array.nit:281 */
-            REGB4 = TAG_Int(0);
-            REGB3 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
-            if (UNTAG_Bool(REGB3)) {
-            } else {
-              nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-            }
-            /* ../lib/standard/kernel.nit:243 */
-            REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
-            /* ../lib/standard/collection/array.nit:281 */
-            if (UNTAG_Bool(REGB4)) {
-              REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[12])!=NIT_NULL);
-              if (UNTAG_Bool(REGB4)) {
-              } else {
-               nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
-              }
-              REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[12]);
-              REGB3 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
-              if (UNTAG_Bool(REGB3)) {
-              } else {
-               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-              }
-              /* ../lib/standard/kernel.nit:242 */
-              REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
-            } else {
-              /* ../lib/standard/collection/array.nit:281 */
-              REGB3 = TAG_Bool(0);
-              REGB4 = REGB3;
-            }
-            if (UNTAG_Bool(REGB4)) {
-            } else {
-              nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
-            }
-            /* ../lib/standard/collection/array.nit:282 */
-            fra.me.REG[12] = ATTR_standard___collection___array___Array____items(fra.me.REG[12]);
-            REGB4 = TAG_Bool(fra.me.REG[12]==NIT_NULL);
-            if (UNTAG_Bool(REGB4)) {
-              nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
-            }
-            /* ../lib/standard/collection/array.nit:725 */
-            fra.me.REG[12] = ((Nit_NativeArray)fra.me.REG[12])->val[UNTAG_Int(REGB5)];
-            /* ../lib/standard/collection/array.nit:282 */
-            goto label24;
-            label24: while(0);
-            /* syntax/mmbuilder.nit:980 */
-            fra.me.REG[11] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[11])(fra.me.REG[11]);
-            fra.me.REG[11] = CALL_syntax___syntax_base___Variable___name(fra.me.REG[11])(fra.me.REG[11]);
-            REGB5 = TAG_Bool(fra.me.REG[12]==NIT_NULL);
-            if (UNTAG_Bool(REGB5)) {
-              nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 980);
-            }
-            CALL_metamodel___static_type___MMParam___name__eq(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[11]);
-            /* ../lib/standard/collection/array.nit:275 */
-            REGB5 = TAG_Int(1);
-            /* ../lib/standard/kernel.nit:245 */
-            REGB5 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB5));
-            /* ../lib/standard/collection/array.nit:275 */
-            REGB0 = REGB5;
-          } else {
-            /* ../lib/standard/collection/array.nit:273 */
-            goto label25;
-          }
-        }
-        label25: while(0);
-        /* syntax/mmbuilder.nit:982 */
-        fra.me.REG[4] = fra.me.REG[7];
-        /* syntax/mmbuilder.nit:983 */
-        CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-      }
-      /* syntax/mmbuilder.nit:987 */
-      fra.me.REG[10] = CALL_syntax___syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
-      REGB0 = CALL_toolcontext___ToolContext___error_count(fra.me.REG[10])(fra.me.REG[10]);
-      /* syntax/mmbuilder.nit:995 */
-      REGB5 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-      if (UNTAG_Bool(REGB5)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 995);
-      }
-      REGB5 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
-      REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-      if (UNTAG_Bool(REGB4)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 995);
-      }
-      REGB4 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
-      REGB3 = TAG_Bool(IS_EQUAL_OO(REGB5,REGB4));
-      if (UNTAG_Bool(REGB3)) {
-      } else {
-        /* ../lib/standard/kernel.nit:237 */
-        REGB4 = TAG_Bool((REGB5)==(REGB4));
-        /* syntax/mmbuilder.nit:995 */
-        REGB3 = REGB4;
-      }
-      REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
-      if (UNTAG_Bool(REGB3)) {
-        /* syntax/mmbuilder.nit:996 */
-        REGB3 = TAG_Int(11);
-        fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
-        if (!once_value_26) {
-          fra.me.REG[8] = BOX_NativeString("Redef error: ");
-          REGB3 = TAG_Int(13);
-          fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB3);
-          once_value_26 = fra.me.REG[8];
-          register_static_object(&once_value_26);
-        } else fra.me.REG[8] = once_value_26;
-        fra.me.REG[8] = fra.me.REG[8];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
-        fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
-        fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
-        if (!once_value_27) {
-          fra.me.REG[8] = BOX_NativeString("::");
-          REGB3 = TAG_Int(2);
-          fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB3);
-          once_value_27 = fra.me.REG[8];
-          register_static_object(&once_value_27);
-        } else fra.me.REG[8] = once_value_27;
-        fra.me.REG[8] = fra.me.REG[8];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
-        fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
-        if (!once_value_28) {
-          fra.me.REG[8] = BOX_NativeString(" redefines ");
-          REGB3 = TAG_Int(11);
-          fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB3);
-          once_value_28 = fra.me.REG[8];
-          register_static_object(&once_value_28);
-        } else fra.me.REG[8] = once_value_28;
-        fra.me.REG[8] = fra.me.REG[8];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
-        fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
-        fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
-        if (!once_value_29) {
-          fra.me.REG[8] = BOX_NativeString("::");
-          REGB3 = TAG_Int(2);
-          fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB3);
-          once_value_29 = fra.me.REG[8];
-          register_static_object(&once_value_29);
-        } else fra.me.REG[8] = once_value_29;
-        fra.me.REG[8] = fra.me.REG[8];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
-        fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
-        if (!once_value_30) {
-          fra.me.REG[8] = BOX_NativeString(" with ");
-          REGB3 = TAG_Int(6);
-          fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB3);
-          once_value_30 = fra.me.REG[8];
-          register_static_object(&once_value_30);
-        } else fra.me.REG[8] = once_value_30;
-        fra.me.REG[8] = fra.me.REG[8];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
-        REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-          nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 996);
-        }
-        REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[7])(fra.me.REG[7]);
-        fra.me.REG[8] = CALL_standard___string___Object___to_s(REGB3)(REGB3);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
-        if (!once_value_31) {
-          fra.me.REG[8] = BOX_NativeString(" parameter(s).");
-          REGB3 = TAG_Int(14);
-          fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB3);
-          once_value_31 = fra.me.REG[8];
-          register_static_object(&once_value_31);
-        } else fra.me.REG[8] = once_value_31;
-        fra.me.REG[8] = fra.me.REG[8];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
-        fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
-        CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[10]);
-      } else {
-        /* syntax/mmbuilder.nit:997 */
-        REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-          nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 997);
-        }
-        REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
-        REGB4 = TAG_Int(0);
-        REGB5 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
-        if (UNTAG_Bool(REGB5)) {
-        } else {
-          nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-        }
-        /* ../lib/standard/kernel.nit:244 */
-        REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB4));
-        /* syntax/mmbuilder.nit:997 */
-        if (UNTAG_Bool(REGB4)) {
-          /* syntax/mmbuilder.nit:998 */
-          REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AMethPropdef, ID_parser___parser_nodes___AMethPropdef)) /*cast AMethPropdef*/;
-          if (UNTAG_Bool(REGB4)) {
-            /* syntax/mmbuilder.nit:1000 */
-            REGB4 = TAG_Int(0);
-            REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-            if (UNTAG_Bool(REGB3)) {
-              nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1000);
-            }
-            REGB3 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
-            /* ../lib/standard/kernel.nit:404 */
-            while(1) {
-              REGB5 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
-              if (UNTAG_Bool(REGB5)) {
-              } else {
-               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-              }
-              /* ../lib/standard/kernel.nit:242 */
-              REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB3));
-              /* ../lib/standard/kernel.nit:404 */
-              if (UNTAG_Bool(REGB5)) {
-               /* syntax/mmbuilder.nit:1000 */
-               REGB5 = REGB4;
-               /* syntax/mmbuilder.nit:1001 */
-               REGB6 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-               if (UNTAG_Bool(REGB6)) {
-               nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1001);
-               }
-               fra.me.REG[10] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[4])(fra.me.REG[4], REGB5);
-               REGB6 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-               if (UNTAG_Bool(REGB6)) {
-               nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1001);
-               }
-               fra.me.REG[8] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB5);
-               REGB6 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[10],fra.me.REG[8]));
-               if (UNTAG_Bool(REGB6)) {
-               } else {
-               REGB7 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
-               REGB6 = REGB7;
-               }
-               REGB6 = TAG_Bool(!UNTAG_Bool(REGB6));
-               if (UNTAG_Bool(REGB6)) {
-               /* syntax/mmbuilder.nit:1002 */
-               fra.me.REG[8] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[0])(fra.me.REG[0]);
-               REGB6 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
-               if (UNTAG_Bool(REGB6)) {
-               nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1002);
-               }
-               fra.me.REG[8] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[8])(fra.me.REG[8]);
-               fra.me.REG[8] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra.me.REG[8])(fra.me.REG[8], REGB5);
-               REGB6 = TAG_Int(7);
-               fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB6);
-               if (!once_value_32) {
-               fra.me.REG[11] = BOX_NativeString("Redef error: Expected ");
-               REGB6 = TAG_Int(22);
-               fra.me.REG[11] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[11])(fra.me.REG[11], REGB6);
-               once_value_32 = fra.me.REG[11];
-               register_static_object(&once_value_32);
-               } else fra.me.REG[11] = once_value_32;
-               fra.me.REG[11] = fra.me.REG[11];
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
-               REGB6 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-               if (UNTAG_Bool(REGB6)) {
-               nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1002);
-               }
-               fra.me.REG[11] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB5);
-               fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
-               if (!once_value_33) {
-               fra.me.REG[11] = BOX_NativeString(", as in ");
-               REGB5 = TAG_Int(8);
-               fra.me.REG[11] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[11])(fra.me.REG[11], REGB5);
-               once_value_33 = fra.me.REG[11];
-               register_static_object(&once_value_33);
-               } else fra.me.REG[11] = once_value_33;
-               fra.me.REG[11] = fra.me.REG[11];
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
-               fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
-               fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
-               if (!once_value_34) {
-               fra.me.REG[11] = BOX_NativeString("::");
-               REGB5 = TAG_Int(2);
-               fra.me.REG[11] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[11])(fra.me.REG[11], REGB5);
-               once_value_34 = fra.me.REG[11];
-               register_static_object(&once_value_34);
-               } else fra.me.REG[11] = once_value_34;
-               fra.me.REG[11] = fra.me.REG[11];
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
-               fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
-               if (!once_value_35) {
-               fra.me.REG[11] = BOX_NativeString(".");
-               REGB5 = TAG_Int(1);
-               fra.me.REG[11] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[11])(fra.me.REG[11], REGB5);
-               once_value_35 = fra.me.REG[11];
-               register_static_object(&once_value_35);
-               } else fra.me.REG[11] = once_value_35;
-               fra.me.REG[11] = fra.me.REG[11];
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
-               fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
-               CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8], fra.me.REG[10]);
-               }
-               /* ../lib/standard/kernel.nit:406 */
-               REGB5 = TAG_Int(1);
-               /* ../lib/standard/kernel.nit:245 */
-               REGB5 = TAG_Int(UNTAG_Int(REGB4)+UNTAG_Int(REGB5));
-               /* ../lib/standard/kernel.nit:406 */
-               REGB4 = REGB5;
-              } else {
-               /* ../lib/standard/kernel.nit:404 */
-               goto label36;
-              }
-            }
-            label36: while(0);
-          } else {
-            /* syntax/mmbuilder.nit:1005 */
-            REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AAttrPropdef, ID_parser___parser_nodes___AAttrPropdef)) /*cast AAttrPropdef*/;
-            if (UNTAG_Bool(REGB4)) {
-              /* syntax/mmbuilder.nit:1007 */
-              REGB4 = TAG_Int(0);
-              REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-              if (UNTAG_Bool(REGB3)) {
-               nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1007);
-              }
-              fra.me.REG[10] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[4])(fra.me.REG[4], REGB4);
-              REGB4 = TAG_Int(0);
-              REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-              if (UNTAG_Bool(REGB3)) {
-               nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1007);
-              }
-              fra.me.REG[8] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB4);
-              REGB4 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[10],fra.me.REG[8]));
-              if (UNTAG_Bool(REGB4)) {
-              } else {
-               REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
-               REGB4 = REGB3;
-              }
-              REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
-              if (UNTAG_Bool(REGB4)) {
-               /* syntax/mmbuilder.nit:1008 */
-               fra.me.REG[8] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
-               REGB4 = TAG_Int(7);
-               fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
-               if (!once_value_37) {
-               fra.me.REG[11] = BOX_NativeString("Redef error: Expected ");
-               REGB4 = TAG_Int(22);
-               fra.me.REG[11] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[11])(fra.me.REG[11], REGB4);
-               once_value_37 = fra.me.REG[11];
-               register_static_object(&once_value_37);
-               } else fra.me.REG[11] = once_value_37;
-               fra.me.REG[11] = fra.me.REG[11];
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
-               REGB4 = TAG_Int(0);
-               REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-               if (UNTAG_Bool(REGB3)) {
-               nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1008);
-               }
-               fra.me.REG[11] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[7])(fra.me.REG[7], REGB4);
-               fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
-               if (!once_value_38) {
-               fra.me.REG[11] = BOX_NativeString(", as in the parameter of ");
-               REGB4 = TAG_Int(25);
-               fra.me.REG[11] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[11])(fra.me.REG[11], REGB4);
-               once_value_38 = fra.me.REG[11];
-               register_static_object(&once_value_38);
-               } else fra.me.REG[11] = once_value_38;
-               fra.me.REG[11] = fra.me.REG[11];
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
-               fra.me.REG[11] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
-               fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
-               if (!once_value_39) {
-               fra.me.REG[11] = BOX_NativeString("::");
-               REGB4 = TAG_Int(2);
-               fra.me.REG[11] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[11])(fra.me.REG[11], REGB4);
-               once_value_39 = fra.me.REG[11];
-               register_static_object(&once_value_39);
-               } else fra.me.REG[11] = once_value_39;
-               fra.me.REG[11] = fra.me.REG[11];
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
-               fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
-               if (!once_value_40) {
-               fra.me.REG[11] = BOX_NativeString(".");
-               REGB4 = TAG_Int(1);
-               fra.me.REG[11] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[11])(fra.me.REG[11], REGB4);
-               once_value_40 = fra.me.REG[11];
-               register_static_object(&once_value_40);
-               } else fra.me.REG[11] = once_value_40;
-               fra.me.REG[11] = fra.me.REG[11];
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[11]);
-               fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
-               CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8], fra.me.REG[10]);
-              }
-            } else {
-              /* syntax/mmbuilder.nit:1012 */
-              nit_abort("Aborted", NULL, LOCATE_syntax___mmbuilder, 1012);
-            }
-          }
-        }
-      }
-      /* syntax/mmbuilder.nit:1016 */
-      REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-      if (UNTAG_Bool(REGB4)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1016);
-      }
-      fra.me.REG[10] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[4])(fra.me.REG[4]);
-      /* syntax/mmbuilder.nit:1017 */
-      REGB4 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
-      if (UNTAG_Bool(REGB4)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1017);
-      }
-      fra.me.REG[8] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[7])(fra.me.REG[7]);
-      /* syntax/mmbuilder.nit:1018 */
-      REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
-      if (UNTAG_Bool(REGB4)) {
-      } else {
-        REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
-        if (UNTAG_Bool(REGB3)) {
-          REGB3 = TAG_Bool(0);
-          REGB4 = REGB3;
-        } else {
-          REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
-          REGB4 = REGB3;
-        }
-      }
-      if (UNTAG_Bool(REGB4)) {
-        REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
-        if (UNTAG_Bool(REGB4)) {
-        } else {
-          REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-            REGB3 = TAG_Bool(0);
-            REGB4 = REGB3;
-          } else {
-            REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
-            REGB4 = REGB3;
-          }
-        }
-        REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
-      } else {
-        REGB3 = TAG_Bool(0);
-        REGB4 = REGB3;
-      }
-      if (UNTAG_Bool(REGB4)) {
-        /* syntax/mmbuilder.nit:1019 */
-        REGB4 = TAG_Int(9);
-        fra.me.REG[11] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
-        if (!once_value_41) {
-          fra.me.REG[12] = BOX_NativeString("Redef error: The procedure ");
-          REGB4 = TAG_Int(27);
-          fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB4);
-          once_value_41 = fra.me.REG[12];
-          register_static_object(&once_value_41);
-        } else fra.me.REG[12] = once_value_41;
-        fra.me.REG[12] = fra.me.REG[12];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
-        fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
-        fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
-        if (!once_value_42) {
-          fra.me.REG[12] = BOX_NativeString("::");
-          REGB4 = TAG_Int(2);
-          fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB4);
-          once_value_42 = fra.me.REG[12];
-          register_static_object(&once_value_42);
-        } else fra.me.REG[12] = once_value_42;
-        fra.me.REG[12] = fra.me.REG[12];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
-        fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
-        if (!once_value_43) {
-          fra.me.REG[12] = BOX_NativeString(" redefines the function ");
-          REGB4 = TAG_Int(24);
-          fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB4);
-          once_value_43 = fra.me.REG[12];
-          register_static_object(&once_value_43);
-        } else fra.me.REG[12] = once_value_43;
-        fra.me.REG[12] = fra.me.REG[12];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
-        fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
-        fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
-        if (!once_value_44) {
-          fra.me.REG[12] = BOX_NativeString("::");
-          REGB4 = TAG_Int(2);
-          fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB4);
-          once_value_44 = fra.me.REG[12];
-          register_static_object(&once_value_44);
-        } else fra.me.REG[12] = once_value_44;
-        fra.me.REG[12] = fra.me.REG[12];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
-        fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
-        if (!once_value_45) {
-          fra.me.REG[12] = BOX_NativeString(".");
-          REGB4 = TAG_Int(1);
-          fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB4);
-          once_value_45 = fra.me.REG[12];
-          register_static_object(&once_value_45);
-        } else fra.me.REG[12] = once_value_45;
-        fra.me.REG[12] = fra.me.REG[12];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
-        fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
-        CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[11]);
-      } else {
-        /* syntax/mmbuilder.nit:1020 */
-        REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
-        if (UNTAG_Bool(REGB4)) {
-        } else {
-          REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
-          if (UNTAG_Bool(REGB3)) {
-            REGB3 = TAG_Bool(0);
-            REGB4 = REGB3;
-          } else {
-            REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
-            REGB4 = REGB3;
-          }
-        }
-        REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
-        if (UNTAG_Bool(REGB4)) {
-          REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
-          if (UNTAG_Bool(REGB4)) {
-          } else {
-            REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
-            if (UNTAG_Bool(REGB3)) {
-              REGB3 = TAG_Bool(0);
-              REGB4 = REGB3;
-            } else {
-              REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
-              REGB4 = REGB3;
-            }
-          }
-        } else {
-          REGB3 = TAG_Bool(0);
-          REGB4 = REGB3;
-        }
-        if (UNTAG_Bool(REGB4)) {
-          /* syntax/mmbuilder.nit:1021 */
-          REGB4 = TAG_Int(9);
-          fra.me.REG[11] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
-          if (!once_value_46) {
-            fra.me.REG[12] = BOX_NativeString("Redef error: The function ");
-            REGB4 = TAG_Int(26);
-            fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB4);
-            once_value_46 = fra.me.REG[12];
-            register_static_object(&once_value_46);
-          } else fra.me.REG[12] = once_value_46;
-          fra.me.REG[12] = fra.me.REG[12];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
-          fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
-          fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
-          if (!once_value_47) {
-            fra.me.REG[12] = BOX_NativeString("::");
-            REGB4 = TAG_Int(2);
-            fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB4);
-            once_value_47 = fra.me.REG[12];
-            register_static_object(&once_value_47);
-          } else fra.me.REG[12] = once_value_47;
-          fra.me.REG[12] = fra.me.REG[12];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
-          fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
-          if (!once_value_48) {
-            fra.me.REG[12] = BOX_NativeString(" redefines the procedure ");
-            REGB4 = TAG_Int(25);
-            fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB4);
-            once_value_48 = fra.me.REG[12];
-            register_static_object(&once_value_48);
-          } else fra.me.REG[12] = once_value_48;
-          fra.me.REG[12] = fra.me.REG[12];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
-          fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
-          fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
-          if (!once_value_49) {
-            fra.me.REG[12] = BOX_NativeString("::");
-            REGB4 = TAG_Int(2);
-            fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB4);
-            once_value_49 = fra.me.REG[12];
-            register_static_object(&once_value_49);
-          } else fra.me.REG[12] = once_value_49;
-          fra.me.REG[12] = fra.me.REG[12];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
-          fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
-          if (!once_value_50) {
-            fra.me.REG[12] = BOX_NativeString(".");
-            REGB4 = TAG_Int(1);
-            fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB4);
-            once_value_50 = fra.me.REG[12];
-            register_static_object(&once_value_50);
-          } else fra.me.REG[12] = once_value_50;
-          fra.me.REG[12] = fra.me.REG[12];
-          CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[11])(fra.me.REG[11], fra.me.REG[12]);
-          fra.me.REG[11] = CALL_standard___string___Object___to_s(fra.me.REG[11])(fra.me.REG[11]);
-          CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[11]);
-        } else {
-          /* syntax/mmbuilder.nit:1022 */
-          REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
-          if (UNTAG_Bool(REGB4)) {
-          } else {
-            REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
-            if (UNTAG_Bool(REGB3)) {
-              REGB3 = TAG_Bool(0);
-              REGB4 = REGB3;
-            } else {
-              REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
-              REGB4 = REGB3;
-            }
-          }
-          REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
-          if (UNTAG_Bool(REGB4)) {
-            REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
-            if (UNTAG_Bool(REGB4)) {
-            } else {
-              REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
-              if (UNTAG_Bool(REGB3)) {
-               REGB3 = TAG_Bool(0);
-               REGB4 = REGB3;
-              } else {
-               REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
-               REGB4 = REGB3;
-              }
-            }
-            REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
-          } else {
-            REGB3 = TAG_Bool(0);
-            REGB4 = REGB3;
-          }
-          if (UNTAG_Bool(REGB4)) {
-            REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
-            if (UNTAG_Bool(REGB4)) {
-              nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1022);
-            }
-            REGB4 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
-            REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
-          } else {
-            REGB3 = TAG_Bool(0);
-            REGB4 = REGB3;
-          }
-          if (UNTAG_Bool(REGB4)) {
-            /* syntax/mmbuilder.nit:1023 */
-            fra.me.REG[11] = NIT_NULL;
-            /* syntax/mmbuilder.nit:1024 */
-            REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AMethPropdef, ID_parser___parser_nodes___AMethPropdef)) /*cast AMethPropdef*/;
-            if (UNTAG_Bool(REGB4)) {
-              /* syntax/mmbuilder.nit:1025 */
-              fra.me.REG[12] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[0])(fra.me.REG[0]);
-              REGB4 = TAG_Bool(fra.me.REG[12]==NIT_NULL);
-              if (UNTAG_Bool(REGB4)) {
-               nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1025);
-              }
-              fra.me.REG[12] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[12])(fra.me.REG[12]);
-              fra.me.REG[11] = fra.me.REG[12];
-            } else {
-              /* syntax/mmbuilder.nit:1026 */
-              REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___AAttrPropdef, ID_parser___parser_nodes___AAttrPropdef)) /*cast AAttrPropdef*/;
-              if (UNTAG_Bool(REGB4)) {
-               /* syntax/mmbuilder.nit:1027 */
-               fra.me.REG[12] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
-               fra.me.REG[11] = fra.me.REG[12];
-              } else {
-               /* syntax/mmbuilder.nit:1028 */
-               REGB4 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_parser___parser_nodes___ATypePropdef, ID_parser___parser_nodes___ATypePropdef)) /*cast ATypePropdef*/;
-               if (UNTAG_Bool(REGB4)) {
-               /* syntax/mmbuilder.nit:1029 */
-               fra.me.REG[12] = CALL_parser___parser_nodes___ATypePropdef___n_type(fra.me.REG[0])(fra.me.REG[0]);
-               fra.me.REG[11] = fra.me.REG[12];
-               }
-              }
-            }
-            /* syntax/mmbuilder.nit:1031 */
-            REGB4 = TAG_Int(7);
-            fra.me.REG[12] = NEW_Array_standard___collection___array___Array___with_capacity(REGB4);
-            if (!once_value_51) {
-              fra.me.REG[13] = BOX_NativeString("Redef error: Expected ");
-              REGB4 = TAG_Int(22);
-              fra.me.REG[13] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[13])(fra.me.REG[13], REGB4);
-              once_value_51 = fra.me.REG[13];
-              register_static_object(&once_value_51);
-            } else fra.me.REG[13] = once_value_51;
-            fra.me.REG[13] = fra.me.REG[13];
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
-            fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
-            if (!once_value_52) {
-              fra.me.REG[13] = BOX_NativeString(", as in ");
-              REGB4 = TAG_Int(8);
-              fra.me.REG[13] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[13])(fra.me.REG[13], REGB4);
-              once_value_52 = fra.me.REG[13];
-              register_static_object(&once_value_52);
-            } else fra.me.REG[13] = once_value_52;
-            fra.me.REG[13] = fra.me.REG[13];
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
-            fra.me.REG[13] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
-            fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[13])(fra.me.REG[13]);
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
-            if (!once_value_53) {
-              fra.me.REG[13] = BOX_NativeString("::");
-              REGB4 = TAG_Int(2);
-              fra.me.REG[13] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[13])(fra.me.REG[13], REGB4);
-              once_value_53 = fra.me.REG[13];
-              register_static_object(&once_value_53);
-            } else fra.me.REG[13] = once_value_53;
-            fra.me.REG[13] = fra.me.REG[13];
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
-            fra.me.REG[13] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
-            if (!once_value_54) {
-              fra.me.REG[13] = BOX_NativeString(".");
-              REGB4 = TAG_Int(1);
-              fra.me.REG[13] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[13])(fra.me.REG[13], REGB4);
-              once_value_54 = fra.me.REG[13];
-              register_static_object(&once_value_54);
-            } else fra.me.REG[13] = once_value_54;
-            fra.me.REG[13] = fra.me.REG[13];
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[12])(fra.me.REG[12], fra.me.REG[13]);
-            fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
-            CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[11], fra.me.REG[12]);
-          } else {
-            /* syntax/mmbuilder.nit:1032 */
-            REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-            if (UNTAG_Bool(REGB4)) {
-              nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1032);
-            }
-            REGB4 = CALL_metamodel___static_type___MMSignature_____l(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
-            REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
-            if (UNTAG_Bool(REGB4)) {
-              fra.me.REG[7] = CALL_syntax___syntax_base___AbsSyntaxVisitor___tc(fra.me.REG[1])(fra.me.REG[1]);
-              REGB4 = CALL_toolcontext___ToolContext___error_count(fra.me.REG[7])(fra.me.REG[7]);
-              REGB3 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB4));
-              if (UNTAG_Bool(REGB3)) {
-              } else {
-               /* ../lib/standard/kernel.nit:237 */
-               REGB4 = TAG_Bool((REGB0)==(REGB4));
-               /* syntax/mmbuilder.nit:1032 */
-               REGB3 = REGB4;
-              }
-            } else {
-              REGB4 = TAG_Bool(0);
-              REGB3 = REGB4;
-            }
-            if (UNTAG_Bool(REGB3)) {
-              /* syntax/mmbuilder.nit:1034 */
-              REGB3 = TAG_Int(9);
-              fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
-              if (!once_value_55) {
-               fra.me.REG[12] = BOX_NativeString("Redef error: Incompatible redefinition of ");
-               REGB3 = TAG_Int(42);
-               fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB3);
-               once_value_55 = fra.me.REG[12];
-               register_static_object(&once_value_55);
-              } else fra.me.REG[12] = once_value_55;
-              fra.me.REG[12] = fra.me.REG[12];
-              CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
-              fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
-              fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
-              CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
-              if (!once_value_56) {
-               fra.me.REG[12] = BOX_NativeString("::");
-               REGB3 = TAG_Int(2);
-               fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB3);
-               once_value_56 = fra.me.REG[12];
-               register_static_object(&once_value_56);
-              } else fra.me.REG[12] = once_value_56;
-              fra.me.REG[12] = fra.me.REG[12];
-              CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
-              fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
-              CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
-              if (!once_value_57) {
-               fra.me.REG[12] = BOX_NativeString(" with ");
-               REGB3 = TAG_Int(6);
-               fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB3);
-               once_value_57 = fra.me.REG[12];
-               register_static_object(&once_value_57);
-              } else fra.me.REG[12] = once_value_57;
-              fra.me.REG[12] = fra.me.REG[12];
-              CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
-              fra.me.REG[12] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
-              fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[12])(fra.me.REG[12]);
-              CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
-              if (!once_value_58) {
-               fra.me.REG[12] = BOX_NativeString("::");
-               REGB3 = TAG_Int(2);
-               fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB3);
-               once_value_58 = fra.me.REG[12];
-               register_static_object(&once_value_58);
-              } else fra.me.REG[12] = once_value_58;
-              fra.me.REG[12] = fra.me.REG[12];
-              CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
-              fra.me.REG[12] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-              CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
-              if (!once_value_59) {
-               fra.me.REG[12] = BOX_NativeString("");
-               REGB3 = TAG_Int(0);
-               fra.me.REG[12] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[12])(fra.me.REG[12], REGB3);
-               once_value_59 = fra.me.REG[12];
-               register_static_object(&once_value_59);
-              } else fra.me.REG[12] = once_value_59;
-              fra.me.REG[12] = fra.me.REG[12];
-              CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[12]);
-              fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
-              CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[7]);
-            } else {
-              /* syntax/mmbuilder.nit:1035 */
-              REGB3 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
-              if (UNTAG_Bool(REGB3)) {
-              } else {
-               REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
-               if (UNTAG_Bool(REGB4)) {
-               REGB4 = TAG_Bool(0);
-               REGB3 = REGB4;
-               } else {
-               REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], NIT_NULL);
-               REGB3 = REGB4;
-               }
-              }
-              REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
-              if (UNTAG_Bool(REGB3)) {
-               REGB3 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
-               if (UNTAG_Bool(REGB3)) {
-               } else {
-               REGB4 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
-               if (UNTAG_Bool(REGB4)) {
-               REGB4 = TAG_Bool(0);
-               REGB3 = REGB4;
-               } else {
-               REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], NIT_NULL);
-               REGB3 = REGB4;
-               }
-               }
-               REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
-              } else {
-               REGB4 = TAG_Bool(0);
-               REGB3 = REGB4;
-              }
-              if (UNTAG_Bool(REGB3)) {
-               REGB3 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[10],fra.me.REG[8]));
-               if (UNTAG_Bool(REGB3)) {
-               } else {
-               REGB4 = TAG_Bool(fra.me.REG[10]==NIT_NULL);
-               if (UNTAG_Bool(REGB4)) {
-               REGB4 = TAG_Bool(0);
-               REGB3 = REGB4;
-               } else {
-               REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
-               REGB3 = REGB4;
-               }
-               }
-               REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
-              } else {
-               REGB4 = TAG_Bool(0);
-               REGB3 = REGB4;
-              }
-              if (UNTAG_Bool(REGB3)) {
-               REGB3 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_metamodel___abstractmetamodel___MMAttribute, ID_metamodel___abstractmetamodel___MMAttribute)) /*cast MMAttribute*/;
-              } else {
-               REGB4 = TAG_Bool(0);
-               REGB3 = REGB4;
-              }
-              if (UNTAG_Bool(REGB3)) {
-               /* syntax/mmbuilder.nit:1036 */
-               REGB3 = TAG_Int(7);
-               fra.me.REG[10] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
-               if (!once_value_60) {
-               fra.me.REG[7] = BOX_NativeString("Redef error: Expected ");
-               REGB3 = TAG_Int(22);
-               fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB3);
-               once_value_60 = fra.me.REG[7];
-               register_static_object(&once_value_60);
-               } else fra.me.REG[7] = once_value_60;
-               fra.me.REG[7] = fra.me.REG[7];
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[7]);
-               fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
-               if (!once_value_61) {
-               fra.me.REG[8] = BOX_NativeString(", as in ");
-               REGB3 = TAG_Int(8);
-               fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB3);
-               once_value_61 = fra.me.REG[8];
-               register_static_object(&once_value_61);
-               } else fra.me.REG[8] = once_value_61;
-               fra.me.REG[8] = fra.me.REG[8];
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
-               fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[9])(fra.me.REG[9]);
-               fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
-               if (!once_value_62) {
-               fra.me.REG[8] = BOX_NativeString("::");
-               REGB3 = TAG_Int(2);
-               fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB3);
-               once_value_62 = fra.me.REG[8];
-               register_static_object(&once_value_62);
-               } else fra.me.REG[8] = once_value_62;
-               fra.me.REG[8] = fra.me.REG[8];
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[8]);
-               fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[9]);
-               if (!once_value_63) {
-               fra.me.REG[9] = BOX_NativeString(".");
-               REGB3 = TAG_Int(1);
-               fra.me.REG[9] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[9])(fra.me.REG[9], REGB3);
-               once_value_63 = fra.me.REG[9];
-               register_static_object(&once_value_63);
-               } else fra.me.REG[9] = once_value_63;
-               fra.me.REG[9] = fra.me.REG[9];
-               CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[10])(fra.me.REG[10], fra.me.REG[9]);
-               fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[10])(fra.me.REG[10]);
-               CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[10]);
-              }
-            }
-          }
-        }
-      }
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB3 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:245 */
-      REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
-      /* ../lib/standard/collection/array.nit:275 */
-      REGB2 = REGB3;
-    } else {
-      /* ../lib/standard/collection/array.nit:273 */
-      goto label64;
-    }
-  }
-  label64: while(0);
-  label11: while(0);
-  /* syntax/mmbuilder.nit:1040 */
-  REGB2 = TAG_Int(1);
-  REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
-  if (UNTAG_Bool(REGB3)) {
-  } else {
-    /* ../lib/standard/kernel.nit:237 */
-    REGB2 = TAG_Bool((REGB1)==(REGB2));
-    /* syntax/mmbuilder.nit:1040 */
-    REGB3 = REGB2;
-  }
-  REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
-  if (UNTAG_Bool(REGB3)) {
-    REGB3 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
-    REGB2 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB1));
-    if (UNTAG_Bool(REGB2)) {
-    } else {
-      /* ../lib/standard/kernel.nit:237 */
-      REGB1 = TAG_Bool((REGB3)==(REGB1));
-      /* syntax/mmbuilder.nit:1040 */
-      REGB2 = REGB1;
-    }
-    REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
-  } else {
-    REGB1 = TAG_Bool(0);
-    REGB2 = REGB1;
-  }
-  if (UNTAG_Bool(REGB2)) {
-    /* syntax/mmbuilder.nit:1041 */
-    REGB2 = TAG_Int(5);
-    fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
-    if (!once_value_65) {
-      fra.me.REG[6] = BOX_NativeString("Redef error: ");
-      REGB2 = TAG_Int(13);
-      fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-      once_value_65 = fra.me.REG[6];
-      register_static_object(&once_value_65);
-    } else fra.me.REG[6] = once_value_65;
-    fra.me.REG[6] = fra.me.REG[6];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
-    fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[2])(fra.me.REG[2]);
-    fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
-    if (!once_value_66) {
-      fra.me.REG[6] = BOX_NativeString("::");
-      REGB2 = TAG_Int(2);
-      fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
-      once_value_66 = fra.me.REG[6];
-      register_static_object(&once_value_66);
-    } else fra.me.REG[6] = once_value_66;
-    fra.me.REG[6] = fra.me.REG[6];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
-    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[4])(fra.me.REG[4], fra.me.REG[2]);
-    if (!once_value_67) {
-      fra.me.REG[2] = BOX_NativeString(" redefinition cannot change visibility.");
-      REGB2 = TAG_Int(39);
-      fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB2);
-      once_value_67 = fra.me.REG[2];
-      register_static_object(&once_value_67);
-    } else fra.me.REG[2] = once_value_67;
-    fra.me.REG[2] = fra.me.REG[2];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-    fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-    CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
-  }
-  /* syntax/mmbuilder.nit:1043 */
-  fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
-  REGB2 = TAG_Bool(1);
-  CALL_syntax___syntax_base___MMGlobalProperty___check_visibility(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[0], fra.me.REG[4], REGB2);
-  label4: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AAttrPropdef___readmethod[] = "mmbuilder::AAttrPropdef::(syntax_base::AAttrPropdef::readmethod)";
-val_t syntax___mmbuilder___AAttrPropdef___readmethod(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1048;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___readmethod;
-  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/mmbuilder.nit:1048 */
-  fra.me.REG[0] = ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_syntax___mmbuilder___AAttrPropdef___writemethod[] = "mmbuilder::AAttrPropdef::(syntax_base::AAttrPropdef::writemethod)";
-val_t syntax___mmbuilder___AAttrPropdef___writemethod(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1049;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___writemethod;
-  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/mmbuilder.nit:1049 */
-  fra.me.REG[0] = ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_syntax___mmbuilder___AAttrPropdef___prop[] = "mmbuilder::AAttrPropdef::(syntax_base::AAttrPropdef::prop)";
-val_t syntax___mmbuilder___AAttrPropdef___prop(val_t p0){
-  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___mmbuilder;
-  fra.me.line = 1051;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___prop;
-  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;
-  /* syntax/mmbuilder.nit:1051 */
-  fra.me.REG[1] = fra.me.REG[0];
-  fra.me.REG[1] = ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[1]);
-  REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1051);
-  }
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-static const char LOCATE_syntax___mmbuilder___AAttrPropdef___accept_property_builder[] = "mmbuilder::AAttrPropdef::(mmbuilder::ANode::accept_property_builder)";
-void syntax___mmbuilder___AAttrPropdef___accept_property_builder(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t tmp;
-    static val_t once_value_1; /* Once value */
-      static val_t once_value_2; /* Once value */
-      static val_t once_value_3; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1053;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___accept_property_builder;
-  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;
-  /* syntax/mmbuilder.nit:1053 */
-  fra.me.REG[2] = fra.me.REG[0];
-  fra.me.REG[3] = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:1055 */
-  CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:1057 */
-  fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(0);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:1058 */
-    fra.me.REG[1] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1058);
-    }
-    fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
-  } else {
-    /* syntax/mmbuilder.nit:1060 */
-    if (!once_value_1) {
-      fra.me.REG[0] = BOX_NativeString("@");
-      REGB0 = TAG_Int(1);
-      fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-      once_value_1 = fra.me.REG[0];
-      register_static_object(&once_value_1);
-    } else fra.me.REG[0] = once_value_1;
-    fra.me.REG[0] = fra.me.REG[0];
-    fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1060);
-    }
-    fra.me.REG[4] = CALL_parser___parser_nodes___Token___text(fra.me.REG[4])(fra.me.REG[4]);
-    fra.me.REG[4] = CALL_standard___string___String_____plus(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-    fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
-    fra.me.REG[1] = fra.me.REG[4];
-  }
-  /* syntax/mmbuilder.nit:1062 */
-  fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
-  /* syntax/mmbuilder.nit:1063 */
-  fra.me.REG[0] = NEW_MMSrcAttribute_syntax___syntax_base___MMSrcAttribute___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
-  /* syntax/mmbuilder.nit:1064 */
-  ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[2]) = fra.me.REG[0];
-  /* syntax/mmbuilder.nit:1065 */
-  fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
-  CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
-  /* syntax/mmbuilder.nit:1067 */
-  fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(0);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  if (UNTAG_Bool(REGB0)) {
-    REGB0 = TAG_Bool(1);
-  } else {
-    fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
-    REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-        REGB2 = TAG_Bool(0);
-        REGB1 = REGB2;
-      } else {
-        REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
-        REGB1 = REGB2;
-      }
-    }
-    REGB0 = REGB1;
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:1068 */
-    fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        REGB1 = TAG_Bool(0);
-        REGB0 = REGB1;
-      } else {
-        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
-        REGB0 = REGB1;
-      }
-    }
-    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-    if (UNTAG_Bool(REGB0)) {
-      /* syntax/mmbuilder.nit:1069 */
-      fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
-      REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1069);
-      }
-      fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
-      REGB0 = TAG_Int(1);
-      fra.me.REG[0] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[0])(fra.me.REG[0], REGB0);
-      fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
-      fra.me.REG[1] = fra.me.REG[0];
-    } else {
-      /* syntax/mmbuilder.nit:1071 */
-      fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
-      REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1071);
-      }
-      fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
-      fra.me.REG[1] = fra.me.REG[0];
-    }
-    /* syntax/mmbuilder.nit:1073 */
-    fra.me.REG[0] = NEW_MMReadImplementationMethod_syntax___syntax_base___MMReadImplementationMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
-    /* syntax/mmbuilder.nit:1074 */
-    ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]) = fra.me.REG[0];
-    /* syntax/mmbuilder.nit:1075 */
-    fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
-    CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3], fra.me.REG[0]);
-  }
-  /* syntax/mmbuilder.nit:1077 */
-  fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(0);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  if (UNTAG_Bool(REGB0)) {
-    REGB0 = TAG_Bool(1);
-  } else {
-    fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
-    REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-        REGB2 = TAG_Bool(0);
-        REGB1 = REGB2;
-      } else {
-        REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
-        REGB1 = REGB2;
-      }
-    }
-    REGB0 = REGB1;
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:1078 */
-    fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        REGB1 = TAG_Bool(0);
-        REGB0 = REGB1;
-      } else {
-        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
-        REGB0 = REGB1;
-      }
-    }
-    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-    if (UNTAG_Bool(REGB0)) {
-      /* syntax/mmbuilder.nit:1079 */
-      fra.me.REG[0] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
-      REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1079);
-      }
-      fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
-      REGB0 = TAG_Int(1);
-      fra.me.REG[0] = CALL_standard___string___AbstractString___substring_from(fra.me.REG[0])(fra.me.REG[0], REGB0);
-      if (!once_value_2) {
-        fra.me.REG[5] = BOX_NativeString("=");
-        REGB0 = TAG_Int(1);
-        fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-        once_value_2 = fra.me.REG[5];
-        register_static_object(&once_value_2);
-      } else fra.me.REG[5] = once_value_2;
-      fra.me.REG[5] = fra.me.REG[5];
-      fra.me.REG[5] = CALL_standard___string___String_____plus(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
-      fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
-      fra.me.REG[1] = fra.me.REG[5];
-    } else {
-      /* syntax/mmbuilder.nit:1081 */
-      fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_id2(fra.me.REG[2])(fra.me.REG[2]);
-      REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1081);
-      }
-      fra.me.REG[5] = CALL_parser___parser_nodes___Token___text(fra.me.REG[5])(fra.me.REG[5]);
-      if (!once_value_3) {
-        fra.me.REG[0] = BOX_NativeString("=");
-        REGB0 = TAG_Int(1);
-        fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-        once_value_3 = fra.me.REG[0];
-        register_static_object(&once_value_3);
-      } else fra.me.REG[0] = once_value_3;
-      fra.me.REG[0] = fra.me.REG[0];
-      fra.me.REG[0] = CALL_standard___string___String_____plus(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
-      fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
-      fra.me.REG[1] = fra.me.REG[0];
-    }
-    /* syntax/mmbuilder.nit:1083 */
-    fra.me.REG[4] = NEW_MMWriteImplementationMethod_syntax___syntax_base___MMWriteImplementationMethod___init(fra.me.REG[1], fra.me.REG[4], fra.me.REG[2]);
-    /* syntax/mmbuilder.nit:1084 */
-    ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]) = fra.me.REG[4];
-    /* syntax/mmbuilder.nit:1085 */
-    fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
-    CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
-  }
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AAttrPropdef___accept_property_verifier[] = "mmbuilder::AAttrPropdef::(mmbuilder::ANode::accept_property_verifier)";
-void syntax___mmbuilder___AAttrPropdef___accept_property_verifier(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t REGB3;
-  val_t tmp;
-    static val_t once_value_2; /* Once value */
-    static val_t once_value_3; /* Once value */
-    static val_t once_value_4; /* Once value */
-    static val_t once_value_5; /* Once value */
-      static val_t once_value_6; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1089;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___accept_property_verifier;
-  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;
-  /* syntax/mmbuilder.nit:1089 */
-  fra.me.REG[2] = fra.me.REG[0];
-  fra.me.REG[3] = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:1091 */
-  CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:1092 */
-  fra.me.REG[1] = NIT_NULL;
-  /* syntax/mmbuilder.nit:1093 */
-  fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
-  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)) {
-    /* syntax/mmbuilder.nit:1094 */
-    fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1094);
-    }
-    fra.me.REG[4] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-    /* syntax/mmbuilder.nit:1095 */
-    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)) {
-      fra.me.REG[1] = fra.me.REG[4];
-    } else {
-      goto label1;
-    }
-  } else {
-    /* syntax/mmbuilder.nit:1096 */
-    fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra.me.REG[2])(fra.me.REG[2]);
-    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)) {
-      /* syntax/mmbuilder.nit:1097 */
-      fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_expr(fra.me.REG[2])(fra.me.REG[2]);
-      REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1097);
-      }
-      fra.me.REG[4] = CALL_syntax___mmbuilder___AExpr___get_easy_stype(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-      fra.me.REG[1] = fra.me.REG[4];
-    }
-  }
-  /* syntax/mmbuilder.nit:1100 */
-  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(0);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:1101 */
-    REGB0 = TAG_Int(5);
-    fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_2) {
-      fra.me.REG[5] = BOX_NativeString("Not yet implemented: Attribute definition ");
-      REGB0 = TAG_Int(42);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-      once_value_2 = fra.me.REG[5];
-      register_static_object(&once_value_2);
-    } else fra.me.REG[5] = once_value_2;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    fra.me.REG[5] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
-    fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[5])(fra.me.REG[5]);
-    fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    if (!once_value_3) {
-      fra.me.REG[5] = BOX_NativeString("::");
-      REGB0 = TAG_Int(2);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-      once_value_3 = fra.me.REG[5];
-      register_static_object(&once_value_3);
-    } else fra.me.REG[5] = once_value_3;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    fra.me.REG[5] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
-    fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    if (!once_value_4) {
-      fra.me.REG[5] = BOX_NativeString(" requires an explicit type.");
-      REGB0 = TAG_Int(27);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-      once_value_4 = fra.me.REG[5];
-      register_static_object(&once_value_4);
-    } else fra.me.REG[5] = once_value_4;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-    CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[4]);
-    /* syntax/mmbuilder.nit:1102 */
-    goto label1;
-  }
-  /* syntax/mmbuilder.nit:1105 */
-  fra.me.REG[4] = CALL_syntax___syntax_base___AAttrPropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
-  /* syntax/mmbuilder.nit:1106 */
-  fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
-  fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
-  fra.me.REG[6] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[5], fra.me.REG[1], fra.me.REG[6]);
-  /* syntax/mmbuilder.nit:1107 */
-  CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
-  /* syntax/mmbuilder.nit:1108 */
-  fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[5])(fra.me.REG[5]);
-  /* syntax/mmbuilder.nit:1109 */
-  fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
-  REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-      REGB2 = TAG_Bool(0);
-      REGB1 = REGB2;
-    } else {
-      REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
-      REGB1 = REGB2;
-    }
-  }
-  REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-  if (UNTAG_Bool(REGB1)) {
-    fra.me.REG[5] = CALL_parser___parser_nodes___AAttrPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
-    REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-        REGB2 = TAG_Bool(0);
-        REGB1 = REGB2;
-      } else {
-        REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
-        REGB1 = REGB2;
-      }
-    }
-    REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-  } else {
-    REGB2 = TAG_Bool(0);
-    REGB1 = REGB2;
-  }
-  CALL_syntax___mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], REGB1, REGB0);
-  /* syntax/mmbuilder.nit:1110 */
-  fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
-  REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-      REGB2 = TAG_Bool(0);
-      REGB1 = REGB2;
-    } else {
-      REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
-      REGB1 = REGB2;
-    }
-  }
-  REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-  if (UNTAG_Bool(REGB1)) {
-    REGB1 = TAG_Bool(1);
-  } else {
-    fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
-    REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-    } else {
-      REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-      if (UNTAG_Bool(REGB3)) {
-        REGB3 = TAG_Bool(0);
-        REGB2 = REGB3;
-      } else {
-        REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
-        REGB2 = REGB3;
-      }
-    }
-    REGB1 = REGB2;
-  }
-  if (UNTAG_Bool(REGB1)) {
-    /* syntax/mmbuilder.nit:1111 */
-    fra.me.REG[4] = ATTR_syntax___mmbuilder___AAttrPropdef____readmethod(fra.me.REG[2]);
-    REGB1 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1111);
-    }
-    /* syntax/mmbuilder.nit:1112 */
-    CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
-    /* syntax/mmbuilder.nit:1113 */
-    fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
-    REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-        REGB2 = TAG_Bool(0);
-        REGB1 = REGB2;
-      } else {
-        REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
-        REGB1 = REGB2;
-      }
-    }
-    REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-    if (UNTAG_Bool(REGB1)) {
-      fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_readable(fra.me.REG[2])(fra.me.REG[2]);
-      REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1113);
-      }
-      fra.me.REG[6] = CALL_parser___parser_nodes___AAble___n_kwredef(fra.me.REG[6])(fra.me.REG[6]);
-      REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-      } else {
-        REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-        if (UNTAG_Bool(REGB2)) {
-          REGB2 = TAG_Bool(0);
-          REGB1 = REGB2;
-        } else {
-          REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
-          REGB1 = REGB2;
-        }
-      }
-      REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-    } else {
-      REGB2 = TAG_Bool(0);
-      REGB1 = REGB2;
-    }
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(1);
-    } else {
-      fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
-      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)) {
-        fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
-        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;
-          }
-        }
-        REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
-      } else {
-        REGB3 = TAG_Bool(0);
-        REGB2 = REGB3;
-      }
-      REGB1 = REGB2;
-    }
-    CALL_syntax___mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], REGB1, REGB0);
-    /* syntax/mmbuilder.nit:1114 */
-    fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
-    REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-        REGB2 = TAG_Bool(0);
-        REGB1 = REGB2;
-      } else {
-        REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
-        REGB1 = REGB2;
-      }
-    }
-    REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-    if (UNTAG_Bool(REGB1)) {
-      fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
-      REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1114);
-      }
-      CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3], fra.me.REG[4]);
-    }
-  }
-  /* syntax/mmbuilder.nit:1116 */
-  fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
-  REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-      REGB2 = TAG_Bool(0);
-      REGB1 = REGB2;
-    } else {
-      REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
-      REGB1 = REGB2;
-    }
-  }
-  REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-  if (UNTAG_Bool(REGB1)) {
-    REGB1 = TAG_Bool(1);
-  } else {
-    fra.me.REG[4] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
-    REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-    } else {
-      REGB3 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-      if (UNTAG_Bool(REGB3)) {
-        REGB3 = TAG_Bool(0);
-        REGB2 = REGB3;
-      } else {
-        REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
-        REGB2 = REGB3;
-      }
-    }
-    REGB1 = REGB2;
-  }
-  if (UNTAG_Bool(REGB1)) {
-    /* syntax/mmbuilder.nit:1117 */
-    fra.me.REG[4] = ATTR_syntax___mmbuilder___AAttrPropdef____writemethod(fra.me.REG[2]);
-    REGB1 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1117);
-    }
-    /* syntax/mmbuilder.nit:1118 */
-    REGB1 = TAG_Int(0);
-    fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-    if (!once_value_5) {
-      if (!once_value_6) {
-        fra.me.REG[6] = BOX_NativeString("value");
-        REGB1 = TAG_Int(5);
-        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB1);
-        once_value_6 = fra.me.REG[6];
-        register_static_object(&once_value_6);
-      } else fra.me.REG[6] = once_value_6;
-      fra.me.REG[6] = fra.me.REG[6];
-      fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
-      once_value_5 = fra.me.REG[6];
-      register_static_object(&once_value_5);
-    } else fra.me.REG[6] = once_value_5;
-    fra.me.REG[6] = fra.me.REG[6];
-    fra.me.REG[6] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[1], fra.me.REG[6]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
-    fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_items(fra.me.REG[0]);
-    fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
-    fra.me.REG[6] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[6])(fra.me.REG[6]);
-    fra.me.REG[6] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[6]);
-    CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]);
-    /* syntax/mmbuilder.nit:1120 */
-    fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
-    REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-        REGB2 = TAG_Bool(0);
-        REGB1 = REGB2;
-      } else {
-        REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
-        REGB1 = REGB2;
-      }
-    }
-    if (UNTAG_Bool(REGB1)) {
-      /* syntax/mmbuilder.nit:1121 */
-      fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
-      REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-      } else {
-        REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-        if (UNTAG_Bool(REGB2)) {
-          REGB2 = TAG_Bool(0);
-          REGB1 = REGB2;
-        } else {
-          REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
-          REGB1 = REGB2;
-        }
-      }
-      if (UNTAG_Bool(REGB1)) {
-        REGB1 = TAG_Int(3);
-        REGB0 = REGB1;
-      } else {
-        fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
-        REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-        if (UNTAG_Bool(REGB1)) {
-          nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1121);
-        }
-        fra.me.REG[6] = CALL_parser___parser_nodes___AAble___n_visibility(fra.me.REG[6])(fra.me.REG[6]);
-        REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-        if (UNTAG_Bool(REGB1)) {
-          nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1121);
-        }
-        REGB1 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[6])(fra.me.REG[6]);
-        REGB0 = REGB1;
-      }
-    }
-    /* syntax/mmbuilder.nit:1123 */
-    fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
-    REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-    } else {
-      REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-      if (UNTAG_Bool(REGB2)) {
-        REGB2 = TAG_Bool(0);
-        REGB1 = REGB2;
-      } else {
-        REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
-        REGB1 = REGB2;
-      }
-    }
-    REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-    if (UNTAG_Bool(REGB1)) {
-      fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_writable(fra.me.REG[2])(fra.me.REG[2]);
-      REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1123);
-      }
-      fra.me.REG[6] = CALL_parser___parser_nodes___AAble___n_kwredef(fra.me.REG[6])(fra.me.REG[6]);
-      REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-      } else {
-        REGB2 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-        if (UNTAG_Bool(REGB2)) {
-          REGB2 = TAG_Bool(0);
-          REGB1 = REGB2;
-        } else {
-          REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
-          REGB1 = REGB2;
-        }
-      }
-      REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-    } else {
-      REGB2 = TAG_Bool(0);
-      REGB1 = REGB2;
-    }
-    CALL_syntax___mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], REGB1, REGB0);
-    /* syntax/mmbuilder.nit:1124 */
-    fra.me.REG[6] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        REGB1 = TAG_Bool(0);
-        REGB0 = REGB1;
-      } else {
-        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
-        REGB0 = REGB1;
-      }
-    }
-    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-    if (UNTAG_Bool(REGB0)) {
-      fra.me.REG[2] = CALL_parser___parser_nodes___AAttrPropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
-      REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1124);
-      }
-      CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4]);
-    }
-  }
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor[] = "mmbuilder::AAttrPropdef::(syntax_base::ANode::accept_abs_syntax_visitor)";
-void syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
-  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___mmbuilder;
-  fra.me.line = 1128;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor;
-  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/mmbuilder.nit:1128 */
-  fra.me.REG[2] = fra.me.REG[0];
-  fra.me.REG[3] = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:1130 */
-  fra.me.REG[2] = ATTR_syntax___mmbuilder___AAttrPropdef____prop(fra.me.REG[2]);
-  CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* syntax/mmbuilder.nit:1131 */
-  CALL_SUPER_syntax___mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:1132 */
-  CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AMethPropdef___name[] = "mmbuilder::AMethPropdef::name";
-val_t syntax___mmbuilder___AMethPropdef___name(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1137;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___name;
-  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/mmbuilder.nit:1137 */
-  fra.me.REG[0] = ATTR_syntax___mmbuilder___AMethPropdef____name(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_syntax___mmbuilder___AMethPropdef___method[] = "mmbuilder::AMethPropdef::(syntax_base::AMethPropdef::method)";
-val_t syntax___mmbuilder___AMethPropdef___method(val_t p0){
-  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___mmbuilder;
-  fra.me.line = 1141;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___method;
-  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;
-  /* syntax/mmbuilder.nit:1141 */
-  fra.me.REG[1] = fra.me.REG[0];
-  fra.me.REG[1] = ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[1]);
-  REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1141);
-  }
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-static const char LOCATE_syntax___mmbuilder___AMethPropdef___accept_property_builder[] = "mmbuilder::AMethPropdef::(mmbuilder::ANode::accept_property_builder)";
-void syntax___mmbuilder___AMethPropdef___accept_property_builder(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 tmp;
-      static val_t once_value_1; /* Once value */
-        static val_t once_value_2; /* Once value */
-      static val_t once_value_3; /* Once value */
-        static val_t once_value_4; /* Once value */
-    static val_t once_value_5; /* Once value */
-      static val_t once_value_6; /* Once value */
-        static val_t once_value_7; /* Once value */
-          static val_t once_value_8; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1143;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_property_builder;
-  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/mmbuilder.nit:1143 */
-  fra.me.REG[2] = fra.me.REG[0];
-  fra.me.REG[3] = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:1145 */
-  CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:1147 */
-  fra.me.REG[1] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(0);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:1148 */
-    REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[2], COLOR_parser___parser_nodes___AInitPropdef, ID_parser___parser_nodes___AInitPropdef)) /*cast AInitPropdef*/;
-    if (UNTAG_Bool(REGB0)) {
-      /* syntax/mmbuilder.nit:1149 */
-      if (!once_value_1) {
-        if (!once_value_2) {
-          fra.me.REG[1] = BOX_NativeString("init");
-          REGB0 = TAG_Int(4);
-          fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0);
-          once_value_2 = fra.me.REG[1];
-          register_static_object(&once_value_2);
-        } else fra.me.REG[1] = once_value_2;
-        fra.me.REG[1] = fra.me.REG[1];
-        fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
-        once_value_1 = fra.me.REG[1];
-        register_static_object(&once_value_1);
-      } else fra.me.REG[1] = once_value_1;
-      fra.me.REG[1] = fra.me.REG[1];
-    } else {
-      /* syntax/mmbuilder.nit:1151 */
-      if (!once_value_3) {
-        if (!once_value_4) {
-          fra.me.REG[4] = BOX_NativeString("main");
-          REGB0 = TAG_Int(4);
-          fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
-          once_value_4 = fra.me.REG[4];
-          register_static_object(&once_value_4);
-        } else fra.me.REG[4] = once_value_4;
-        fra.me.REG[4] = fra.me.REG[4];
-        fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
-        once_value_3 = fra.me.REG[4];
-        register_static_object(&once_value_3);
-      } else fra.me.REG[4] = once_value_3;
-      fra.me.REG[4] = fra.me.REG[4];
-      fra.me.REG[1] = fra.me.REG[4];
-    }
-  } else {
-    /* syntax/mmbuilder.nit:1154 */
-    fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1154);
-    }
-    fra.me.REG[4] = CALL_syntax___syntax_base___AMethid___name(fra.me.REG[4])(fra.me.REG[4]);
-    REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1154);
-    }
-    fra.me.REG[1] = fra.me.REG[4];
-    /* syntax/mmbuilder.nit:1156 */
-    fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_methid(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1156);
-    }
-    fra.me.REG[4] = CALL_syntax___syntax_base___AMethid___name(fra.me.REG[4])(fra.me.REG[4]);
-    if (!once_value_5) {
-      if (!once_value_6) {
-        fra.me.REG[0] = BOX_NativeString("-");
-        REGB0 = TAG_Int(1);
-        fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
-        once_value_6 = fra.me.REG[0];
-        register_static_object(&once_value_6);
-      } else fra.me.REG[0] = once_value_6;
-      fra.me.REG[0] = fra.me.REG[0];
-      fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
-      once_value_5 = fra.me.REG[0];
-      register_static_object(&once_value_5);
-    } else fra.me.REG[0] = once_value_5;
-    fra.me.REG[0] = fra.me.REG[0];
-    REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[4]));
-    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], fra.me.REG[0]);
-        REGB0 = REGB1;
-      }
-    }
-    if (UNTAG_Bool(REGB0)) {
-      /* syntax/mmbuilder.nit:1157 */
-      fra.me.REG[0] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
-      /* syntax/mmbuilder.nit:1158 */
-      REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-      } else {
-        REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-        if (UNTAG_Bool(REGB1)) {
-          REGB1 = TAG_Bool(0);
-          REGB0 = REGB1;
-        } else {
-          REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
-          REGB0 = REGB1;
-        }
-      }
-      REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-      if (UNTAG_Bool(REGB0)) {
-        REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-        if (UNTAG_Bool(REGB0)) {
-          nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1158);
-        }
-        fra.me.REG[0] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[0])(fra.me.REG[0]);
-        REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
-        REGB1 = TAG_Int(0);
-        REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
-        if (UNTAG_Bool(REGB2)) {
-        } else {
-          /* ../lib/standard/kernel.nit:237 */
-          REGB1 = TAG_Bool((REGB0)==(REGB1));
-          /* syntax/mmbuilder.nit:1158 */
-          REGB2 = REGB1;
-        }
-      } else {
-        REGB1 = TAG_Bool(0);
-        REGB2 = REGB1;
-      }
-      if (UNTAG_Bool(REGB2)) {
-        /* syntax/mmbuilder.nit:1159 */
-        if (!once_value_7) {
-          if (!once_value_8) {
-            fra.me.REG[0] = BOX_NativeString("unary -");
-            REGB2 = TAG_Int(7);
-            fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB2);
-            once_value_8 = fra.me.REG[0];
-            register_static_object(&once_value_8);
-          } else fra.me.REG[0] = once_value_8;
-          fra.me.REG[0] = fra.me.REG[0];
-          fra.me.REG[0] = CALL_symbol___String___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
-          once_value_7 = fra.me.REG[0];
-          register_static_object(&once_value_7);
-        } else fra.me.REG[0] = once_value_7;
-        fra.me.REG[0] = fra.me.REG[0];
-        fra.me.REG[1] = fra.me.REG[0];
-      }
-    }
-  }
-  /* syntax/mmbuilder.nit:1163 */
-  ATTR_syntax___mmbuilder___AMethPropdef____name(fra.me.REG[2]) = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:1164 */
-  fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
-  fra.me.REG[0] = NEW_MMMethSrcMethod_syntax___syntax_base___MMMethSrcMethod___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
-  /* syntax/mmbuilder.nit:1165 */
-  ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[2]) = fra.me.REG[0];
-  /* syntax/mmbuilder.nit:1166 */
-  fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
-  CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AMethPropdef___accept_property_verifier[] = "mmbuilder::AMethPropdef::(mmbuilder::ANode::accept_property_verifier)";
-void syntax___mmbuilder___AMethPropdef___accept_property_verifier(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___mmbuilder;
-  fra.me.line = 1169;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_property_verifier;
-  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/mmbuilder.nit:1169 */
-  fra.me.REG[2] = fra.me.REG[0];
-  fra.me.REG[3] = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:1171 */
-  fra.me.REG[4] = NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init();
-  CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* syntax/mmbuilder.nit:1172 */
-  CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:1174 */
-  fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-  REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
-  if (UNTAG_Bool(REGB0)) {
-    goto label1;
-  }
-  /* syntax/mmbuilder.nit:1176 */
-  fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-  fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
-  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(0);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    /* syntax/mmbuilder.nit:1179 */
-    fra.me.REG[1] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
-    fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-    fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[4])(fra.me.REG[4]);
-    REGB0 = TAG_Bool(fra.me.REG[4]!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1179);
-    }
-    CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  }
-  /* syntax/mmbuilder.nit:1181 */
-  REGB0 = TAG_Int(1);
-  /* syntax/mmbuilder.nit:1182 */
-  fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
-  REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-      REGB2 = TAG_Bool(0);
-      REGB1 = REGB2;
-    } else {
-      REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
-      REGB1 = REGB2;
-    }
-  }
-  REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-  if (UNTAG_Bool(REGB1)) {
-    fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
-    REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1182);
-    }
-    REGB1 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
-    REGB2 = TAG_Int(1);
-    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:244 */
-    REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
-  } else {
-    /* syntax/mmbuilder.nit:1182 */
-    REGB1 = TAG_Bool(0);
-    REGB2 = REGB1;
-  }
-  if (UNTAG_Bool(REGB2)) {
-    /* syntax/mmbuilder.nit:1183 */
-    fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
-    REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1183);
-    }
-    REGB2 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
-    REGB0 = REGB2;
-  }
-  /* syntax/mmbuilder.nit:1185 */
-  fra.me.REG[4] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[1] = CALL_parser___parser_nodes___AMethPropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
-  REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-  if (UNTAG_Bool(REGB2)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(0);
-      REGB2 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
-      REGB2 = REGB1;
-    }
-  }
-  REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
-  CALL_syntax___mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], REGB2, REGB0);
-  /* syntax/mmbuilder.nit:1186 */
-  fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-      REGB2 = TAG_Bool(0);
-      REGB0 = REGB2;
-    } else {
-      REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
-      REGB0 = REGB2;
-    }
-  }
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  if (UNTAG_Bool(REGB0)) {
-    fra.me.REG[4] = CALL_parser___parser_nodes___AMethPropdef___n_signature(fra.me.REG[2])(fra.me.REG[2]);
-    fra.me.REG[2] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1186);
-    }
-    CALL_syntax___mmbuilder___ASignature___check_visibility(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3], fra.me.REG[2]);
-  }
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor[] = "mmbuilder::AMethPropdef::(syntax_base::ANode::accept_abs_syntax_visitor)";
-void syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
-  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___mmbuilder;
-  fra.me.line = 1189;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor;
-  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/mmbuilder.nit:1189 */
-  fra.me.REG[2] = fra.me.REG[0];
-  fra.me.REG[3] = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:1191 */
-  fra.me.REG[2] = ATTR_syntax___mmbuilder___AMethPropdef____method(fra.me.REG[2]);
-  CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* syntax/mmbuilder.nit:1192 */
-  CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:1193 */
-  CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AMainMethPropdef___process_and_check[] = "mmbuilder::AMainMethPropdef::(mmbuilder::APropdef::process_and_check)";
-void syntax___mmbuilder___AMainMethPropdef___process_and_check(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4){
-  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___mmbuilder;
-  fra.me.line = 1198;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AMainMethPropdef___process_and_check;
-  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;
-  REGB0 = p3;
-  REGB1 = p4;
-  /* syntax/mmbuilder.nit:1200 */
-  fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level__eq(fra.me.REG[0])(fra.me.REG[0], REGB1);
-  /* syntax/mmbuilder.nit:1201 */
-  fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
-  fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[1] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[1] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[1]);
-  CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AExternPropdef___accept_property_verifier[] = "mmbuilder::AExternPropdef::(mmbuilder::ANode::accept_property_verifier)";
-void syntax___mmbuilder___AExternPropdef___accept_property_verifier(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 REGB2;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1207;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AExternPropdef___accept_property_verifier;
-  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/mmbuilder.nit:1207 */
-  fra.me.REG[2] = fra.me.REG[0];
-  /* syntax/mmbuilder.nit:1209 */
-  CALL_SUPER_syntax___mmbuilder___AExternPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:1211 */
-  fra.me.REG[1] = CALL_parser___parser_nodes___AExternPropdef___n_extern(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(0);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:1212 */
-    fra.me.REG[1] = CALL_parser___parser_nodes___AExternPropdef___n_extern(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1212);
-    }
-    fra.me.REG[1] = CALL_parser___parser_nodes___Token___text(fra.me.REG[1])(fra.me.REG[1]);
-    /* syntax/mmbuilder.nit:1213 */
-    REGB0 = TAG_Int(1);
-    /* ../lib/standard/collection/array.nit:24 */
-    REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=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[1]);
-    /* syntax/mmbuilder.nit:1213 */
-    REGB2 = TAG_Int(2);
-    /* ../lib/standard/kernel.nit:247 */
-    REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
-    /* syntax/mmbuilder.nit:1213 */
-    fra.me.REG[0] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB0, REGB2);
-    fra.me.REG[1] = fra.me.REG[0];
-  } else {
-    /* syntax/mmbuilder.nit:1215 */
-    fra.me.REG[0] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
-    fra.me.REG[0] = CALL_primitive_info___MMMethod___default_extern_name(fra.me.REG[0])(fra.me.REG[0]);
-    fra.me.REG[1] = fra.me.REG[0];
-  }
-  /* syntax/mmbuilder.nit:1217 */
-  fra.me.REG[2] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_syntax___syntax_base___MMMethSrcMethod___extern_name__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ATypePropdef___prop[] = "mmbuilder::ATypePropdef::(syntax_base::ATypePropdef::prop)";
-val_t syntax___mmbuilder___ATypePropdef___prop(val_t p0){
-  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___mmbuilder;
-  fra.me.line = 1222;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___prop;
-  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;
-  /* syntax/mmbuilder.nit:1222 */
-  fra.me.REG[1] = fra.me.REG[0];
-  fra.me.REG[1] = ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[1]);
-  REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1222);
-  }
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-static const char LOCATE_syntax___mmbuilder___ATypePropdef___accept_property_builder[] = "mmbuilder::ATypePropdef::(mmbuilder::ANode::accept_property_builder)";
-void syntax___mmbuilder___ATypePropdef___accept_property_builder(val_t p0, val_t p1){
-  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___mmbuilder;
-  fra.me.line = 1225;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_property_builder;
-  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/mmbuilder.nit:1225 */
-  fra.me.REG[2] = fra.me.REG[0];
-  fra.me.REG[3] = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:1227 */
-  CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:1228 */
-  fra.me.REG[1] = CALL_parser___parser_nodes___ATypePropdef___n_id(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:1229 */
-  fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
-  fra.me.REG[0] = NEW_MMSrcTypeProperty_syntax___syntax_base___MMSrcTypeProperty___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
-  /* syntax/mmbuilder.nit:1230 */
-  ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[2]) = fra.me.REG[0];
-  /* syntax/mmbuilder.nit:1231 */
-  fra.me.REG[2] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
-  CALL_syntax___mmbuilder___MMSrcLocalClass___add_src_local_property(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ATypePropdef___accept_property_verifier[] = "mmbuilder::ATypePropdef::(mmbuilder::ANode::accept_property_verifier)";
-void syntax___mmbuilder___ATypePropdef___accept_property_verifier(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 tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1234;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_property_verifier;
-  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/mmbuilder.nit:1234 */
-  fra.me.REG[2] = fra.me.REG[0];
-  fra.me.REG[3] = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:1236 */
-  CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:1237 */
-  fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-  fra.me.REG[0] = CALL_parser___parser_nodes___ATypePropdef___n_type(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-  fra.me.REG[4] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
-  fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
-  fra.me.REG[4] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
-  /* syntax/mmbuilder.nit:1238 */
-  fra.me.REG[0] = CALL_syntax___syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
-  CALL_metamodel___static_type___MMLocalProperty___signature__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
-  /* syntax/mmbuilder.nit:1239 */
-  fra.me.REG[4] = CALL_parser___parser_nodes___ATypePropdef___n_visibility(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = CALL_syntax___mmbuilder___AVisibility___level(fra.me.REG[4])(fra.me.REG[4]);
-  /* syntax/mmbuilder.nit:1240 */
-  fra.me.REG[4] = CALL_syntax___syntax_base___ATypePropdef___prop(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[0] = CALL_parser___parser_nodes___ATypePropdef___n_kwredef(fra.me.REG[2])(fra.me.REG[2]);
-  REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-      REGB2 = TAG_Bool(0);
-      REGB1 = REGB2;
-    } else {
-      REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
-      REGB1 = REGB2;
-    }
-  }
-  REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-  CALL_syntax___mmbuilder___APropdef___process_and_check(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[4], REGB1, REGB0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor[] = "mmbuilder::ATypePropdef::(syntax_base::ANode::accept_abs_syntax_visitor)";
-void syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor(val_t p0, val_t p1){
-  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___mmbuilder;
-  fra.me.line = 1243;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor;
-  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/mmbuilder.nit:1243 */
-  fra.me.REG[2] = fra.me.REG[0];
-  fra.me.REG[3] = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:1245 */
-  fra.me.REG[2] = ATTR_syntax___mmbuilder___ATypePropdef____prop(fra.me.REG[2]);
-  CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* syntax/mmbuilder.nit:1246 */
-  CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_abs_syntax_visitor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:1247 */
-  CALL_syntax___syntax_base___AbsSyntaxVisitor___local_property__eq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___MethidAccumulator___name[] = "mmbuilder::MethidAccumulator::name";
-val_t syntax___mmbuilder___MethidAccumulator___name(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___mmbuilder;
-  fra.me.line = 1254;
-  fra.me.meth = LOCATE_syntax___mmbuilder___MethidAccumulator___name;
-  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/mmbuilder.nit:1254 */
-  REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_name", LOCATE_syntax___mmbuilder, 1254);
-  }
-  fra.me.REG[0] = ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_syntax___mmbuilder___MethidAccumulator___visit[] = "mmbuilder::MethidAccumulator::(parser_nodes::Visitor::visit)";
-void syntax___mmbuilder___MethidAccumulator___visit(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___mmbuilder;
-  fra.me.line = 1255;
-  fra.me.meth = LOCATE_syntax___mmbuilder___MethidAccumulator___visit;
-  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/mmbuilder.nit:1257 */
-  REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_parser___parser_nodes___Token, ID_parser___parser_nodes___Token)) /*cast Token*/;
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:1258 */
-    REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0])!=NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      nit_abort("Uninitialized attribute %s", "_name", LOCATE_syntax___mmbuilder, 1258);
-    }
-    fra.me.REG[2] = ATTR_syntax___mmbuilder___MethidAccumulator____name(fra.me.REG[0]);
-    fra.me.REG[3] = CALL_parser___parser_nodes___Token___text(fra.me.REG[1])(fra.me.REG[1]);
-    CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  } else {
-    /* syntax/mmbuilder.nit:1260 */
-    CALL_parser___parser_nodes___ANode___visit_all(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  }
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AMethid___name[] = "mmbuilder::AMethid::(syntax_base::AMethid::name)";
-val_t syntax___mmbuilder___AMethid___name(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1266;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AMethid___name;
-  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/mmbuilder.nit:1266 */
-  fra.me.REG[0] = ATTR_syntax___mmbuilder___AMethid____name(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_syntax___mmbuilder___AMethid___accept_property_builder[] = "mmbuilder::AMethid::(mmbuilder::ANode::accept_property_builder)";
-void syntax___mmbuilder___AMethid___accept_property_builder(val_t p0, val_t p1){
-  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___mmbuilder;
-  fra.me.line = 1268;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AMethid___accept_property_builder;
-  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/mmbuilder.nit:1268 */
-  fra.me.REG[2] = fra.me.REG[0];
-  /* syntax/mmbuilder.nit:1270 */
-  fra.me.REG[3] = NEW_MethidAccumulator_parser___parser_nodes___Visitor___init();
-  /* syntax/mmbuilder.nit:1271 */
-  CALL_parser___parser_nodes___Visitor___enter_visit(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* syntax/mmbuilder.nit:1272 */
-  fra.me.REG[3] = CALL_syntax___mmbuilder___MethidAccumulator___name(fra.me.REG[3])(fra.me.REG[3]);
-  fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-  fra.me.REG[3] = CALL_symbol___String___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
-  ATTR_syntax___mmbuilder___AMethid____name(fra.me.REG[2]) = fra.me.REG[3];
-  /* syntax/mmbuilder.nit:1273 */
-  CALL_SUPER_syntax___mmbuilder___AMethid___accept_property_builder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ASignature___accept_property_verifier[] = "mmbuilder::ASignature::(mmbuilder::ANode::accept_property_verifier)";
-void syntax___mmbuilder___ASignature___accept_property_verifier(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t tmp;
-        static val_t once_value_2; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1278;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ASignature___accept_property_verifier;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 8;
-  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[0] = p0;
-  fra.me.REG[1] = p1;
-  /* syntax/mmbuilder.nit:1278 */
-  fra.me.REG[2] = fra.me.REG[0];
-  fra.me.REG[3] = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:1280 */
-  CALL_SUPER_syntax___mmbuilder___ASignature___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:1281 */
-  fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-  REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:1282 */
-    goto label1;
-  } else {
-    /* syntax/mmbuilder.nit:1283 */
-    fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-    fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
-    REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
-    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-    if (UNTAG_Bool(REGB0)) {
-      /* syntax/mmbuilder.nit:1284 */
-      fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-      fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
-      fra.me.REG[1] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[1])(fra.me.REG[1]);
-      fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-      fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[4])(fra.me.REG[4]);
-      fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
-      REGB0 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[1],fra.me.REG[4]));
-      if (UNTAG_Bool(REGB0)) {
-      } else {
-        REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-        if (UNTAG_Bool(REGB1)) {
-          REGB1 = TAG_Bool(0);
-          REGB0 = REGB1;
-        } else {
-          REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-          REGB0 = REGB1;
-        }
-      }
-      REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-      if (UNTAG_Bool(REGB0)) {
-        REGB0 = TAG_Bool(1);
-      } else {
-        fra.me.REG[4] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
-        REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-        if (UNTAG_Bool(REGB1)) {
-        } else {
-          REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-          if (UNTAG_Bool(REGB2)) {
-            REGB2 = TAG_Bool(0);
-            REGB1 = REGB2;
-          } else {
-            REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
-            REGB1 = REGB2;
-          }
-        }
-        REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-        REGB0 = REGB1;
-      }
-      if (UNTAG_Bool(REGB0)) {
-        /* syntax/mmbuilder.nit:1285 */
-        fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-        fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[4])(fra.me.REG[4]);
-        fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[4])(fra.me.REG[4]);
-        if (!once_value_2) {
-          fra.me.REG[1] = BOX_NativeString("Syntax error: untyped parameter.");
-          REGB0 = TAG_Int(32);
-          fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0);
-          once_value_2 = fra.me.REG[1];
-          register_static_object(&once_value_2);
-        } else fra.me.REG[1] = once_value_2;
-        fra.me.REG[1] = fra.me.REG[1];
-        CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[1]);
-        /* syntax/mmbuilder.nit:1286 */
-        goto label1;
-      }
-    } else {
-      /* syntax/mmbuilder.nit:1288 */
-      fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-      fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]);
-      REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
-      REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-      if (UNTAG_Bool(REGB0)) {
-        REGB0 = TAG_Bool(1);
-      } else {
-        fra.me.REG[1] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
-        REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-        if (UNTAG_Bool(REGB1)) {
-        } else {
-          REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-          if (UNTAG_Bool(REGB2)) {
-            REGB2 = TAG_Bool(0);
-            REGB1 = REGB2;
-          } else {
-            REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
-            REGB1 = REGB2;
-          }
-        }
-        REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-        REGB0 = REGB1;
-      }
-      if (UNTAG_Bool(REGB0)) {
-        /* syntax/mmbuilder.nit:1289 */
-        fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
-        /* syntax/mmbuilder.nit:1290 */
-        fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-        fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[4])(fra.me.REG[4]);
-        /* ../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[4])!=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[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 */
-          REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=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[4]);
-          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[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
-            /* syntax/mmbuilder.nit:1291 */
-            fra.me.REG[7] = CALL_syntax___mmbuilder___AParam___stype(fra.me.REG[6])(fra.me.REG[6]);
-            REGB1 = TAG_Bool(fra.me.REG[7]!=NIT_NULL);
-            if (UNTAG_Bool(REGB1)) {
-            } else {
-              nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1291);
-            }
-            fra.me.REG[6] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[6])(fra.me.REG[6]);
-            fra.me.REG[6] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
-            fra.me.REG[6] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[7], fra.me.REG[6]);
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-            /* ../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 label3;
-          }
-        }
-        label3: while(0);
-        /* syntax/mmbuilder.nit:1293 */
-        fra.me.REG[0] = NIT_NULL;
-        /* syntax/mmbuilder.nit:1294 */
-        fra.me.REG[5] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
-        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)) {
-          /* syntax/mmbuilder.nit:1295 */
-          fra.me.REG[2] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[2])(fra.me.REG[2]);
-          REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-          if (UNTAG_Bool(REGB0)) {
-            nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1295);
-          }
-          fra.me.REG[2] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-          fra.me.REG[0] = fra.me.REG[2];
-          /* syntax/mmbuilder.nit:1296 */
-          REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-          if (UNTAG_Bool(REGB0)) {
-          } else {
-            REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-            if (UNTAG_Bool(REGB1)) {
-              REGB1 = TAG_Bool(0);
-              REGB0 = REGB1;
-            } else {
-              REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
-              REGB0 = REGB1;
-            }
-          }
-          if (UNTAG_Bool(REGB0)) {
-            /* syntax/mmbuilder.nit:1297 */
-            fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-            REGB0 = TAG_Bool(1);
-            CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
-            /* syntax/mmbuilder.nit:1298 */
-            goto label1;
-          }
-        }
-        /* syntax/mmbuilder.nit:1301 */
-        fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-        fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
-        fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
-        fra.me.REG[5] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[1], fra.me.REG[0], fra.me.REG[5]);
-        CALL_syntax___mmbuilder___SignatureBuilder___signature__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
-        /* syntax/mmbuilder.nit:1302 */
-        fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-        REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[5])(fra.me.REG[5]);
-        REGB1 = TAG_Int(0);
-        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:243 */
-        REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-        /* syntax/mmbuilder.nit:1302 */
-        if (UNTAG_Bool(REGB1)) {
-          /* syntax/mmbuilder.nit:1303 */
-          fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-          fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[5])(fra.me.REG[5]);
-          fra.me.REG[2] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-          REGB1 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[2])(fra.me.REG[2]);
-          REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-          if (UNTAG_Bool(REGB0)) {
-            nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1303);
-          }
-          CALL_metamodel___vararg___MMSignature___vararg_rank__eq(fra.me.REG[5])(fra.me.REG[5], REGB1);
-        }
-        /* syntax/mmbuilder.nit:1305 */
-        fra.me.REG[5] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-        fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[5])(fra.me.REG[5]);
-        /* ../lib/standard/collection/array.nit:270 */
-        REGB1 = TAG_Int(0);
-        /* ../lib/standard/collection/array.nit:271 */
-        REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
-        if (UNTAG_Bool(REGB0)) {
-        } else {
-          nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
-        }
-        REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-        /* ../lib/standard/collection/array.nit:272 */
-        fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-        /* ../lib/standard/collection/array.nit:273 */
-        while(1) {
-          /* ../lib/standard/collection/array.nit:24 */
-          REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=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[5]);
-          REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
-          if (UNTAG_Bool(REGB2)) {
-          } else {
-            nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-          }
-          /* ../lib/standard/kernel.nit:242 */
-          REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
-          /* ../lib/standard/collection/array.nit:273 */
-          if (UNTAG_Bool(REGB0)) {
-            /* ../lib/standard/collection/array.nit:274 */
-            REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-            if (UNTAG_Bool(REGB0)) {
-              nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
-            }
-            /* ../lib/standard/collection/array.nit:725 */
-            fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB1)];
-            /* syntax/mmbuilder.nit:1306 */
-            fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-            fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
-            REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-            if (UNTAG_Bool(REGB0)) {
-              nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1306);
-            }
-            fra.me.REG[1] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
-            fra.me.REG[0] = CALL_syntax___syntax_base___AClosureDecl___variable(fra.me.REG[0])(fra.me.REG[0]);
-            fra.me.REG[0] = CALL_syntax___syntax_base___ClosureVariable___closure(fra.me.REG[0])(fra.me.REG[0]);
-            CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-            /* ../lib/standard/collection/array.nit:275 */
-            REGB0 = TAG_Int(1);
-            /* ../lib/standard/kernel.nit:245 */
-            REGB0 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB0));
-            /* ../lib/standard/collection/array.nit:275 */
-            REGB1 = REGB0;
-          } else {
-            /* ../lib/standard/collection/array.nit:273 */
-            goto label4;
-          }
-        }
-        label4: while(0);
-      }
-    }
-  }
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___ASignature___check_visibility[] = "mmbuilder::ASignature::check_visibility";
-void syntax___mmbuilder___ASignature___check_visibility(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 tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1311;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ASignature___check_visibility;
-  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/mmbuilder.nit:1314 */
-  fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
-  REGB1 = TAG_Int(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:243 */
-  REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* syntax/mmbuilder.nit:1314 */
-  if (UNTAG_Bool(REGB1)) {
-    goto label1;
-  }
-  /* syntax/mmbuilder.nit:1315 */
-  fra.me.REG[3] = CALL_parser___parser_nodes___ASignature___n_params(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___ASignature___check_visibility_2));
-  /* syntax/mmbuilder.nit:1318 */
-  fra.me.REG[3] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]);
-  REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      REGB0 = TAG_Bool(0);
-      REGB1 = REGB0;
-    } else {
-      REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
-      REGB1 = REGB0;
-    }
-  }
-  REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-  if (UNTAG_Bool(REGB1)) {
-    fra.me.REG[0] = CALL_parser___parser_nodes___ASignature___n_type(fra.me.REG[0])(fra.me.REG[0]);
-    REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1318);
-    }
-    CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
-  }
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-  void OC_syntax___mmbuilder___ASignature___check_visibility_2(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;
-    val_t REGB1;
-    fun_t CREG[1];
-    val_t tmp;
-    fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-    fra.me.file = LOCATE_syntax___mmbuilder;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_syntax___mmbuilder___ASignature___check_visibility;
-    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;
-    /* syntax/mmbuilder.nit:1316 */
-    fra.me.REG[1] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[0])(fra.me.REG[0]);
-    REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        REGB1 = TAG_Bool(0);
-        REGB0 = REGB1;
-      } else {
-        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
-        REGB0 = REGB1;
-      }
-    }
-    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-    if (UNTAG_Bool(REGB0)) {
-      fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[0])(fra.me.REG[0]);
-      REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-      if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1316);
-      }
-      CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], closctx->REG[2]);
-    }
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-static const char LOCATE_syntax___mmbuilder___AParam___position[] = "mmbuilder::AParam::(syntax_base::AParam::position)";
-val_t syntax___mmbuilder___AParam___position(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___mmbuilder;
-  fra.me.line = 1323;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AParam___position;
-  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/mmbuilder.nit:1323 */
-  REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_position", LOCATE_syntax___mmbuilder, 1323);
-  }
-  REGB0 = ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___mmbuilder___AParam___variable[] = "mmbuilder::AParam::(syntax_base::AParam::variable)";
-val_t syntax___mmbuilder___AParam___variable(val_t p0){
-  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___mmbuilder;
-  fra.me.line = 1325;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AParam___variable;
-  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;
-  /* syntax/mmbuilder.nit:1325 */
-  fra.me.REG[1] = fra.me.REG[0];
-  fra.me.REG[1] = ATTR_syntax___mmbuilder___AParam____variable(fra.me.REG[1]);
-  REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1325);
-  }
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-static const char LOCATE_syntax___mmbuilder___AParam___stype[] = "mmbuilder::AParam::stype";
-val_t syntax___mmbuilder___AParam___stype(val_t p0){
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1328;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AParam___stype;
-  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/mmbuilder.nit:1328 */
-  fra.me.REG[0] = ATTR_syntax___mmbuilder___AParam____stype(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_syntax___mmbuilder___AParam___stype__eq[] = "mmbuilder::AParam::stype=";
-void syntax___mmbuilder___AParam___stype__eq(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___mmbuilder;
-  fra.me.line = 1328;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AParam___stype__eq;
-  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/mmbuilder.nit:1328 */
-  ATTR_syntax___mmbuilder___AParam____stype(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AParam___accept_property_verifier[] = "mmbuilder::AParam::(mmbuilder::ANode::accept_property_verifier)";
-void syntax___mmbuilder___AParam___accept_property_verifier(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t REGB3;
-  val_t tmp;
-            static val_t once_value_2; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1331;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AParam___accept_property_verifier;
-  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;
-  /* syntax/mmbuilder.nit:1331 */
-  fra.me.REG[2] = fra.me.REG[0];
-  fra.me.REG[3] = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:1333 */
-  CALL_SUPER_syntax___mmbuilder___AParam___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:1334 */
-  fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-  fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[1])(fra.me.REG[1]);
-  /* ../lib/standard/collection/array.nit:24 */
-  REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=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[1]);
-  /* syntax/mmbuilder.nit:1334 */
-  ATTR_syntax___mmbuilder___AParam____position(fra.me.REG[2]) = REGB0;
-  /* syntax/mmbuilder.nit:1335 */
-  fra.me.REG[1] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[1] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_id(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[0] = NEW_ParamVariable_syntax___syntax_base___ParamVariable___init(fra.me.REG[1], fra.me.REG[0]);
-  ATTR_syntax___mmbuilder___AParam____variable(fra.me.REG[2]) = fra.me.REG[0];
-  /* syntax/mmbuilder.nit:1336 */
-  fra.me.REG[0] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-  fra.me.REG[0] = CALL_syntax___mmbuilder___SignatureBuilder___params(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* syntax/mmbuilder.nit:1337 */
-  fra.me.REG[0] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-  fra.me.REG[0] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-  /* syntax/mmbuilder.nit:1338 */
-  fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(0);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:1339 */
-    fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_type(fra.me.REG[2])(fra.me.REG[2]);
-    REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1339);
-    }
-    fra.me.REG[0] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
-    /* syntax/mmbuilder.nit:1340 */
-    REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-    } else {
-      REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-      if (UNTAG_Bool(REGB1)) {
-        REGB1 = TAG_Bool(0);
-        REGB0 = REGB1;
-      } else {
-        REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
-        REGB0 = REGB1;
-      }
-    }
-    if (UNTAG_Bool(REGB0)) {
-      /* syntax/mmbuilder.nit:1341 */
-      fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-      REGB0 = TAG_Bool(1);
-      CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured__eq(fra.me.REG[1])(fra.me.REG[1], REGB0);
-      /* syntax/mmbuilder.nit:1342 */
-      goto label1;
-    }
-    /* syntax/mmbuilder.nit:1344 */
-    fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-    fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[1])(fra.me.REG[1]);
-    /* ../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[1])!=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[1]);
-    /* ../lib/standard/collection/array.nit:272 */
-    fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
-    /* ../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[1])!=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[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: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/mmbuilder.nit:1345 */
-        CALL_syntax___mmbuilder___AParam___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
-        /* syntax/mmbuilder.nit:1346 */
-        REGB1 = CALL_syntax___mmbuilder___AParam___is_vararg(fra.me.REG[2])(fra.me.REG[2]);
-        if (UNTAG_Bool(REGB1)) {
-          /* syntax/mmbuilder.nit:1347 */
-          fra.me.REG[6] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-          REGB1 = CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank(fra.me.REG[6])(fra.me.REG[6]);
-          REGB2 = TAG_Int(1);
-          /* ../lib/standard/kernel.nit:246 */
-          REGB2 = TAG_Int(-UNTAG_Int(REGB2));
-          /* syntax/mmbuilder.nit:1347 */
-          REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
-          if (UNTAG_Bool(REGB3)) {
-          } else {
-            /* ../lib/standard/kernel.nit:237 */
-            REGB2 = TAG_Bool((REGB1)==(REGB2));
-            /* syntax/mmbuilder.nit:1347 */
-            REGB3 = REGB2;
-          }
-          if (UNTAG_Bool(REGB3)) {
-            /* syntax/mmbuilder.nit:1348 */
-            fra.me.REG[6] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-            REGB3 = CALL_syntax___syntax_base___AParam___position(fra.me.REG[5])(fra.me.REG[5]);
-            CALL_syntax___mmbuilder___SignatureBuilder___vararg_rank__eq(fra.me.REG[6])(fra.me.REG[6], REGB3);
-          } else {
-            /* syntax/mmbuilder.nit:1350 */
-            if (!once_value_2) {
-              fra.me.REG[6] = BOX_NativeString("Error: A vararg parameter is already defined.");
-              REGB3 = TAG_Int(45);
-              fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB3);
-              once_value_2 = fra.me.REG[6];
-              register_static_object(&once_value_2);
-            } else fra.me.REG[6] = once_value_2;
-            fra.me.REG[6] = fra.me.REG[6];
-            CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[6]);
-          }
-          /* syntax/mmbuilder.nit:1352 */
-          fra.me.REG[6] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_array(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
-          fra.me.REG[0] = fra.me.REG[6];
-        }
-        /* syntax/mmbuilder.nit:1354 */
-        fra.me.REG[5] = CALL_syntax___syntax_base___AParam___variable(fra.me.REG[5])(fra.me.REG[5]);
-        CALL_syntax___syntax_base___Variable___stype__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
-        /* ../lib/standard/collection/array.nit:275 */
-        REGB3 = TAG_Int(1);
-        /* ../lib/standard/kernel.nit:245 */
-        REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
-        /* ../lib/standard/collection/array.nit:275 */
-        REGB0 = REGB3;
-      } else {
-        /* ../lib/standard/collection/array.nit:273 */
-        goto label3;
-      }
-    }
-    label3: while(0);
-    /* syntax/mmbuilder.nit:1356 */
-    fra.me.REG[3] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-    fra.me.REG[3] = CALL_syntax___mmbuilder___SignatureBuilder___untyped_params(fra.me.REG[3])(fra.me.REG[3]);
-    CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[3])(fra.me.REG[3]);
-  }
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AParam___is_vararg[] = "mmbuilder::AParam::is_vararg";
-val_t syntax___mmbuilder___AParam___is_vararg(val_t p0){
-  struct {struct stack_frame_t me;} 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___mmbuilder;
-  fra.me.line = 1360;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AParam___is_vararg;
-  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/mmbuilder.nit:1360 */
-  fra.me.REG[0] = CALL_parser___parser_nodes___AParam___n_dotdotdot(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(0);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___mmbuilder___AClosureDecl___position[] = "mmbuilder::AClosureDecl::(syntax_base::AClosureDecl::position)";
-val_t syntax___mmbuilder___AClosureDecl___position(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___mmbuilder;
-  fra.me.line = 1364;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___position;
-  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/mmbuilder.nit:1364 */
-  REGB0 = TAG_Bool(ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_position", LOCATE_syntax___mmbuilder, 1364);
-  }
-  REGB0 = ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_syntax___mmbuilder___AClosureDecl___variable[] = "mmbuilder::AClosureDecl::(syntax_base::AClosureDecl::variable)";
-val_t syntax___mmbuilder___AClosureDecl___variable(val_t p0){
-  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___mmbuilder;
-  fra.me.line = 1366;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___variable;
-  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;
-  /* syntax/mmbuilder.nit:1366 */
-  fra.me.REG[1] = fra.me.REG[0];
-  fra.me.REG[1] = ATTR_syntax___mmbuilder___AClosureDecl____variable(fra.me.REG[1]);
-  REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Cast failed", NULL, LOCATE_syntax___mmbuilder, 1366);
-  }
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-static const char LOCATE_syntax___mmbuilder___AClosureDecl___accept_property_verifier[] = "mmbuilder::AClosureDecl::(mmbuilder::ANode::accept_property_verifier)";
-void syntax___mmbuilder___AClosureDecl___accept_property_verifier(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[10];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t tmp;
-    static val_t once_value_2; /* Once value */
-  static val_t once_value_3; /* Once value */
-    static val_t once_value_4; /* Once value */
-        static val_t once_value_5; /* Once value */
-        static val_t once_value_6; /* Once value */
-        static val_t once_value_7; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1369;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AClosureDecl___accept_property_verifier;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 11;
-  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[9] = NIT_NULL;
-  fra.me.REG[10] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* syntax/mmbuilder.nit:1369 */
-  fra.me.REG[2] = fra.me.REG[0];
-  fra.me.REG[3] = fra.me.REG[1];
-  /* syntax/mmbuilder.nit:1371 */
-  fra.me.REG[4] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-  /* syntax/mmbuilder.nit:1372 */
-  fra.me.REG[5] = NEW_SignatureBuilder_syntax___mmbuilder___SignatureBuilder___init();
-  CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
-  /* syntax/mmbuilder.nit:1373 */
-  CALL_SUPER_syntax___mmbuilder___AClosureDecl___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:1374 */
-  fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-  REGB0 = CALL_syntax___mmbuilder___SignatureBuilder___has_error_occured(fra.me.REG[1])(fra.me.REG[1]);
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:1375 */
-    goto label1;
-  }
-  /* syntax/mmbuilder.nit:1377 */
-  fra.me.REG[1] = CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder(fra.me.REG[3])(fra.me.REG[3]);
-  fra.me.REG[1] = CALL_syntax___mmbuilder___SignatureBuilder___signature(fra.me.REG[1])(fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:1378 */
-  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(0);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:1379 */
-    fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
-    fra.me.REG[5] = CALL_syntax___syntax_base___AbsSyntaxVisitor___local_class(fra.me.REG[3])(fra.me.REG[3]);
-    fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[5])(fra.me.REG[5]);
-    fra.me.REG[5] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[0], NIT_NULL, fra.me.REG[5]);
-    fra.me.REG[1] = fra.me.REG[5];
-  }
-  /* syntax/mmbuilder.nit:1381 */
-  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1381);
-  }
-  fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[1])(fra.me.REG[1]);
-  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)) {
-    fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDecl___n_kwbreak(fra.me.REG[2])(fra.me.REG[2]);
-    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));
-  } else {
-    REGB1 = TAG_Bool(0);
-    REGB0 = REGB1;
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:1382 */
-    if (!once_value_2) {
-      fra.me.REG[5] = BOX_NativeString("Syntax Error: A break block cannot have a return value.");
-      REGB0 = TAG_Int(55);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-      once_value_2 = fra.me.REG[5];
-      register_static_object(&once_value_2);
-    } else fra.me.REG[5] = once_value_2;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[5]);
-  }
-  /* syntax/mmbuilder.nit:1386 */
-  fra.me.REG[5] = NEW_Array_standard___collection___array___Array___init();
-  fra.me.REG[0] = CALL_syntax___syntax_base___AbsSyntaxVisitor___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
-  fra.me.REG[0] = CALL_metamodel___inheritance___MMModule___type_any(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[0] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[5], NIT_NULL, fra.me.REG[0]);
-  /* syntax/mmbuilder.nit:1387 */
-  if (!once_value_3) {
-    if (!once_value_4) {
-      fra.me.REG[5] = BOX_NativeString("break");
-      REGB0 = TAG_Int(5);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-      once_value_4 = fra.me.REG[5];
-      register_static_object(&once_value_4);
-    } else fra.me.REG[5] = once_value_4;
-    fra.me.REG[5] = fra.me.REG[5];
-    fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
-    once_value_3 = fra.me.REG[5];
-    register_static_object(&once_value_3);
-  } else fra.me.REG[5] = once_value_3;
-  fra.me.REG[5] = fra.me.REG[5];
-  REGB0 = TAG_Bool(0);
-  REGB1 = TAG_Bool(1);
-  fra.me.REG[0] = NEW_MMClosure_metamodel___static_type___MMClosure___init(fra.me.REG[5], fra.me.REG[0], REGB0, REGB1);
-  /* syntax/mmbuilder.nit:1388 */
-  REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1388);
-  }
-  fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
-  /* syntax/mmbuilder.nit:1390 */
-  fra.me.REG[0] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[0] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[0])(fra.me.REG[0]);
-  /* syntax/mmbuilder.nit:1391 */
-  fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDecl___n_kwbreak(fra.me.REG[2])(fra.me.REG[2]);
-  REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      REGB0 = TAG_Bool(0);
-      REGB1 = REGB0;
-    } else {
-      REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
-      REGB1 = REGB0;
-    }
-  }
-  REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
-  fra.me.REG[5] = CALL_parser___parser_nodes___AClosureDecl___n_expr(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
-    if (UNTAG_Bool(REGB2)) {
-      REGB2 = TAG_Bool(0);
-      REGB0 = REGB2;
-    } else {
-      REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
-      REGB0 = REGB2;
-    }
-  }
-  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
-  fra.me.REG[1] = NEW_MMClosure_metamodel___static_type___MMClosure___init(fra.me.REG[0], fra.me.REG[1], REGB1, REGB0);
-  /* syntax/mmbuilder.nit:1392 */
-  fra.me.REG[5] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
-  /* ../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[5])!=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[5]);
-  /* ../lib/standard/collection/array.nit:272 */
-  fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-  /* ../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[5])!=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[5]);
-    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[6]==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[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
-      /* syntax/mmbuilder.nit:1393 */
-      fra.me.REG[8] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[7])(fra.me.REG[7]);
-      fra.me.REG[8] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[8])(fra.me.REG[8]);
-      REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[8],fra.me.REG[0]));
-      if (UNTAG_Bool(REGB1)) {
-      } else {
-        REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[0]);
-        REGB1 = REGB2;
-      }
-      if (UNTAG_Bool(REGB1)) {
-        /* syntax/mmbuilder.nit:1394 */
-        fra.me.REG[8] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
-        REGB1 = TAG_Int(5);
-        fra.me.REG[9] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
-        if (!once_value_5) {
-          fra.me.REG[10] = BOX_NativeString("Error: A closure '!");
-          REGB1 = TAG_Int(19);
-          fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB1);
-          once_value_5 = fra.me.REG[10];
-          register_static_object(&once_value_5);
-        } else fra.me.REG[10] = once_value_5;
-        fra.me.REG[10] = fra.me.REG[10];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
-        fra.me.REG[10] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
-        if (!once_value_6) {
-          fra.me.REG[10] = BOX_NativeString("' already defined at ");
-          REGB1 = TAG_Int(21);
-          fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB1);
-          once_value_6 = fra.me.REG[10];
-          register_static_object(&once_value_6);
-        } else fra.me.REG[10] = once_value_6;
-        fra.me.REG[10] = fra.me.REG[10];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
-        fra.me.REG[7] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[7])(fra.me.REG[7]);
-        fra.me.REG[7] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[7])(fra.me.REG[7]);
-        fra.me.REG[10] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
-        fra.me.REG[10] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[10])(fra.me.REG[10]);
-        fra.me.REG[10] = CALL_location___Location___relative_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[10]);
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
-        if (!once_value_7) {
-          fra.me.REG[10] = BOX_NativeString(".");
-          REGB1 = TAG_Int(1);
-          fra.me.REG[10] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[10])(fra.me.REG[10], REGB1);
-          once_value_7 = fra.me.REG[10];
-          register_static_object(&once_value_7);
-        } else fra.me.REG[10] = once_value_7;
-        fra.me.REG[10] = fra.me.REG[10];
-        CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[9])(fra.me.REG[9], fra.me.REG[10]);
-        fra.me.REG[9] = CALL_standard___string___Object___to_s(fra.me.REG[9])(fra.me.REG[9]);
-        CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8], fra.me.REG[9]);
-        /* syntax/mmbuilder.nit:1395 */
-        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 label8;
-    }
-  }
-  label8: while(0);
-  /* syntax/mmbuilder.nit:1398 */
-  CALL_syntax___mmbuilder___PropertyVerifierVisitor___signature_builder__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* syntax/mmbuilder.nit:1399 */
-  fra.me.REG[3] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
-  /* ../lib/standard/collection/array.nit:24 */
-  REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=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[3]);
-  /* syntax/mmbuilder.nit:1399 */
-  ATTR_syntax___mmbuilder___AClosureDecl____position(fra.me.REG[2]) = REGB0;
-  /* syntax/mmbuilder.nit:1400 */
-  fra.me.REG[4] = CALL_syntax___mmbuilder___SignatureBuilder___closure_decls(fra.me.REG[4])(fra.me.REG[4]);
-  CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-  /* syntax/mmbuilder.nit:1401 */
-  fra.me.REG[4] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[4] = CALL_syntax___syntax_base___Token___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
-  fra.me.REG[3] = CALL_parser___parser_nodes___AClosureDecl___n_id(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[1] = NEW_ClosureVariable_syntax___syntax_base___ClosureVariable___init(fra.me.REG[4], fra.me.REG[3], fra.me.REG[1]);
-  ATTR_syntax___mmbuilder___AClosureDecl____variable(fra.me.REG[2]) = fra.me.REG[1];
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AType___check_visibility[] = "mmbuilder::AType::check_visibility";
-void syntax___mmbuilder___AType___check_visibility(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;
-    static val_t once_value_2; /* Once value */
-    static val_t once_value_3; /* Once value */
-    static val_t once_value_4; /* Once value */
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_syntax___mmbuilder;
-  fra.me.line = 1406;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AType___check_visibility;
-  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;
-  /* syntax/mmbuilder.nit:1409 */
-  fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[2])(fra.me.REG[2]);
-  REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___visibility_level(fra.me.REG[3])(fra.me.REG[3]);
-  REGB1 = TAG_Int(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:243 */
-  REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* syntax/mmbuilder.nit:1409 */
-  if (UNTAG_Bool(REGB1)) {
-    goto label1;
-  }
-  /* syntax/mmbuilder.nit:1410 */
-  fra.me.REG[3] = CALL_syntax___syntax_base___AType___get_stype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  /* syntax/mmbuilder.nit:1411 */
-  REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-    if (UNTAG_Bool(REGB0)) {
-      REGB0 = TAG_Bool(0);
-      REGB1 = REGB0;
-    } else {
-      REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
-      REGB1 = REGB0;
-    }
-  }
-  if (UNTAG_Bool(REGB1)) {
-    goto label1;
-  }
-  /* syntax/mmbuilder.nit:1412 */
-  REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-    nit_abort("Reciever is null", NULL, LOCATE_syntax___mmbuilder, 1412);
-  }
-  fra.me.REG[3] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[3])(fra.me.REG[3]);
-  /* syntax/mmbuilder.nit:1413 */
-  fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[3])(fra.me.REG[3]);
-  REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___visibility_level(fra.me.REG[4])(fra.me.REG[4]);
-  REGB0 = TAG_Int(3);
-  REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
-  if (UNTAG_Bool(REGB2)) {
-  } else {
-    nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
-  }
-  /* ../lib/standard/kernel.nit:243 */
-  REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
-  /* syntax/mmbuilder.nit:1413 */
-  if (UNTAG_Bool(REGB0)) {
-    /* syntax/mmbuilder.nit:1414 */
-    REGB0 = TAG_Int(5);
-    fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-    if (!once_value_2) {
-      fra.me.REG[5] = BOX_NativeString("Access error: Class ");
-      REGB0 = TAG_Int(20);
-      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
-      once_value_2 = fra.me.REG[5];
-      register_static_object(&once_value_2);
-    } else fra.me.REG[5] = once_value_2;
-    fra.me.REG[5] = fra.me.REG[5];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
-    fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-    if (!once_value_3) {
-      fra.me.REG[3] = BOX_NativeString(" is private and cannot be used in the signature of the non-private property ");
-      REGB0 = TAG_Int(76);
-      fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-      once_value_3 = fra.me.REG[3];
-      register_static_object(&once_value_3);
-    } else fra.me.REG[3] = once_value_3;
-    fra.me.REG[3] = fra.me.REG[3];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-    fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-    if (!once_value_4) {
-      fra.me.REG[3] = BOX_NativeString(".");
-      REGB0 = TAG_Int(1);
-      fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-      once_value_4 = fra.me.REG[3];
-      register_static_object(&once_value_4);
-    } else fra.me.REG[3] = once_value_4;
-    fra.me.REG[3] = fra.me.REG[3];
-    CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
-    fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-    CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[4]);
-  }
-  /* syntax/mmbuilder.nit:1416 */
-  fra.me.REG[0] = CALL_parser___parser_nodes___AType___n_types(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_syntax___mmbuilder___AType___check_visibility_5));
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-  void OC_syntax___mmbuilder___AType___check_visibility_5(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_syntax___mmbuilder;
-    fra.me.line = 0;
-    fra.me.meth = LOCATE_syntax___mmbuilder___AType___check_visibility;
-    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;
-    /* syntax/mmbuilder.nit:1417 */
-    CALL_syntax___mmbuilder___AType___check_visibility(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1], closctx->REG[2]);
-    stack_frame_head = fra.me.prev;
-    return;
-  }
-static const char LOCATE_syntax___mmbuilder___AExpr___accept_class_builder[] = "mmbuilder::AExpr::(mmbuilder::ANode::accept_class_builder)";
-void syntax___mmbuilder___AExpr___accept_class_builder(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___mmbuilder;
-  fra.me.line = 1423;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_class_builder;
-  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;
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AExpr___accept_property_builder[] = "mmbuilder::AExpr::(mmbuilder::ANode::accept_property_builder)";
-void syntax___mmbuilder___AExpr___accept_property_builder(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___mmbuilder;
-  fra.me.line = 1424;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_property_builder;
-  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;
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AExpr___accept_property_verifier[] = "mmbuilder::AExpr::(mmbuilder::ANode::accept_property_verifier)";
-void syntax___mmbuilder___AExpr___accept_property_verifier(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___mmbuilder;
-  fra.me.line = 1425;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___accept_property_verifier;
-  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;
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_syntax___mmbuilder___AExpr___get_easy_stype[] = "mmbuilder::AExpr::get_easy_stype";
-val_t syntax___mmbuilder___AExpr___get_easy_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___mmbuilder;
-  fra.me.line = 1427;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AExpr___get_easy_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/mmbuilder.nit:1427 */
-  fra.me.REG[1] = NIT_NULL;
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-static const char LOCATE_syntax___mmbuilder___ABoolExpr___get_easy_stype[] = "mmbuilder::ABoolExpr::(mmbuilder::AExpr::get_easy_stype)";
-val_t syntax___mmbuilder___ABoolExpr___get_easy_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___mmbuilder;
-  fra.me.line = 1431;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ABoolExpr___get_easy_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/mmbuilder.nit:1431 */
-  fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_bool(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___mmbuilder___AStringExpr___get_easy_stype[] = "mmbuilder::AStringExpr::(mmbuilder::AExpr::get_easy_stype)";
-val_t syntax___mmbuilder___AStringExpr___get_easy_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___mmbuilder;
-  fra.me.line = 1435;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AStringExpr___get_easy_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/mmbuilder.nit:1435 */
-  fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_string(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___mmbuilder___ACharExpr___get_easy_stype[] = "mmbuilder::ACharExpr::(mmbuilder::AExpr::get_easy_stype)";
-val_t syntax___mmbuilder___ACharExpr___get_easy_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___mmbuilder;
-  fra.me.line = 1439;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ACharExpr___get_easy_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/mmbuilder.nit:1439 */
-  fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_char(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___mmbuilder___AIntExpr___get_easy_stype[] = "mmbuilder::AIntExpr::(mmbuilder::AExpr::get_easy_stype)";
-val_t syntax___mmbuilder___AIntExpr___get_easy_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___mmbuilder;
-  fra.me.line = 1443;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AIntExpr___get_easy_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/mmbuilder.nit:1443 */
-  fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_int(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___mmbuilder___AFloatExpr___get_easy_stype[] = "mmbuilder::AFloatExpr::(mmbuilder::AExpr::get_easy_stype)";
-val_t syntax___mmbuilder___AFloatExpr___get_easy_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___mmbuilder;
-  fra.me.line = 1447;
-  fra.me.meth = LOCATE_syntax___mmbuilder___AFloatExpr___get_easy_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/mmbuilder.nit:1447 */
-  fra.me.REG[1] = CALL_syntax___syntax_base___AbsSyntaxVisitor___type_float(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___mmbuilder___ANewExpr___get_easy_stype[] = "mmbuilder::ANewExpr::(mmbuilder::AExpr::get_easy_stype)";
-val_t syntax___mmbuilder___ANewExpr___get_easy_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___mmbuilder;
-  fra.me.line = 1451;
-  fra.me.meth = LOCATE_syntax___mmbuilder___ANewExpr___get_easy_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/mmbuilder.nit:1451 */
-  fra.me.REG[0] = CALL_parser___parser_nodes___ANewExpr___n_type(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[1] = CALL_syntax___syntax_base___AType___get_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];
-}