c_src: update
[nit.git] / c_src / range._sep.c
index d1d5fc3..d9b2182 100644 (file)
 /* This C file is generated by NIT to compile module range. */
 #include "range._sep.h"
-val_t range___Range___iterator(val_t p0){
+val_t range___Range___first(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_range;
-  fra.me.line = 43;
-  fra.me.meth = LOCATE_range___Range___iterator;
+  fra.me.line = 22;
+  fra.me.meth = LOCATE_range___Range___first;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  fra.me.REG[0] = NEW_IteratorRange_range___IteratorRange___init(fra.me.REG[0]);
-  /* ./../lib/standard//collection//range.nit:43 */
-  goto label1;
-  label1: while(0);
+  /* ./../lib/standard//collection//range.nit:22 */
+  REGB0 = TAG_Bool(ATTR_range___Range____first(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_first", LOCATE_range, 22);
+  }
+  fra.me.REG[0] = ATTR_range___Range____first(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-val_t range___Range___is_empty(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t range___Range___last(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_range;
-  fra.me.line = 55;
-  fra.me.meth = LOCATE_range___Range___is_empty;
+  fra.me.line = 24;
+  fra.me.meth = LOCATE_range___Range___last;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_range___Range____first(fra.me.REG[0])!=NIT_NULL);
-  /* ./../lib/standard//collection//range.nit:55 */
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    fprintf(stderr, "Uninitialized attribute %s", "_first");
-    fprintf(stderr, " (%s:%d)\n", LOCATE_range, 55);
-    nit_exit(1);
-  }
-  fra.me.REG[1] = ATTR_range___Range____first(fra.me.REG[0]);
-  REGB0 = TAG_Bool(ATTR_range___Range____after(fra.me.REG[0])!=NIT_NULL);
+  /* ./../lib/standard//collection//range.nit:24 */
+  REGB0 = TAG_Bool(ATTR_range___Range____last(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    fprintf(stderr, "Uninitialized attribute %s", "_after");
-    fprintf(stderr, " (%s:%d)\n", LOCATE_range, 55);
-    nit_exit(1);
+    nit_abort("Uninitialized attribute %s", "_last", LOCATE_range, 24);
   }
-  fra.me.REG[0] = ATTR_range___Range____after(fra.me.REG[0]);
-  REGB0 = CALL_kernel___Comparable_____geq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  goto label1;
-  label1: while(0);
+  fra.me.REG[0] = ATTR_range___Range____last(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
-  return REGB0;
+  return fra.me.REG[0];
 }
-val_t range___Range___length(val_t p0){
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+val_t range___Range___after(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_range;
-  fra.me.line = 45;
-  fra.me.meth = LOCATE_range___Range___length;
+  fra.me.line = 27;
+  fra.me.meth = LOCATE_range___Range___after;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
+  fra.me.REG_size = 1;
   fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_range___Range____first(fra.me.REG[0])!=NIT_NULL);
-  /* ./../lib/standard//collection//range.nit:47 */
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    fprintf(stderr, "Uninitialized attribute %s", "_first");
-    fprintf(stderr, " (%s:%d)\n", LOCATE_range, 47);
-    nit_exit(1);
-  }
-  fra.me.REG[1] = ATTR_range___Range____first(fra.me.REG[0]);
+  /* ./../lib/standard//collection//range.nit:27 */
   REGB0 = TAG_Bool(ATTR_range___Range____after(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    fprintf(stderr, "Uninitialized attribute %s", "_after");
-    fprintf(stderr, " (%s:%d)\n", LOCATE_range, 47);
-    nit_exit(1);
+    nit_abort("Uninitialized attribute %s", "_after", LOCATE_range, 27);
   }
   fra.me.REG[0] = ATTR_range___Range____after(fra.me.REG[0]);
-  REGB0 = CALL_kernel___Discrete___distance(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  REGB1 = TAG_Int(0);
-  REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
-  /* ./../lib/standard//collection//range.nit:48 */
-  if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//collection//range.nit:49 */
-    goto label1;
-  } else {
-    REGB1 = TAG_Int(0);
-    REGB0 = REGB1;
-    /* ./../lib/standard//collection//range.nit:51 */
-    goto label1;
-  }
-  label1: while(0);
   stack_frame_head = fra.me.prev;
-  return REGB0;
+  return fra.me.REG[0];
 }
 val_t range___Range___has(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
@@ -118,13 +82,11 @@ val_t range___Range___has(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  REGB0 = TAG_Bool(ATTR_range___Range____first(fra.me.REG[0])!=NIT_NULL);
   /* ./../lib/standard//collection//range.nit:30 */
+  REGB0 = TAG_Bool(ATTR_range___Range____first(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    fprintf(stderr, "Uninitialized attribute %s", "_first");
-    fprintf(stderr, " (%s:%d)\n", LOCATE_range, 30);
-    nit_exit(1);
+    nit_abort("Uninitialized attribute %s", "_first", LOCATE_range, 30);
   }
   fra.me.REG[2] = ATTR_range___Range____first(fra.me.REG[0]);
   REGB0 = CALL_kernel___Comparable_____geq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
@@ -132,9 +94,7 @@ val_t range___Range___has(val_t p0, val_t p1){
     REGB0 = TAG_Bool(ATTR_range___Range____last(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      fprintf(stderr, "Uninitialized attribute %s", "_last");
-      fprintf(stderr, " (%s:%d)\n", LOCATE_range, 30);
-      nit_exit(1);
+      nit_abort("Uninitialized attribute %s", "_last", LOCATE_range, 30);
     }
     fra.me.REG[0] = ATTR_range___Range____last(fra.me.REG[0]);
     REGB0 = CALL_kernel___Comparable_____leq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
@@ -163,13 +123,11 @@ val_t range___Range___has_only(val_t p0, val_t p1){
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  REGB0 = TAG_Bool(ATTR_range___Range____first(fra.me.REG[0])!=NIT_NULL);
   /* ./../lib/standard//collection//range.nit:32 */
+  REGB0 = TAG_Bool(ATTR_range___Range____first(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    fprintf(stderr, "Uninitialized attribute %s", "_first");
-    fprintf(stderr, " (%s:%d)\n", LOCATE_range, 32);
-    nit_exit(1);
+    nit_abort("Uninitialized attribute %s", "_first", LOCATE_range, 32);
   }
   fra.me.REG[2] = ATTR_range___Range____first(fra.me.REG[0]);
   REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[1]));
@@ -182,9 +140,7 @@ val_t range___Range___has_only(val_t p0, val_t p1){
     REGB0 = TAG_Bool(ATTR_range___Range____last(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
-      fprintf(stderr, "Uninitialized attribute %s", "_last");
-      fprintf(stderr, " (%s:%d)\n", LOCATE_range, 32);
-      nit_exit(1);
+      nit_abort("Uninitialized attribute %s", "_last", LOCATE_range, 32);
     }
     fra.me.REG[0] = ATTR_range___Range____last(fra.me.REG[0]);
     REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
@@ -217,93 +173,171 @@ val_t range___Range___count(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  REGB0 = CALL_abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   /* ./../lib/standard//collection//range.nit:36 */
+  REGB0 = CALL_abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    REGB0 = TAG_Int(1);
     /* ./../lib/standard//collection//range.nit:37 */
+    REGB0 = TAG_Int(1);
     goto label1;
   } else {
+    /* ./../lib/standard//collection//range.nit:39 */
     REGB1 = TAG_Int(0);
     REGB0 = REGB1;
-    /* ./../lib/standard//collection//range.nit:39 */
     goto label1;
   }
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
-val_t range___Range___first(val_t p0){
+val_t range___Range___iterator(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_range;
-  fra.me.line = 22;
-  fra.me.meth = LOCATE_range___Range___first;
+  fra.me.line = 43;
+  fra.me.meth = LOCATE_range___Range___iterator;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
+  /* ./../lib/standard//collection//range.nit:43 */
+  fra.me.REG[0] = NEW_IteratorRange_range___IteratorRange___init(fra.me.REG[0]);
+  goto label1;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+void range___Range___iterate(val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  fun_t CREG[1];
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_range;
+  fra.me.line = 45;
+  fra.me.meth = LOCATE_range___Range___iterate;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.closure_ctx = closctx_param;
+  fra.me.closure_funs = CREG;
+  fra.me.REG[0] = p0;
+  CREG[0] = clos_fun0;
+  /* ./../lib/standard//collection//range.nit:48 */
   REGB0 = TAG_Bool(ATTR_range___Range____first(fra.me.REG[0])!=NIT_NULL);
-  /* ./../lib/standard//collection//range.nit:22 */
   if (UNTAG_Bool(REGB0)) {
   } else {
-    fprintf(stderr, "Uninitialized attribute %s", "_first");
-    fprintf(stderr, " (%s:%d)\n", LOCATE_range, 22);
-    nit_exit(1);
+    nit_abort("Uninitialized attribute %s", "_first", LOCATE_range, 48);
   }
-  fra.me.REG[0] = ATTR_range___Range____first(fra.me.REG[0]);
+  fra.me.REG[1] = ATTR_range___Range____first(fra.me.REG[0]);
+  /* ./../lib/standard//collection//range.nit:49 */
+  REGB0 = TAG_Bool(ATTR_range___Range____last(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_last", LOCATE_range, 49);
+  }
+  fra.me.REG[0] = ATTR_range___Range____last(fra.me.REG[0]);
+  /* ./../lib/standard//collection//range.nit:50 */
+  while(1) {
+    REGB0 = CALL_kernel___Comparable_____leq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+    if (UNTAG_Bool(REGB0)) {
+      /* ./../lib/standard//collection//range.nit:51 */
+      ((void (*)(struct stack_frame_t *, val_t))(CREG[0]))(closctx_param, fra.me.REG[1]);
+      if (closctx_param->has_broke) {
+        goto label1;
+      }
+      /* ./../lib/standard//collection//range.nit:52 */
+      fra.me.REG[2] = CALL_kernel___Discrete___succ(fra.me.REG[1])(fra.me.REG[1]);
+      fra.me.REG[1] = fra.me.REG[2];
+    } else {
+      /* ./../lib/standard//collection//range.nit:50 */
+      goto label2;
+    }
+  }
+  label2: while(0);
+  label1: while(0);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
+  return;
 }
-val_t range___Range___last(val_t p0){
-  struct {struct stack_frame_t me;} fra;
+val_t range___Range___length(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} 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_range;
-  fra.me.line = 24;
-  fra.me.meth = LOCATE_range___Range___last;
+  fra.me.line = 56;
+  fra.me.meth = LOCATE_range___Range___length;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
+  fra.me.REG_size = 2;
   fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
-  REGB0 = TAG_Bool(ATTR_range___Range____last(fra.me.REG[0])!=NIT_NULL);
-  /* ./../lib/standard//collection//range.nit:24 */
+  /* ./../lib/standard//collection//range.nit:58 */
+  REGB0 = TAG_Bool(ATTR_range___Range____first(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    fprintf(stderr, "Uninitialized attribute %s", "_last");
-    fprintf(stderr, " (%s:%d)\n", LOCATE_range, 24);
-    nit_exit(1);
+    nit_abort("Uninitialized attribute %s", "_first", LOCATE_range, 58);
   }
-  fra.me.REG[0] = ATTR_range___Range____last(fra.me.REG[0]);
+  fra.me.REG[1] = ATTR_range___Range____first(fra.me.REG[0]);
+  REGB0 = TAG_Bool(ATTR_range___Range____after(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_after", LOCATE_range, 58);
+  }
+  fra.me.REG[0] = ATTR_range___Range____after(fra.me.REG[0]);
+  REGB0 = CALL_kernel___Discrete___distance(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  /* ./../lib/standard//collection//range.nit:59 */
+  REGB1 = TAG_Int(0);
+  /* ./../lib/standard//kernel.nit:214 */
+  REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
+  /* ./../lib/standard//collection//range.nit:59 */
+  if (UNTAG_Bool(REGB1)) {
+    /* ./../lib/standard//collection//range.nit:60 */
+    goto label1;
+  } else {
+    /* ./../lib/standard//collection//range.nit:62 */
+    REGB1 = TAG_Int(0);
+    REGB0 = REGB1;
+    goto label1;
+  }
+  label1: while(0);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
+  return REGB0;
 }
-val_t range___Range___after(val_t p0){
-  struct {struct stack_frame_t me;} fra;
+val_t range___Range___is_empty(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_range;
-  fra.me.line = 27;
-  fra.me.meth = LOCATE_range___Range___after;
+  fra.me.line = 66;
+  fra.me.meth = LOCATE_range___Range___is_empty;
   fra.me.has_broke = 0;
-  fra.me.REG_size = 1;
+  fra.me.REG_size = 2;
   fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
+  /* ./../lib/standard//collection//range.nit:66 */
+  REGB0 = TAG_Bool(ATTR_range___Range____first(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_first", LOCATE_range, 66);
+  }
+  fra.me.REG[1] = ATTR_range___Range____first(fra.me.REG[0]);
   REGB0 = TAG_Bool(ATTR_range___Range____after(fra.me.REG[0])!=NIT_NULL);
-  /* ./../lib/standard//collection//range.nit:27 */
   if (UNTAG_Bool(REGB0)) {
   } else {
-    fprintf(stderr, "Uninitialized attribute %s", "_after");
-    fprintf(stderr, " (%s:%d)\n", LOCATE_range, 27);
-    nit_exit(1);
+    nit_abort("Uninitialized attribute %s", "_after", LOCATE_range, 66);
   }
   fra.me.REG[0] = ATTR_range___Range____after(fra.me.REG[0]);
+  REGB0 = CALL_kernel___Comparable_____geq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  goto label1;
+  label1: while(0);
   stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
+  return REGB0;
 }
 void range___Range___init(val_t p0, val_t p1, val_t p2, int* init_table){
   int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Range].i;
@@ -312,7 +346,7 @@ void range___Range___init(val_t p0, val_t p1, val_t p2, int* init_table){
   if (init_table[itpos0]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_range;
-  fra.me.line = 57;
+  fra.me.line = 68;
   fra.me.meth = LOCATE_range___Range___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -322,12 +356,12 @@ void range___Range___init(val_t p0, val_t p1, val_t p2, int* init_table){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/standard//collection//range.nit:61 */
+  /* ./../lib/standard//collection//range.nit:72 */
   ATTR_range___Range____first(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//range.nit:62 */
+  /* ./../lib/standard//collection//range.nit:73 */
   ATTR_range___Range____last(fra.me.REG[0]) = fra.me.REG[2];
+  /* ./../lib/standard//collection//range.nit:74 */
   fra.me.REG[2] = CALL_kernel___Discrete___succ(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./../lib/standard//collection//range.nit:63 */
   ATTR_range___Range____after(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos0] = 1;
@@ -340,7 +374,7 @@ void range___Range___without_last(val_t p0, val_t p1, val_t p2, int* init_table)
   if (init_table[itpos1]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_range;
-  fra.me.line = 66;
+  fra.me.line = 77;
   fra.me.meth = LOCATE_range___Range___without_last;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -350,12 +384,12 @@ void range___Range___without_last(val_t p0, val_t p1, val_t p2, int* init_table)
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./../lib/standard//collection//range.nit:70 */
+  /* ./../lib/standard//collection//range.nit:81 */
   ATTR_range___Range____first(fra.me.REG[0]) = fra.me.REG[1];
+  /* ./../lib/standard//collection//range.nit:82 */
   fra.me.REG[1] = CALL_kernel___Discrete___prec(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./../lib/standard//collection//range.nit:71 */
   ATTR_range___Range____last(fra.me.REG[0]) = fra.me.REG[1];
-  /* ./../lib/standard//collection//range.nit:72 */
+  /* ./../lib/standard//collection//range.nit:83 */
   ATTR_range___Range____after(fra.me.REG[0]) = fra.me.REG[2];
   stack_frame_head = fra.me.prev;
   init_table[itpos1] = 1;
@@ -367,87 +401,79 @@ val_t range___IteratorRange___item(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_range;
-  fra.me.line = 80;
+  fra.me.line = 91;
   fra.me.meth = LOCATE_range___IteratorRange___item;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
+  /* ./../lib/standard//collection//range.nit:91 */
   REGB0 = TAG_Bool(ATTR_range___IteratorRange____item(fra.me.REG[0])!=NIT_NULL);
-  /* ./../lib/standard//collection//range.nit:80 */
   if (UNTAG_Bool(REGB0)) {
   } else {
-    fprintf(stderr, "Uninitialized attribute %s", "_item");
-    fprintf(stderr, " (%s:%d)\n", LOCATE_range, 80);
-    nit_exit(1);
+    nit_abort("Uninitialized attribute %s", "_item", LOCATE_range, 91);
   }
   fra.me.REG[0] = ATTR_range___IteratorRange____item(fra.me.REG[0]);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
-void range___IteratorRange___next(val_t p0){
+val_t range___IteratorRange___is_ok(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_range;
-  fra.me.line = 84;
-  fra.me.meth = LOCATE_range___IteratorRange___next;
+  fra.me.line = 93;
+  fra.me.meth = LOCATE_range___IteratorRange___is_ok;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
+  /* ./../lib/standard//collection//range.nit:93 */
   REGB0 = TAG_Bool(ATTR_range___IteratorRange____item(fra.me.REG[0])!=NIT_NULL);
-  /* ./../lib/standard//collection//range.nit:84 */
   if (UNTAG_Bool(REGB0)) {
   } else {
-    fprintf(stderr, "Uninitialized attribute %s", "_item");
-    fprintf(stderr, " (%s:%d)\n", LOCATE_range, 84);
-    nit_exit(1);
+    nit_abort("Uninitialized attribute %s", "_item", LOCATE_range, 93);
   }
   fra.me.REG[1] = ATTR_range___IteratorRange____item(fra.me.REG[0]);
-  fra.me.REG[1] = CALL_kernel___Discrete___succ(fra.me.REG[1])(fra.me.REG[1]);
-  ATTR_range___IteratorRange____item(fra.me.REG[0]) = fra.me.REG[1];
+  REGB0 = TAG_Bool(ATTR_range___IteratorRange____range(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_range", LOCATE_range, 93);
+  }
+  fra.me.REG[0] = ATTR_range___IteratorRange____range(fra.me.REG[0]);
+  fra.me.REG[0] = CALL_range___Range___after(fra.me.REG[0])(fra.me.REG[0]);
+  REGB0 = CALL_kernel___Comparable_____l(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
+  goto label1;
+  label1: while(0);
   stack_frame_head = fra.me.prev;
-  return;
+  return REGB0;
 }
-val_t range___IteratorRange___is_ok(val_t p0){
+void range___IteratorRange___next(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_range;
-  fra.me.line = 82;
-  fra.me.meth = LOCATE_range___IteratorRange___is_ok;
+  fra.me.line = 95;
+  fra.me.meth = LOCATE_range___IteratorRange___next;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
+  /* ./../lib/standard//collection//range.nit:95 */
   REGB0 = TAG_Bool(ATTR_range___IteratorRange____item(fra.me.REG[0])!=NIT_NULL);
-  /* ./../lib/standard//collection//range.nit:82 */
   if (UNTAG_Bool(REGB0)) {
   } else {
-    fprintf(stderr, "Uninitialized attribute %s", "_item");
-    fprintf(stderr, " (%s:%d)\n", LOCATE_range, 82);
-    nit_exit(1);
+    nit_abort("Uninitialized attribute %s", "_item", LOCATE_range, 95);
   }
   fra.me.REG[1] = ATTR_range___IteratorRange____item(fra.me.REG[0]);
-  REGB0 = TAG_Bool(ATTR_range___IteratorRange____range(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    fprintf(stderr, "Uninitialized attribute %s", "_range");
-    fprintf(stderr, " (%s:%d)\n", LOCATE_range, 82);
-    nit_exit(1);
-  }
-  fra.me.REG[0] = ATTR_range___IteratorRange____range(fra.me.REG[0]);
-  fra.me.REG[0] = CALL_range___Range___after(fra.me.REG[0])(fra.me.REG[0]);
-  REGB0 = CALL_kernel___Comparable_____l(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  goto label1;
-  label1: while(0);
+  fra.me.REG[1] = CALL_kernel___Discrete___succ(fra.me.REG[1])(fra.me.REG[1]);
+  ATTR_range___IteratorRange____item(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
-  return REGB0;
+  return;
 }
 void range___IteratorRange___init(val_t p0, val_t p1, int* init_table){
   int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_IteratorRange].i;
@@ -456,7 +482,7 @@ void range___IteratorRange___init(val_t p0, val_t p1, int* init_table){
   if (init_table[itpos2]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_range;
-  fra.me.line = 86;
+  fra.me.line = 97;
   fra.me.meth = LOCATE_range___IteratorRange___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -464,10 +490,10 @@ void range___IteratorRange___init(val_t p0, val_t p1, int* init_table){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//collection//range.nit:88 */
+  /* ./../lib/standard//collection//range.nit:99 */
   ATTR_range___IteratorRange____range(fra.me.REG[0]) = fra.me.REG[1];
+  /* ./../lib/standard//collection//range.nit:100 */
   fra.me.REG[1] = CALL_abstract_collection___Collection___first(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./../lib/standard//collection//range.nit:89 */
   ATTR_range___IteratorRange____item(fra.me.REG[0]) = fra.me.REG[1];
   stack_frame_head = fra.me.prev;
   init_table[itpos2] = 1;