use nitg to bootstrap; drop bootstrap of nitc
[nit.git] / c_src / c_tools._sep.c
diff --git a/c_src/c_tools._sep.c b/c_src/c_tools._sep.c
deleted file mode 100644 (file)
index 5032892..0000000
+++ /dev/null
@@ -1,752 +0,0 @@
-/* This C file is generated by NIT to compile module c_tools. */
-#include "c_tools._sep.h"
-static const char LOCATE_c_tools___CCompilationUnit___header_c_base[] = "c_tools::CCompilationUnit::header_c_base";
-val_t c_tools___CCompilationUnit___header_c_base(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_c_tools;
-  fra.me.line = 24;
-  fra.me.meth = LOCATE_c_tools___CCompilationUnit___header_c_base;
-  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;
-  /* c_tools.nit:24 */
-  REGB0 = TAG_Bool(ATTR_c_tools___CCompilationUnit_____atheader_c_base(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "@header_c_base", LOCATE_c_tools, 24);
-  }
-  fra.me.REG[0] = ATTR_c_tools___CCompilationUnit_____atheader_c_base(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_c_tools___CCompilationUnit___header_c_base__eq[] = "c_tools::CCompilationUnit::header_c_base=";
-void c_tools___CCompilationUnit___header_c_base__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_c_tools;
-  fra.me.line = 24;
-  fra.me.meth = LOCATE_c_tools___CCompilationUnit___header_c_base__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;
-  /* c_tools.nit:24 */
-  ATTR_c_tools___CCompilationUnit_____atheader_c_base(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_c_tools___CCompilationUnit___header_custom[] = "c_tools::CCompilationUnit::header_custom";
-val_t c_tools___CCompilationUnit___header_custom(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_c_tools;
-  fra.me.line = 28;
-  fra.me.meth = LOCATE_c_tools___CCompilationUnit___header_custom;
-  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;
-  /* c_tools.nit:28 */
-  REGB0 = TAG_Bool(ATTR_c_tools___CCompilationUnit_____atheader_custom(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "@header_custom", LOCATE_c_tools, 28);
-  }
-  fra.me.REG[0] = ATTR_c_tools___CCompilationUnit_____atheader_custom(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_c_tools___CCompilationUnit___header_custom__eq[] = "c_tools::CCompilationUnit::header_custom=";
-void c_tools___CCompilationUnit___header_custom__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_c_tools;
-  fra.me.line = 28;
-  fra.me.meth = LOCATE_c_tools___CCompilationUnit___header_custom__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;
-  /* c_tools.nit:28 */
-  ATTR_c_tools___CCompilationUnit_____atheader_custom(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_c_tools___CCompilationUnit___header_c_types[] = "c_tools::CCompilationUnit::header_c_types";
-val_t c_tools___CCompilationUnit___header_c_types(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_c_tools;
-  fra.me.line = 31;
-  fra.me.meth = LOCATE_c_tools___CCompilationUnit___header_c_types;
-  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;
-  /* c_tools.nit:31 */
-  REGB0 = TAG_Bool(ATTR_c_tools___CCompilationUnit_____atheader_c_types(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "@header_c_types", LOCATE_c_tools, 31);
-  }
-  fra.me.REG[0] = ATTR_c_tools___CCompilationUnit_____atheader_c_types(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_c_tools___CCompilationUnit___header_c_types__eq[] = "c_tools::CCompilationUnit::header_c_types=";
-void c_tools___CCompilationUnit___header_c_types__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_c_tools;
-  fra.me.line = 31;
-  fra.me.meth = LOCATE_c_tools___CCompilationUnit___header_c_types__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;
-  /* c_tools.nit:31 */
-  ATTR_c_tools___CCompilationUnit_____atheader_c_types(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_c_tools___CCompilationUnit___header_decl[] = "c_tools::CCompilationUnit::header_decl";
-val_t c_tools___CCompilationUnit___header_decl(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_c_tools;
-  fra.me.line = 34;
-  fra.me.meth = LOCATE_c_tools___CCompilationUnit___header_decl;
-  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;
-  /* c_tools.nit:34 */
-  REGB0 = TAG_Bool(ATTR_c_tools___CCompilationUnit_____atheader_decl(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "@header_decl", LOCATE_c_tools, 34);
-  }
-  fra.me.REG[0] = ATTR_c_tools___CCompilationUnit_____atheader_decl(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_c_tools___CCompilationUnit___header_decl__eq[] = "c_tools::CCompilationUnit::header_decl=";
-void c_tools___CCompilationUnit___header_decl__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_c_tools;
-  fra.me.line = 34;
-  fra.me.meth = LOCATE_c_tools___CCompilationUnit___header_decl__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;
-  /* c_tools.nit:34 */
-  ATTR_c_tools___CCompilationUnit_____atheader_decl(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_c_tools___CCompilationUnit___body_decl[] = "c_tools::CCompilationUnit::body_decl";
-val_t c_tools___CCompilationUnit___body_decl(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_c_tools;
-  fra.me.line = 37;
-  fra.me.meth = LOCATE_c_tools___CCompilationUnit___body_decl;
-  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;
-  /* c_tools.nit:37 */
-  REGB0 = TAG_Bool(ATTR_c_tools___CCompilationUnit_____atbody_decl(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "@body_decl", LOCATE_c_tools, 37);
-  }
-  fra.me.REG[0] = ATTR_c_tools___CCompilationUnit_____atbody_decl(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_c_tools___CCompilationUnit___body_decl__eq[] = "c_tools::CCompilationUnit::body_decl=";
-void c_tools___CCompilationUnit___body_decl__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_c_tools;
-  fra.me.line = 37;
-  fra.me.meth = LOCATE_c_tools___CCompilationUnit___body_decl__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;
-  /* c_tools.nit:37 */
-  ATTR_c_tools___CCompilationUnit_____atbody_decl(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_c_tools___CCompilationUnit___body_custom[] = "c_tools::CCompilationUnit::body_custom";
-val_t c_tools___CCompilationUnit___body_custom(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_c_tools;
-  fra.me.line = 41;
-  fra.me.meth = LOCATE_c_tools___CCompilationUnit___body_custom;
-  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;
-  /* c_tools.nit:41 */
-  REGB0 = TAG_Bool(ATTR_c_tools___CCompilationUnit_____atbody_custom(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "@body_custom", LOCATE_c_tools, 41);
-  }
-  fra.me.REG[0] = ATTR_c_tools___CCompilationUnit_____atbody_custom(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_c_tools___CCompilationUnit___body_custom__eq[] = "c_tools::CCompilationUnit::body_custom=";
-void c_tools___CCompilationUnit___body_custom__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_c_tools;
-  fra.me.line = 41;
-  fra.me.meth = LOCATE_c_tools___CCompilationUnit___body_custom__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;
-  /* c_tools.nit:41 */
-  ATTR_c_tools___CCompilationUnit_____atbody_custom(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_c_tools___CCompilationUnit___body_impl[] = "c_tools::CCompilationUnit::body_impl";
-val_t c_tools___CCompilationUnit___body_impl(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_c_tools;
-  fra.me.line = 44;
-  fra.me.meth = LOCATE_c_tools___CCompilationUnit___body_impl;
-  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;
-  /* c_tools.nit:44 */
-  REGB0 = TAG_Bool(ATTR_c_tools___CCompilationUnit_____atbody_impl(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "@body_impl", LOCATE_c_tools, 44);
-  }
-  fra.me.REG[0] = ATTR_c_tools___CCompilationUnit_____atbody_impl(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_c_tools___CCompilationUnit___body_impl__eq[] = "c_tools::CCompilationUnit::body_impl=";
-void c_tools___CCompilationUnit___body_impl__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_c_tools;
-  fra.me.line = 44;
-  fra.me.meth = LOCATE_c_tools___CCompilationUnit___body_impl__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;
-  /* c_tools.nit:44 */
-  ATTR_c_tools___CCompilationUnit_____atbody_impl(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_c_tools___CCompilationUnit___add_local_function[] = "c_tools::CCompilationUnit::add_local_function";
-void c_tools___CCompilationUnit___add_local_function(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} 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_c_tools;
-  fra.me.line = 50;
-  fra.me.meth = LOCATE_c_tools___CCompilationUnit___add_local_function;
-  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;
-  /* c_tools.nit:52 */
-  fra.me.REG[2] = CALL_c_tools___CCompilationUnit___body_decl(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = TAG_Int(3);
-  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_1) {
-    fra.me.REG[4] = BOX_NativeString("");
-    REGB0 = TAG_Int(0);
-    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_c_tools___CFunction___signature(fra.me.REG[1])(fra.me.REG[1]);
-  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(";\n");
-    REGB0 = TAG_Int(2);
-    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_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* c_tools.nit:53 */
-  fra.me.REG[3] = CALL_c_tools___CCompilationUnit___body_impl(fra.me.REG[0])(fra.me.REG[0]);
-  if (!once_value_3) {
-    fra.me.REG[2] = BOX_NativeString("\n");
-    REGB0 = TAG_Int(1);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    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];
-  CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* c_tools.nit:54 */
-  fra.me.REG[0] = CALL_c_tools___CCompilationUnit___body_impl(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[1] = CALL_c_tools___CFunction___to_writer(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_compiling_writer___Writer___append(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_c_tools___CCompilationUnit___add_exported_function[] = "c_tools::CCompilationUnit::add_exported_function";
-void c_tools___CCompilationUnit___add_exported_function(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} 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_c_tools;
-  fra.me.line = 57;
-  fra.me.meth = LOCATE_c_tools___CCompilationUnit___add_exported_function;
-  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;
-  /* c_tools.nit:59 */
-  fra.me.REG[2] = CALL_c_tools___CCompilationUnit___header_decl(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = TAG_Int(3);
-  fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_1) {
-    fra.me.REG[4] = BOX_NativeString("");
-    REGB0 = TAG_Int(0);
-    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_c_tools___CFunction___signature(fra.me.REG[1])(fra.me.REG[1]);
-  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(";\n");
-    REGB0 = TAG_Int(2);
-    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_compiling_writer___Writer___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* c_tools.nit:60 */
-  fra.me.REG[3] = CALL_c_tools___CCompilationUnit___body_impl(fra.me.REG[0])(fra.me.REG[0]);
-  if (!once_value_3) {
-    fra.me.REG[2] = BOX_NativeString("\n");
-    REGB0 = TAG_Int(1);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    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];
-  CALL_compiling_writer___Writer___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
-  /* c_tools.nit:61 */
-  fra.me.REG[0] = CALL_c_tools___CCompilationUnit___body_impl(fra.me.REG[0])(fra.me.REG[0]);
-  fra.me.REG[1] = CALL_c_tools___CFunction___to_writer(fra.me.REG[1])(fra.me.REG[1]);
-  CALL_compiling_writer___Writer___append(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_c_tools___CCompilationUnit___compile_header_core[] = "c_tools::CCompilationUnit::compile_header_core";
-void c_tools___CCompilationUnit___compile_header_core(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_c_tools;
-  fra.me.line = 64;
-  fra.me.meth = LOCATE_c_tools___CCompilationUnit___compile_header_core;
-  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;
-  /* c_tools.nit:66 */
-  fra.me.REG[2] = CALL_c_tools___CCompilationUnit___header_c_base(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_compiling_writer___Writer___write_to_stream(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* c_tools.nit:67 */
-  fra.me.REG[2] = CALL_c_tools___CCompilationUnit___header_custom(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_compiling_writer___Writer___write_to_stream(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* c_tools.nit:68 */
-  fra.me.REG[2] = CALL_c_tools___CCompilationUnit___header_c_types(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_compiling_writer___Writer___write_to_stream(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* c_tools.nit:69 */
-  fra.me.REG[0] = CALL_c_tools___CCompilationUnit___header_decl(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_compiling_writer___Writer___write_to_stream(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_c_tools___CCompilationUnit___compile_body_core[] = "c_tools::CCompilationUnit::compile_body_core";
-void c_tools___CCompilationUnit___compile_body_core(val_t p0, val_t p1){
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_c_tools;
-  fra.me.line = 72;
-  fra.me.meth = LOCATE_c_tools___CCompilationUnit___compile_body_core;
-  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;
-  /* c_tools.nit:74 */
-  fra.me.REG[2] = CALL_c_tools___CCompilationUnit___body_decl(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_compiling_writer___Writer___write_to_stream(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* c_tools.nit:75 */
-  fra.me.REG[2] = CALL_c_tools___CCompilationUnit___body_custom(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_compiling_writer___Writer___write_to_stream(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
-  /* c_tools.nit:76 */
-  fra.me.REG[0] = CALL_c_tools___CCompilationUnit___body_impl(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_compiling_writer___Writer___write_to_stream(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_c_tools___CCompilationUnit___init[] = "c_tools::CCompilationUnit::init";
-void c_tools___CCompilationUnit___init(val_t p0, int* init_table){
-  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_c_tools___CCompilationUnit].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_c_tools;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_c_tools___CCompilationUnit___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[itpos0] = 1;
-  return;
-}
-static const char LOCATE_c_tools___CFunction___signature[] = "c_tools::CFunction::signature";
-val_t c_tools___CFunction___signature(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_c_tools;
-  fra.me.line = 82;
-  fra.me.meth = LOCATE_c_tools___CFunction___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;
-  /* c_tools.nit:82 */
-  REGB0 = TAG_Bool(ATTR_c_tools___CFunction_____atsignature(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "@signature", LOCATE_c_tools, 82);
-  }
-  fra.me.REG[0] = ATTR_c_tools___CFunction_____atsignature(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_c_tools___CFunction___signature__eq[] = "c_tools::CFunction::signature=";
-void c_tools___CFunction___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_c_tools;
-  fra.me.line = 82;
-  fra.me.meth = LOCATE_c_tools___CFunction___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;
-  /* c_tools.nit:82 */
-  ATTR_c_tools___CFunction_____atsignature(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_c_tools___CFunction___decls[] = "c_tools::CFunction::decls";
-val_t c_tools___CFunction___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_c_tools;
-  fra.me.line = 84;
-  fra.me.meth = LOCATE_c_tools___CFunction___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;
-  /* c_tools.nit:84 */
-  REGB0 = TAG_Bool(ATTR_c_tools___CFunction_____atdecls(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "@decls", LOCATE_c_tools, 84);
-  }
-  fra.me.REG[0] = ATTR_c_tools___CFunction_____atdecls(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_c_tools___CFunction___decls__eq[] = "c_tools::CFunction::decls=";
-void c_tools___CFunction___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_c_tools;
-  fra.me.line = 84;
-  fra.me.meth = LOCATE_c_tools___CFunction___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;
-  /* c_tools.nit:84 */
-  ATTR_c_tools___CFunction_____atdecls(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_c_tools___CFunction___exprs[] = "c_tools::CFunction::exprs";
-val_t c_tools___CFunction___exprs(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_c_tools;
-  fra.me.line = 85;
-  fra.me.meth = LOCATE_c_tools___CFunction___exprs;
-  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;
-  /* c_tools.nit:85 */
-  REGB0 = TAG_Bool(ATTR_c_tools___CFunction_____atexprs(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "@exprs", LOCATE_c_tools, 85);
-  }
-  fra.me.REG[0] = ATTR_c_tools___CFunction_____atexprs(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_c_tools___CFunction___exprs__eq[] = "c_tools::CFunction::exprs=";
-void c_tools___CFunction___exprs__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_c_tools;
-  fra.me.line = 85;
-  fra.me.meth = LOCATE_c_tools___CFunction___exprs__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;
-  /* c_tools.nit:85 */
-  ATTR_c_tools___CFunction_____atexprs(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_c_tools___CFunction___to_writer[] = "c_tools::CFunction::to_writer";
-val_t c_tools___CFunction___to_writer(val_t p0){
-  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_c_tools;
-  fra.me.line = 87;
-  fra.me.meth = LOCATE_c_tools___CFunction___to_writer;
-  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;
-  /* c_tools.nit:89 */
-  fra.me.REG[1] = NEW_Writer_compiling_writer___Writer___init();
-  /* c_tools.nit:91 */
-  REGB0 = TAG_Int(3);
-  fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
-  if (!once_value_1) {
-    fra.me.REG[3] = BOX_NativeString("");
-    REGB0 = TAG_Int(0);
-    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-    once_value_1 = fra.me.REG[3];
-    register_static_object(&once_value_1);
-  } else fra.me.REG[3] = once_value_1;
-  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_c_tools___CFunction___signature(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[3]);
-  if (!once_value_2) {
-    fra.me.REG[3] = BOX_NativeString("\n{\n");
-    REGB0 = TAG_Int(3);
-    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
-    once_value_2 = fra.me.REG[3];
-    register_static_object(&once_value_2);
-  } else fra.me.REG[3] = once_value_2;
-  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_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* c_tools.nit:93 */
-  fra.me.REG[2] = CALL_c_tools___CFunction___decls(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_compiling_writer___Writer___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* c_tools.nit:94 */
-  if (!once_value_3) {
-    fra.me.REG[2] = BOX_NativeString("\n");
-    REGB0 = TAG_Int(1);
-    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
-    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];
-  CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* c_tools.nit:95 */
-  fra.me.REG[0] = CALL_c_tools___CFunction___exprs(fra.me.REG[0])(fra.me.REG[0]);
-  CALL_compiling_writer___Writer___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* c_tools.nit:97 */
-  if (!once_value_4) {
-    fra.me.REG[0] = BOX_NativeString("}\n");
-    REGB0 = TAG_Int(2);
-    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];
-  CALL_compiling_writer___Writer___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* c_tools.nit:99 */
-  goto label5;
-  label5: while(0);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[1];
-}
-static const char LOCATE_c_tools___CFunction___init[] = "c_tools::CFunction::init";
-void c_tools___CFunction___init(val_t p0, val_t p1, int* init_table){
-  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_c_tools___CFunction].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  if (init_table[itpos1]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_c_tools;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_c_tools___CFunction___init;
-  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;
-  ATTR_c_tools___CFunction_____atsignature(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos1] = 1;
-  return;
-}